私は最初からX.509証明書ジェネレータを実装しようとしています(私は既存のものについて知っていますが、もう1つは必要です)。私が理解できないのは、証明書のSHA-1(またはその他の)指紋を計算する方法です。X.509証明書のSHA-1指紋の計算方法は?
RFC5280は、署名機能への入力が、DERでエンコードされたtbsCertificateフィールドであることを示します。残念ながら、私が計算するハッシュは、OpenSSLによって生成されたハッシュとは異なります。ここにステップバイステップの例があります。
- のOpenSSLのX509ツールを使用して証明書を生成する(バイナリDER形式で、ない ASCII PEM)
- DDを用いてTBSフィールドを抽出
openssl x509 -fingerprint
- を使用して、SHA-1ハッシュを計算する(または何かそれ以外のファイルに保存してください。
sha1sum
ユーティリティを使用してそのハッシュを計算してください
ここで、ステップ2と3で得られるハッシュは異なります。誰かが私に間違っているかもしれないことをヒントを与えることができますか?
あなたがたtbsCertificateのSHA-1ハッシュを計算するときに、あなたは[PKCS#1]を使用している(http://tools.ietf.org/html/ [rfc 3279](http://tools.ietf.org/html/rfc3279)で指定されているように、 – sarnold
Uhm ... RFC2313(PKCS#1)は、RSA暗号化のみを指定します。私が理解する限り、パディングはSHA-1の計算段階では必要ありませんか? –
ああ、ところで、ステップ3ではsha1sumユーティリティを使ってハッシュを計算します –