を使用してキーのペアを作成しましたSecKeyGeneratePair
。公開鍵をサーバーに渡したいのですが、どうすればよいかわかりません。
getPublicKeyBits
私は(Appleから取った)関数を持っていCryptoExercise
ますが、生のNSDataをどうするか本当にわかりません。関数は次のとおりです。
- (NSData *)getPublicKeyBits {
OSStatus sanityCheck = noErr;
NSData* publicKeyBits = nil;
NSData* publicTag = [[NSData alloc] initWithBytes:publicKeyIdentifier length:sizeof(publicKeyIdentifier)];
CFDataRef cfresult = NULL;
NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init];
// Set the public key query dictionary.
[queryPublicKey setObject:(__bridge id)kSecClassKey forKey:(__bridge id)kSecClass];
[queryPublicKey setObject:publicTag forKey:(__bridge id)kSecAttrApplicationTag];
[queryPublicKey setObject:(__bridge id)kSecAttrKeyTypeRSA forKey:(__bridge id)kSecAttrKeyType];
[queryPublicKey setObject:[NSNumber numberWithBool:YES] forKey:(__bridge id)kSecReturnData];
// Get the key bits.
sanityCheck = SecItemCopyMatching((__bridge CFDictionaryRef)queryPublicKey, (CFTypeRef*)&cfresult);
if (sanityCheck != noErr)
{
publicKeyBits = nil;
}
else
{
publicKeyBits = (__bridge_transfer NSData *)cfresult;
}
return publicKeyBits;
}
PEM
この生のバイトデータを取得して、暗号ライブラリが理解できるような形式または他の形式に変換するにはどうすればよいですか?base64でエンコードする必要がありますか?他にやらなければならないことはありますか?
それが役に立ったら、M2Crypto
Pythonで利用可能なライブラリで公開鍵を使用しようとしています。