Wei Dai の Crypto++ を使用して、アプリケーションで ECDSA キーペア (secp128r1) を作成します。署名と検証は期待どおりに機能します。署名の長さ (正確に 32 バイト) を最小限に抑えるために、メッセージ自体を署名に追加しません。
ただし、openssl で署名を作成すると、次のようになります。
$ cat test.txt | openssl dgst -ecdsa-with-SHA1 -sign sample.key -keyform DER > act.bin
OpenSSL は明らかにメッセージ自体を署名に入れるため、署名が大きくなります (例: 39 バイト)。を設定すると、Crypto++ で署名を検証できますCryptoPP::SignatureVerificationFilter::PUT_MESSAGE
。
結果の署名が正確に 32 バイトになるように、メッセージを署名に入れずにメッセージに署名するように OpenSSL に指示できますか?