[iOS] KeyChain 의 Key (SecKeyRef) 를 NSData 형식으로 변경하기
출처
SecKeyRef -> NSData * 로 변경하기
CFErrorRef cfError = NULL;
NSData *keyData = (__bridge_transfer NSData *)SecKeyCopyExternalRepresentation(publicKeyRef, &cfError);
if (!keyData) {
NSError *keyError = (__bridge_transfer NSError *)cfError;
if (error && keyError) {
*error = keyError;
}
return NO;
}
NSData * -> SecKeyRef 로 변경하기
NSDictionary *options = @{
(id)kSecAttrKeyType : (id)kSecAttrKeyTypeRSA,
(id)kSecAttrKeyClass : (id)kSecAttrKeyClassPublic,
(id)kSecAttrKeySizeInBits : @2048,
};
CFErrorRef cfError = NULL;
SecKeyRef key = SecKeyCreateWithData((__bridge CFDataRef)decData,
(__bridge CFDictionaryRef)options, &cfError);
if (!key) {
NSError *keyError = (__bridge_transfer NSError *)cfError;
if (error && keyError) {
*error = keyError;
}
return nil;
}