Я пытаюсь создать ключ RSA в моем Mac OS X приложение, я использую этот код:Mac OS X: kSecPublicKeyAttrs необъявленный идентификатор
CFStringRef privateTag = (CFStringRef)@"com.example.privatekey";
CFStringRef publicTag = (CFStringRef)@"com.example.publickey";
int bits = 1024;
CFMutableDictionaryRef publicAttr = CFDictionaryCreateMutable(kCFAllocatorDefault, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionaryAddValue(publicAttr, kSecAttrIsPermanent, kCFBooleanTrue);
CFDictionaryAddValue(publicAttr, kSecAttrApplicationTag, publicTag);
CFMutableDictionaryRef privateAttr = CFDictionaryCreateMutable(kCFAllocatorDefault, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionaryAddValue(privateAttr, kSecAttrIsPermanent, kCFBooleanTrue);
CFDictionaryAddValue(privateAttr, kSecAttrApplicationTag, publicTag);
CFMutableDictionaryRef keyPairAttr = CFDictionaryCreateMutable(kCFAllocatorDefault, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionaryAddValue(keyPairAttr, kSecAttrKeyType, kSecAttrKeyTypeRSA);
CFDictionaryAddValue(keyPairAttr, kSecAttrKeySizeInBits, CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &bits));
CFDictionaryAddValue(keyPairAttr, kSecPublicKeyAttrs, privateAttr);
CFDictionaryAddValue(keyPairAttr, kSecPrivateKeyAttrs, publicAttr);
status = SecKeyGeneratePair((CFDictionaryRef)keyPairAttr, &publicKey, &privateKey);
if (status != noErr) {
NSLog(@"something went wrong %d", (int)status);
}else {
NSLog(@"New key");
}
Если я пытаюсь построить kSecPublicKeyAttrs это необъявленную идентификатор, я не может понять, почему. Может ли кто-нибудь помочь?
С уважением, Филипп
Благодарим за помощь. Вы правы, это из приложения iOS, и либо документация 10.7 SDK, либо фреймворк неверна. Так что спасибо за ваш комментарий, я попробую форумы Apple dev. – plaetzchen