将公钥(在iPhone中生成为seckeyref)发送到服务器(在Java中)

nik*_*a21 11 security iphone

我需要将SecKeyGeneratePair生成的公钥作为SecKeyRef对象发送.现在,为了发送它,我需要这个KeyRef对象是一个字符串格式.

如何将SecKeyRef对象转换为nsstring对象?

ork*_*den 6

// you have SecKeyRef keyref from somewhere 
size_t keySize = SecKeyGetBlockSize(keyref);
NSData* keyData = [NSData dataWithBytes:keyref length:keySize];
Run Code Online (Sandbox Code Playgroud)

然后使用此NSData类别将带有base64的NSData对象编码为NSString.

NSString *keyStringB64 = [keyData base64EncodedString];
Run Code Online (Sandbox Code Playgroud)

  • 不,具体来说,它不适用于公钥,您需要解析关键模块以将真正的公钥作为字符串.Apple就是这方面的一个例子:https://developer.apple.com/library/ios/samplecode/CryptoExercise/Introduction/Intro.html (3认同)

Maa*_*wes 0

【旧问题清理】

将 SecKeyRef 设备生成的公钥/私钥对保存在磁盘上

展示如何创建 NSData 对象。由于我不是 iOS 开发人员,因此我将把转换为字符串(例如使用 Base 64 编码)作为练习。