如何用OpenSSL从X、Y分量生成PEM格式的ECC公钥?
可以用OpenSSL从给定的X、Y分量生成PEM格式ECC公钥,步骤如下:
首先需要明确ECC曲线类型,你的X、Y分量都是16字节(128位),对应128位的ECC曲线(比如secp128r1或secp128k1,这里以secp128r1为例,若使用其他曲线需替换对应名称)。
具体操作步骤:
构造未压缩格式的公钥点
ECC未压缩公钥点以04开头,后跟无空格的X、Y分量十六进制字符串,最终内容为:041d4315e38499d6f69f49618aaeecf24fb51a86cff90e01af3a9a52b3c6582c48生成二进制公钥文件
执行以下命令将十六进制内容转为二进制文件pubkey.bin:echo "041d4315e38499d6f69f49618aaeecf24fb51a86cff90e01af3a9a52b3c6582c48" | xxd -r -p > pubkey.bin转换为PEM格式公钥
指定曲线类型,用OpenSSL将二进制公钥转为PEM格式:openssl ec -pubin -inform der -in pubkey.bin -outform pem -out pubkey.pem -name secp128r1验证公钥正确性(可选)
执行以下命令查看公钥详情,核对X、Y分量是否匹配:openssl ec -pubin -in pubkey.pem -text -noout
完成后,pubkey.pem就是你需要的PEM格式ECC公钥。
内容的提问来源于stack exchange,提问作者aiden.yang
相关产品推荐
相关产品推荐

