我正在尝试在C#中验证用C中的openssl完成的ECDSA签名。 我被迫更改语言,因为对文档进行签名的设备可以在linux上运行,而检查签名的设备可以在.NET上运行。 据我了解,用C语言实现算法的一种简单方法是使用命令行创建priv.pem,pub.pem和signature.bin文件。
我想念的是一种使用相同的曲线和相同的键在C#中验证我在C中编写的内容的方法。 我试图导入pub key,但是系统返回的异常是参数不正确。
预先感谢您的帮助! 玛塔
$ openssl ecparam -genkey -name secp384r1 -noout -out private.pem
$ openssl ec -in private.pem -pubout -out public.pem
$ openssl dgst -sha256 -sign private.pem < disp.cfg > signature.txt
$ openssl dgst -sha256 -verify public.pem -signature signature.txt < disp.cfg