我有一个用例、在这个用例中、我的客户会发送证书或 CSR 以及公钥(通过 SL_NETUTIL_crypto_public_key、SL_NetUtilGet ()提取)进行比较、但该公钥似乎是 x9.63格式。 如果服务器从证书或 CSR 中提取公共密钥、则这将是 base64编码 ASN1格式、在比较期间将失败。
通过上述 API 调用提取的公共密钥是否可以返回与 CSR 和证书内的一个等效的 base64编码数据?
此致、
弗兰克
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我有一个用例、在这个用例中、我的客户会发送证书或 CSR 以及公钥(通过 SL_NETUTIL_crypto_public_key、SL_NetUtilGet ()提取)进行比较、但该公钥似乎是 x9.63格式。 如果服务器从证书或 CSR 中提取公共密钥、则这将是 base64编码 ASN1格式、在比较期间将失败。
通过上述 API 调用提取的公共密钥是否可以返回与 CSR 和证书内的一个等效的 base64编码数据?
此致、
弗兰克
您可以将 x9.63字符串(按键的十六进制表示法)转换为 base64。
以下 bash 脚本 是一个示例。 它 从 x9.63密钥创建一个 DER 文件、然后将其转换为 pem (base64):
pub_hex=1 #输入公共密钥(十六进制后脚本格式、例如0443ac12a…… ,130个字符表示65字节)
#为 prime256v1添加公钥前缀
echo 3059301306072a8648ce3d020106082a8648ce3d030107034200 | xxd -r -p > pub.der
#添加二进制密钥
echo ${pub_hex}| xxd -r -p >> pub.der
OpenSSL pkey -pubin -inform der -in pub.der -out pub.pem