[#28653] create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function) — "Nobuyoshi Nakada" <nobu@...>

なかだです。

8 messages 2006/05/18

[ruby-dev:28615] Re: openssl aes-*-cbc is broken

From: GOTOU Yuuzou <gotoyuzo@...>
Date: 2006-05-05 08:16:06 UTC
List: ruby-dev #28615
In message <44552AD3.405@airemix.com>,
 `"NARUSE, Yui" <naruse@airemix.com>' wrote:
> openssl モジュールの AES (CBC mode) が使えないようです。

試してみるとECBも同様でした。

> aes-128-cfb aes-128-ecb aes-128-ofb といった
> CBC 以外のモードでは動作しますし、
> AES以外の方式の CBC は動作します。
> また、openssl コマンドからだと動作するので、
> Ruby/OpenSSL の問題だと思うのですが、それ以上は調べ切れませんでした。

なんでそうなるかはちゃんと調べてないのですが、鍵とIVをセット
する前にencryptを呼ぶと動くようです。

% ruby -e '
require "openssl"
pass = "open sesame!"
data = "Hello world!"

c1 = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
c1.encrypt
c1.pkcs5_keyivgen(pass)
s1 = c1.update(data) + c1.final

c2 = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
c2.decrypt
c2.pkcs5_keyivgen(pass)
s2 = c2.update(s1) + c2.final
p(data == s2) #=> true
'

> OpenSSL::Cipher::AES128, OpenSSL::Cipher::AES192,
> OpenSSL::Cipher::AES256 ならば、
> それぞれ -aes128, -aes192, -aes256 と対応するため、
> 引数なしでインスタンスを作れるのでいいと思うのですが。

そうですね。この機会に追加しようと思います。

-- 
ごとうゆうぞう

In This Thread

Prev Next