公開鍵に問題があるので、SecKeyGeneratePair を使用して公開鍵と秘密鍵を生成しました。ここで、公開鍵をサーバーに送信する必要があります。以下の方法を使用して SecKeyRef を NSData に変換しましたが、常に同じ公開鍵を取得しています。ただし、それをbase64形式に変換してサーバーに送信しました。しかし、まったく機能せず、サーバー(Java)がエラーをスローし始めます。これが私のiOSコードです:
- (NSData *)getPublicKeyBits {
OSStatus sanityCheck = noErr;
NSData * publicKeyBits = nil;
NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init];
// Set the public key query dictionary.
[queryPublicKey setObject:(id)kSecClassKey forKey:(id)kSecClass];
[queryPublicKey setObject:publicTag forKey:(id)kSecAttrApplicationTag];
[queryPublicKey setObject:(id)kSecAttrKeyTypeRSA forKey:(id)kSecAttrKeyType];
[queryPublicKey setObject:[NSNumber numberWithBool:YES] forKey:(id)kSecReturnData];
// Get the key bits.
sanityCheck = SecItemCopyMatching((CFDictionaryRef)queryPublicKey, (CFTypeRef *)&publicKeyBits);
if (sanityCheck != noErr)
{
publicKeyBits = nil;
}
[queryPublicKey release];
return publicKeyBits;
}
SecKeyRef を NSString または NSData に変換するのを手伝ってくれる人はいますか。
前もって感謝します!!!
-ムラリ・クリシュナン