के रूप में लॉग इन करने के iphone और प्रिंट पर कुंजी युग्म उत्पन्न करें: http://developer.apple.com/library/ios/#documentation/Security/Conceptual/CertKeyTrustProgGuide/iPhone_Tasks/iPhone_Tasks.htmlएप्पल उदाहरण कोड में बाद NSString
मैं कुंजी मुद्रित करने के लिए सफलतापूर्वक नीचे कोड स्निपेट के साथ कुंजी युग्म उत्पन्न करने में सक्षम है, लेकिन में असमर्थ हूँ ...
फ़ंक्शन SecKeyGeneratePair() - चाबियाँ SecKeyRef प्रकार के रूप में लौटाती है।
मुझे नहीं पता कि इस प्रकार को कैसे संभालना है, मैं समझता हूं कि यह चाबी का प्रतिनिधित्व है लेकिन मैं वास्तव में कुंजी-जोड़ी को एनएसएसटींग के रूप में कैसे देख सकता हूं ?? अधिक विशेष रूप से, SecKeyRef को NSString में कैसे परिवर्तित करें ??
static const UInt8 publicKeyIdentifier[] = "com.apple.sample.publickey\0";
static const UInt8 privateKeyIdentifier[] = "com.apple.sample.privatekey\0";
// 1
- (void)generateKeyPairPlease
{
OSStatus status = noErr;
NSMutableDictionary *privateKeyAttr = [[NSMutableDictionary alloc] init];
NSMutableDictionary *publicKeyAttr = [[NSMutableDictionary alloc] init];
NSMutableDictionary *keyPairAttr = [[NSMutableDictionary alloc] init];
// 2
NSData * publicTag = [NSData dataWithBytes:publicKeyIdentifier
length:strlen((const char *)publicKeyIdentifier)];
NSData * privateTag = [NSData dataWithBytes:privateKeyIdentifier
length:strlen((const char *)privateKeyIdentifier)];
// 3
SecKeyRef publicKey = NULL;
SecKeyRef privateKey = NULL; // 4
[keyPairAttr setObject:(id)kSecAttrKeyTypeRSA
forKey:(id)kSecAttrKeyType]; // 5
[keyPairAttr setObject:[NSNumber numberWithInt:1024]
forKey:(id)kSecAttrKeySizeInBits]; // 6
[privateKeyAttr setObject:[NSNumber numberWithBool:YES]
forKey:(id)kSecAttrIsPermanent]; // 7
[privateKeyAttr setObject:privateTag
forKey:(id)kSecAttrApplicationTag]; // 8
[publicKeyAttr setObject:[NSNumber numberWithBool:YES]
forKey:(id)kSecAttrIsPermanent]; // 9
[publicKeyAttr setObject:publicTag
forKey:(id)kSecAttrApplicationTag]; // 10
[keyPairAttr setObject:privateKeyAttr
forKey:(id)kSecPrivateKeyAttrs]; // 11
[keyPairAttr setObject:publicKeyAttr
forKey:(id)kSecPublicKeyAttrs]; // 12
status = SecKeyGeneratePair((CFDictionaryRef)keyPairAttr,
&publicKey, &privateKey); // 13
// error handling...
if(privateKeyAttr) [privateKeyAttr release];
if(publicKeyAttr) [publicKeyAttr release];
if(keyPairAttr) [keyPairAttr release];
if(publicKey) CFRelease(publicKey);
if(privateKey) CFRelease(privateKey); // 14
}
कुंजी जोड़ी उत्पन्न करने में सक्षम ... यह दे रहा है 'OSStatus' स्थिति के लिए मान ** - 34018 ** – Sujay