command-line - 如何使用 OpenSSL 命令验证 ECC 签名?

标签 command-line openssl ecdsa

我有一个公钥、一个 192 位哈希和一个 384 位签名,都是 .txt 十六进制文件,曲线是 prime192v1。

我可以使用哪些命令行来通过 OpenSSL 验证消息?

最佳答案

作为引用,可以使用以下命令创建 EC key :

  • 创建 EC key :

    $ openssl ecparam -genkey -name prime192v1 > key.pem
    
  • 提取公钥:

    $ openssl ec -in key.pem -pubout > pub.pem
    

可以使用与其他 key 类型相同的方式对消息的哈希进行签名并使用 EC key 验证签名:

  • 计算哈希值(使用您选择的哈希函数):

    $ openssl dgst -sha256 -binary message.txt > hash.txt
    
  • 用私钥对散列进行签名:

     $ openssl pkeyutl -sign -inkey key.pem -in hash.txt > sig.txt
    
  • 使用公钥验证签名:

     $ openssl pkeyutl -verify -in hash.txt -sigfile sig.txt -inkey key.pem
     Signature Verified Successfully
    

关于command-line - 如何使用 OpenSSL 命令验证 ECC 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20815035/

相关文章:

windows - https 与 ECDHE-ECDSA-AES256-GCM-SHA384 在 Windows 2012

linux - 关闭命令提示符或腻子后如何保持 julia 运行

linux - 试图在 linux Centos 6 上的端口 80/443 上运行 AolServer

c# - 使用 RSACryptoProvider 在 C# 中验证 PHP OpenSSL 签名

android - 如何为 gSoap-OpenSSL Android 应用程序存储和加载 cacerts.pem

linux - 使用 ECDSA 和 ED25519 身份的 ssh-add 错误

c - 错误 'struct ec_key_st' 类型的定义不完整,使用 OpenSSL

zend-framework - 更改 php.ini 包含路径,Zend Framework

c++ - 在 C++ 中使用输出重定向调用外部程序的空文件输出

regex - 将文件中的部分 url 替换为 sed