openssl で aes256 で暗号化された base64 文字列を復号化しようとしています。私の鍵で暗号化されたセッション鍵と IV が与えられました。次の openssl コマンドを使用できるように、それらを 16 進数に変換しました。
openssl enc -d -aes256 -iv iv.hex -K sessionkey.hex -in message.b64 -out message.txt
IV が非 16 進数値であるというエラーが表示されます。私は自分の鍵で暗号化された base64 の IV とセッション鍵から始めました。だから私は次のことをしました:
// base64 をバイナリに変換
openssl base64 -d -in iv.b64 -out iv.bin
openssl base64 -d -in sessionkey.b64 -out sessionkey.bin
// 秘密鍵を使用して復号化する
openssl rsautl -decrypt -inkey mykey.pem -in sessionkey.bin -out sessionkey_out.bin
openssl rsautl -decrypt -inkey mykey.pem -in iv.bin -out iv_out.bin
//次の C コードを使用して 16 進数に変換します。
含む
main()
{
int c;
while ((c=getchar())!=EOF)
printf("%02X",c);
}
// 16 進数の IV とキーを使用してメッセージを復号化します
openssl enc -d -aes256 -iv iv.hex -K sessionkey.hex -in message.b64 -out message.txt
最後のステップで、IV が非 16 進数であるというエラーが表示されます。何か案は?