AES の実装がライブラリ間で異なるかどうか疑問に思い始めています..
現在、PyCrypto で暗号化された平文があります。
Node.jsのCrypto Libraryで暗号文を解読しようとしています..
基本的には PyCrypto
を使用します。ランダムに生成された IV で AES-128-CBC を使用しています。(これは PyCrypto で完全に復号化されます)
ただし..
Node.jsでこれを行っています
var buf = new Buffer(ciphertext)
var decipher = crypto.createDecipher('aes-128-cbc',aeskey)
buf = decipher.update(buf,'binary', 'binary')
buf += decipher.final('binary')
ガベージの束を吐き出す....(「バイナリ」をhex/utf8に変更しても役に立たない)
私はCBC(Cipher Block Chaining)を使用しているため...
暗号文の先頭にIVを追加しています(16ブロック)..PyCryptoでは、これはPGPの仕様、CFBの使用法と同様に完全に機能します..
これが機能しない理由を誰かが知っていますか???
Node.js の標準ライブラリに期待しすぎていませんか?