Ios 将公钥导出到解压缩(x,y)表示形式以0x04开始,长度为65字节
我有以下生成私钥的示例代码(链接到gist): 生成私钥后,我通过调用Ios 将公钥导出到解压缩(x,y)表示形式以0x04开始,长度为65字节,ios,objective-c,elliptic-curve,Ios,Objective C,Elliptic Curve,我有以下生成私钥的示例代码(链接到gist): 生成私钥后,我通过调用SecKeyCopyPublicKey((SecKeyRef)privateKey) 我得到的值低于显示公钥的(x,y) <SecKeyRef curve type: kSecECCurveSecp256r1, algorithm id: 3, key type: ECPublicKey, version: 4, block size: 256 bits, y: 1778DB79819A67BC9211E003557C
SecKeyCopyPublicKey((SecKeyRef)privateKey)
我得到的值低于显示公钥的(x,y)
<SecKeyRef curve type: kSecECCurveSecp256r1, algorithm id: 3, key type: ECPublicKey, version: 4, block size: 256 bits, y: 1778DB79819A67BC9211E003557CB55EA0C7A19154B1C0828B30F30AD208ABCD, x: 7A1C65A955F46B9937A12E19139DE25C3F19368A3C2DD7360791E42382C98716, addr: 0x1003019f0>
+ (NSData *) publicKeyBits
现在,我想将这个(x,y)传输到
0x04 | x-32bytes | y-32bytes
,这是65字节的二进制数据,因此我可以将这个二进制表示公钥的数据输出到服务器。如何实现这一点?使用CoreFoundation的CFDictionaryGetValue方法
const void*CFDictionaryGetValue(CFDictionaryRef theDict,const void*键)
下面的函数将提供65字节的未压缩公钥
<SecKeyRef curve type: kSecECCurveSecp256r1, algorithm id: 3, key type: ECPublicKey, version: 4, block size: 256 bits, y: 1778DB79819A67BC9211E003557CB55EA0C7A19154B1C0828B30F30AD208ABCD, x: 7A1C65A955F46B9937A12E19139DE25C3F19368A3C2DD7360791E42382C98716, addr: 0x1003019f0>
+ (NSData *) publicKeyBits
{
}
- kPublicKeyName可以是任何常量字符串,作为公钥的标记关联
例如-
#定义kPublicKeyName@“com.traile.ECKey.public”
使用CoreFoundation的CFDictionaryGetValue方法
const void*CFDictionaryGetValue(CFDictionaryRef theDict,const void*键)
下面的函数将提供65字节的未压缩公钥
<SecKeyRef curve type: kSecECCurveSecp256r1, algorithm id: 3, key type: ECPublicKey, version: 4, block size: 256 bits, y: 1778DB79819A67BC9211E003557CB55EA0C7A19154B1C0828B30F30AD208ABCD, x: 7A1C65A955F46B9937A12E19139DE25C3F19368A3C2DD7360791E42382C98716, addr: 0x1003019f0>
+ (NSData *) publicKeyBits
{
}
- kPublicKeyName可以是任何常量字符串,作为公钥的标记关联
例如-
#定义kPublicKeyName@“com.traile.ECKey.public”
公钥上的SecKeyCopyExternalRepresentation()是否不起作用?如果是,则返回未压缩格式的值。SecKeyCopyExternalRepresentation()和SecKeyCopyPublicKey((SecKeyRef)privateKey)之间有什么区别?公钥上的SecKeyCopyExternalRepresentation()是否不起作用?如果是,则返回未压缩格式的值。SecKeyCopyExternalRepresentation()和SecKeyCopyPublicKey((SecKeyRef)privateKey)之间有什么区别?