OpenSSL HMACコマンドの使い方(dgst -hmacの引数がひどい件)


 
 
OpenSSLでHMAC-SHA256を演算しようとしたんですが、なぜか演算結果が合わない・・・

使ったのは
RFC 4868 - Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec
 2.7.1. PRF Test Vectors
  Test Case PRF-2
に記載されているテストベクタです。


Data.txt

※改行はありません

$ openssl dgst -hmac 4a656665 -sha256 data.txt

とすると、

HMAC-SHA256(data.txt)= 0fca6b808cacdfe99c05ab656aa00d610cfd6c468e6ab7aca93e240319f65955

という結果に。


あれっ???上記資料には

Key =
 4a656665 ("Jefe")

Data =
 7768617420646f2079612077616e7420 ("what do ya want ")
 666f72206e6f7468696e673f ("for nothing?")

PRF-HMAC-SHA-256 =
 5bdcc146bf60754e6a042426089575c7
 5a003f089d2739839dec58b964ec3843

って書かれてるんだけどなぁ。。。


悩むこと数分、なんと、hmacのkeyには文字列をそのまま与えるのが正解でした。

$ openssl dgst -hmac Jefe -sha256 data.txt
HMAC-SHA256(data.txt)= 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843


やっとテストベクタと一致。


AESの場合はAES Test vectorsを例にすると、

openssl aes-128-cbc -e -nopad -K 2b7e151628aed2a6abf7158809cf4f3c -iv 000102030405060708090A0B0C0D0E0F -in aes_test_vector.bin -out aes_cbc.bin

というふうに鍵を16進数の文字列で指定するんですけどね・・・


なんで、コマンド毎に引数の与え方が違うんだよ・・・それに文字列で与えるってことは0x20(スペース)とかKeyに含める事ができないんじゃ???


と、こんな感じではまってました。引数のポリシーは統一して欲しいですね。



Sponsored Link


 
◆◇◆この記事が役に立ったらポチッとお願いします◆◇◆

 

テーマ : セキュリティ
ジャンル : コンピュータ

コメントの投稿

非公開コメント

おすすめ







 



カテゴリ