द्वारा सही रूप से आयात करने के लिए एक वैध पी 12 फ़ाइल कैसे बनाएं I XML PSA निजी कुंजी को पीईएम फ़ाइल में परिवर्तित करने की मेरी प्रीवियोस समस्या हल हो गई है, लेकिन मैं एक और समस्या में चलाता हूं कि मुझे पी 12 निजी कुंजी आयात करते समय शून्य डेटा मिलता है। बाद मेरे कदमों है:SecPKCS12Import
openssl> pkcs12 -export -in rsa.pem -inkey rsa.pem -out rsa.p12 -nocerts
पढ़ें P12 फ़ाइल आईओएस परियोजना के लिए
NSString *path = [[NSBundle bundleForClass:[self class]]
pathForResource:@"MyPrivateKey" ofType:@"p12"];
NSData *p12data = [NSData dataWithContentsOfFile:path];
if (![self getPrivateKeyRef])
RSAPrivateKey = getPrivateKeywithRawKey(p12data);
आयात P12 P12 फाइल करने के लिए
Convert पीईएम फ़ाइल निजी कुंजी
SecKeyRef getPrivateKeywithRawKey(NSData *pfxkeydata) { NSMutableDictionary * options = [[[NSMutableDictionary alloc] init] autorelease]; // Set the public key query dictionary //change to your .pfx password here [options setObject:@"MyPassword" forKey:(id)kSecImportExportPassphrase]; CFArrayRef items = CFArrayCreate(NULL, 0, 0, NULL); OSStatus securityError = SecPKCS12Import((CFDataRef) pfxkeydata, (CFDictionaryRef)options, &items); CFDictionaryRef identityDict = CFArrayGetValueAtIndex(items, 0); SecIdentityRef identityApp = (SecIdentityRef)CFDictionaryGetValue(identityDict, kSecImportItemIdentity); //NSLog(@"%@", securityError); assert(securityError == noErr); SecKeyRef privateKeyRef; SecIdentityCopyPrivateKey(identityApp, &privateKeyRef); return privateKeyRef; }
सोचा कि कोई त्रुटि नहीं थी (OSStatus मान 0 है), लेकिन आइटम सरणी को कोई पहचान डेटा नहीं मिला। मैं सोच रहा हूं कि गलत ओपनएसएसएल उपयोग के कारण मुझे सही पी 12 फ़ाइल प्रारूप नहीं मिला है। क्या किसी ने सफलतापूर्वक पी 12 फाइल आयात की है? मैं इस समस्या में कुछ दिनों तक फंस गया हूं, अगर आपको सुराग मिल जाए तो कृपया मुझे सलाह दें, धन्यवाद!
हुबर्ट
OpenSSL उपयोग के बारे में: 1) इनपुट कुंजी निश्चित रूप से नहीं अपने इनपुट प्रमाण पत्र के रूप में ही 2) डॉक हो जाएगा कहते हैं '-nocerts' पैदा करेगा नहीं आउटपुट पर प्रमाण पत्र; क्या आपने इसके बिना कोशिश की? – MrTJ