、私はあなたがこれを行うようになるのGitHub上のコードを持っていますiOSへのRSA鍵のインポートを有効にする 指数を使用するKeyChain。コードはiOS 5とARCをターゲットにしています。
からmodulusと指数を既に持っていて、pubKeyModDataという名前の変数にNSDataとしてRSA公開鍵があり、 pubKeyModDataという変数があります。次に、次のコードはRSA 公開鍵を含むNSDataを作成し、iOSまたはOS X Keychainに挿入することができます。 keyBits:メソッドSecKeyWrapperからアップルCryptoExercise例で
NSMutableArray *testArray = [[NSMutableArray alloc] init];
[testArray addObject:pubKeyModData];
[testArray addObject:pubKeyExpData];
NSData *testPubKey = [testArray berData];
これはaddPeerPublicKeyを使用してキーを格納することが可能になります。または、低レベルのAPIの観点から、SecItemAdd()を使用できます。
NSString * peerName = @"Test Public Key";
NSData * peerTag =
[[NSData alloc]
initWithBytes:(const void *)[peerName UTF8String]
length:[peerName length]];
NSMutableDictionary * peerPublicKeyAttr = [[NSMutableDictionary alloc] init];
[peerPublicKeyAttr
setObject:(__bridge id)kSecClassKey
forKey:(__bridge id)kSecClass];
[peerPublicKeyAttr
setObject:(__bridge id)kSecAttrKeyTypeRSA
forKey:(__bridge id)kSecAttrKeyType];
[peerPublicKeyAttr
setObject:peerTag
forKey:(__bridge id)kSecAttrApplicationTag];
[peerPublicKeyAttr
setObject:testPubKey
forKey:(__bridge id)kSecValueData];
[peerPublicKeyAttr
setObject:[NSNumber numberWithBool:YES]
forKey:(__bridge id)kSecReturnPersistentRef];
sanityCheck = SecItemAdd((__bridge CFDictionaryRef) peerPublicKeyAttr, (CFTypeRef *)&persistPeer);