In article <470C9094.3020108 / sarion.co.jp>,
  "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> writes:

>> 「ミカロコ」ってなんですか?
>
> 隠語でしたすいません。Michal Rokos。最初にext/opensslを実装した人です。

なるほど。

> 私のOpenSSL::Random.random_bytesの用途では、hexやbase64にすることはほと
> んどなく、そのまま共有鍵にしたり、巨大整数とみなしてMPI(*)などの巨大整数
> 表現に変換する。
>
> (*) OpenPGPで定義されたフォーマット。

ふむ。そういう具体的な用途は参考になります。

> ここでの私と田中さんの認識の違いは、[ruby-dev:30939][ruby-dev:30940]
> あたりから続いているのだと思います。私としては、session idの生成という、
> secure randomの一用途のために、secure randomクラスにメソッドを追加するの
> が気になる。メソッドの必要性は理解してますし、標準添付するのにも賛成。こ
> れがcgi/session.rbの中だったり、sessionidgenerator.rbという名前なら気に
> ならない。

まぁ、大クラス主義ですから、まちがいやすいメソッド名でなけれ
ばいろんな機能があっていいんじゃないですかね。

> bytesを推奨する意図はそれほどありませんでした。hexやbase64を推奨すること
> により、SecureRandom.base64で取得したものをbase64 decodeして共有鍵に使
> う、などという事例が起こらないで欲しい、という程度です。

以下の 3つを比べると、SecureRandom.random_bytes がいちばん短
いので、base64 や hex 自体が短くてもわざわざそっちを使うよう
な懸念は大きくないように思います。

* SecureRandom.random_bytes
* SecureRandom.base64.unpack("m")[0]
* [SecureRandom.hex].pack("H*")
-- 
[田中 哲][たなか あきら][Tanaka Akira]