In article <4669DAB0.4050705 / sarion.co.jp>,
  "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> writes:

> というわけで、最初は、srandom.rbはどうかと提案しようと思ったんですが、
> この場合関数名はsrandom()で、それはsrand()と混同するので駄目だ、と。
> 関数形式がなくなった今、srandom.rbはどうですかね? SRandom.random_bytes。

secure という単語がわかるのは重要なんじゃないかなぁ。

>> 種が1つじゃ困る、というのはよくわかりません。シミュレーショ
>> ン用の疑似乱数ならそうでしょうが、cookie に使う secure
>> random number ならひとつあればいいような。
>
> cookieに使うsecure RNGについては、ひとつあればよいと思います(*)。それ以
> 外に、randとsrandに依存しているライブラリが複数あって、それを混ぜて使う
> アプリケーションの場合、あるライブラリが呼んだsrandが他のライブラリの前
> 提を壊すことはないか、と。例えば私がsoap4rの中でこっそりsrand呼ぶと、一
> 緒に使われて発狂するライブラリとか、ないかな。

rand を自分で占有するのはあからさまに無理っぽいので、そうし
たければ自前でやるのではないかという気がします。

そういう pseudo random number generator のクラスを最初から
ruby が提供するのはありうると思いますが、secure random
number generator はそれとは別の話というわけで。

> (*) 今回の修正により、種とは無関係になったわけですが。これ1.8にも入れた
> ほうがいいと思うなー > ブランチメンテナ

えぇ、議論がおさまったら。

> そうですね。1.9でもしrubygemsが入るなら、フィーチャー利用宣言(っていう
> かrequire)をhookできる仕組みを入れて、そこで、存在しないファイル名の指
> 定を掴まえて書き換えられればいいのかな。

そういう機能が入らない可能性もあるしなぁ。

> 最初に上記の論拠も考えたんですが、cookieの生成しか考えないのであれば、そ
> もそもsecrand.rbなんて追加せずに、cgi/session.rbに追加すりゃいいですよ
> ね。そうしなかったってことは、汎用の(cookieの生成以外でも使われる)
> secure RNGが欲しい、という経緯だろうと思いました(それで最初に経緯を聞き
> ました)。

cgi/session.rb 以外で cookie を作ることもありますよね。
たとえば web application framework は (web application の数
よりはずいぶんと少ないでしょうが) たくさんあるわけで、その共
通部分はぜひ支援すべきだと思います。

あと、きっかけとして最近手元で digest auth の client を書い
て cnonce の生成に欲しかったということもありまして。

あと、webrick の digest auth の opaque とか、imap の cnonce
とか、secure random のほうがよろしかろうというのもありますし。

# nonce って secure random でないとよろしくないですよね?

> だとすれば、RNGとしてrand/srandを使っていたほとんどの層に、スムーズに新
> RNGに移行してほしいわけで、やはり短い名称のほうがいいと思います。
>
> というわけで、今のところ「固有名詞でもない略称がちょっとなー」以上は思い
> ついてません。# なので気にせずどうぞ

なにか意見があるひとは他にいませんかね?
-- 
[田中 哲][たなか あきら][Tanaka Akira]