私は、サーバーからユーザーのために暗号化されたRSA秘密鍵を受け取るプロジェクトを持っています。ユーザーから提供された情報を使用して、データを元の形式に戻すことができます。しかし、RSA暗号機能で使用するために私有鍵をiOS Keychainにロードする方法を理解することはできません。iOS:デバイスに秘密鍵を追加するKeyChain
現在のところ、私はさまざまな例から一緒に石畳をした次のコードを持っています。このコードは公開鍵を追加する作業ですが、秘密鍵を追加するためにはまったく動作しません。
[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:privateKeyData forKey:(__bridge id)kSecValueData];
[peerPublicKeyAttr setObject:[NSNumber numberWithBool:YES] forKey:(__bridge id)kSecReturnRef];
sanityCheck = SecItemDelete((__bridge CFDictionaryRef) peerPublicKeyAttr) ;
sanityCheck = SecItemAdd((__bridge CFDictionaryRef) peerPublicKeyAttr, (CFTypeRef *)&privateKey);
私は(DER形式にデコード)秘密鍵のデータでこのコードを実行すると、privateKey
変数はSecItemAdd()
呼び出しでNULLに設定されています。ただし、変数sanityCheck
は「エラーなし」を示します。私は何が欠けているのか分からない。
プライベートキーをキーチェーンに正しくロードするには、何が必要ですか?
私は今、この権利をテストすることはできません
[iOS上でRSA公開鍵を使用する](http://stackoverflow.com/questions/9728799/using-an-rsa-public-key-on-ios) – bobobobo