【发布时间】:2020-06-11 16:42:15
【问题描述】:
我想创建一个签名并用 openssl 验证它。 我想要我的签名的十六进制输出。
这是我的代码
#create private key
openssl ecparam -genkey -name secp256k1 -rand /dev/urandom -noout -out private.pem
#public key derivation
openssl ec -in private.pem -pubout -out public.pem
#create signature
openssl dgst -sha256 -hex -sign private.pem msg.txt > signature.hex
#check signature
openssl dgst -sha256 -verify public.pem -signature signature.hex msg.txt
我收到此错误:
Error Verifying Data
4573216364:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1220:
4573216364:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:386:Type=ECDSA_SIG
如果我在创建签名期间删除 -hex,它会起作用。
$ openssl version
OpenSSL 1.0.2s 28 May 2019
【问题讨论】:
标签: openssl digital-signature private-key public-key ecdsa