有没有办法在命令行上使用 OpenSSL 生成、签名、验证和使用 ECDH 密钥?我对该实用程序提供的常规 Diffie-Hellman 功能有些熟悉,但我看不到有关椭圆曲线变体的任何信息。
答案1
对于签名,你需要ECDSA,不是 ECDH– 后者是密钥交换算法,主要用于加密。
有openssl dgst -sign
:
openssl dgst -sha256 -sign <priv_key_file> -out <sig_file> <data_file>
还有openssl pkeyutl
:
openssl pkeyutl -sign -in <data_file> -inkey <priv_key_file> -out <sig_file>
(请注意,pkeyutl
仅支持带有 ECDSA 的 SHA1;-pkeyopt digest:sha256
仅接受 RSA 密钥。同时dgst
似乎适用于所有摘要,但我对此不是 100% 确定。)
还有其他工具,例如ecdsa工具。
如果您有基于 ECDSA 的 X.509证书,你会想要openssl cms
。