使用 OpenSCv14.0 派生密钥

使用 OpenSCv14.0 派生密钥

我正在尝试使用 OpenSC 工具派生密钥。我通过以下命令在 openssl 的帮助下生成了 EC 密钥:

openssl ecparam -in secp384r1param.pem -genkey -noout -out secp384r1key.pem

并尝试将此密钥传递给 opensc derive 命令:

pkcs11-tool.exe --module opensc-pkcs11.dll --derive -l -pin #### -id 03 -i secp384r1key.pem

但这给了我输出:

无法从 secp384r1key.pem 读取 EC 密钥

一个小的调试显示 openssl 函数d2i_EC_PUBKEY_bio抛出了这个错误。我试图找到有关输入文件格式的任何帮助,但无济于事。你们能帮我吗?我在这个过程中哪里出错了?我刚刚开始使用智能卡和读卡器。

答案1

OpenSSL{d2i,i2d}_$type[_$io]例程读取和写入 DER(d2i 表示 DER 到内部,i2d 表示内部到 DER);PEM_{read,write}[_$io]_$type读取和写入 PEM。type 为的例程[$alg_]PUBKEY读取和写入通用 X.509 SubjectPublicKeyInfo 格式的公钥,这通常是首选(尽管有其他选择)。您有一个 PEM 格式的私钥(非通用,但这并不重要),而程序需要一个通用 DER 格式的公钥。请执行

openssl ec -in blahkeyfile.pem -out blahpubfile.der -pubout -outform der 

(或您选择的合适名称)并尝试使用它。

相关内容