0

理論的には、公開鍵、署名、および署名されたデータがあり、ハッシュ アルゴリズムがわかっている場合、データの署名を検証できるはずです。

これらのコンポーネントはすべてバイナリ形式です。この署名を検証する最も簡単な方法を知っている人はいますか? OpenSSL? パイソン?例は素晴らしいでしょう。コードを書かなくてもできる?

4

2 に答える 2

1

Rubyでそれを行う方法は次のとおりです。

require 'openssl'

signature = File.read('/path/to/sig.der')
data = File.read('/path/to/data')
pub_key = File.read('/path/to/ecdsa_pub_key')
key = OpenSSL::PKey::EC.new(pub_key)
if key.dsa_verify_asn1(data, signature) == true
  puts 'verified'
end

このコードでは、Ruby にリンクされた OpenSSL が楕円曲線をサポートするようにコンパイルされている必要があります。(Linux の Red Hat フレーバー ディストリビューションは、この要件を満たしていません)

興味がある場合: dsa_verify_asn1 は、OpenSSL API でECSDA_verify関数を使用します。

于 2013-06-07T02:24:15.757 に答える