Engineer's Notebook

コンピュータ関係のTipsやお役立ち情報などをエンジニアが綴ります

アドセンスレスポンシブ


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

投稿日:2013-11-06 更新日:

楽天自動更新バナー

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に含める事ができないんじゃ???

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

アドセンス 336x280


アドセンス 336x280


関連コンテンツ

よく一緒に読まれている記事

-ソフトウェア開発

Copyright© Engineer's Notebook , 2017 All Rights Reserved Powered by AFFINGER4.