Câu trả lời:
Đối với chữ ký, bạn sẽ cần ECDSA, không phải ECDH - sau này là thuật toán trao đổi khóa , chủ yếu được sử dụng để mã hóa.
Có openssl dgst -sign
:
openssl dgst -sha256 -sign <priv_key_file> -out <sig_file> <data_file>
Ngoài ra còn có openssl pkeyutl
:
openssl pkeyutl -sign -in <data_file> -inkey <priv_key_file> -out <sig_file>
(Lưu ý rằng pkeyutl
chỉ hỗ trợ SHA1 với ECDSA; -pkeyopt digest:sha256
chỉ được chấp nhận với các khóa RSA. Trong khi đó dgst
dường như hoạt động với tất cả các thông báo, nhưng tôi không chắc chắn 100% về điều đó.)
Các công cụ khác tồn tại, chẳng hạn như ecdsatool .
Nếu bạn có một X.509 ECDSA dựa trên giấy chứng nhận , bạn sẽ muốn openssl cms
.
openssl cms
sử dụng cho?