[#31928] securerandom.rb for 1.8 — Tanaka Akira <akr@...>

securerandom.rb を 1.8 に追加し、cgi/session.rb に使わせたい

18 messages 2007/10/03
[#31990] Re: securerandom.rb for 1.8 — "Akinori MUSHA" <knu@...> 2007/10/09

At Wed, 3 Oct 2007 12:49:20 +0900,

[#31992] Re: securerandom.rb for 1.8 — Tanaka Akira <akr@...> 2007/10/09

In article <86k5pwinco.knu@iDaemons.org>,

[#31993] Re: securerandom.rb for 1.8 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/09

-----BEGIN PGP SIGNED MESSAGE-----

[#31936] Rake添付 — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

21 messages 2007/10/04
[#31937] Re: Rake添付 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/04

-----BEGIN PGP SIGNED MESSAGE-----

[#31938] Re: Rake添付 — Yukihiro Matsumoto <matz@...> 2007/10/04

まつもと ゆきひろです

[#31941] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — Shugo Maeda <shugo@...>

前田です。

20 messages 2007/10/04
[#31943] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/05

-----BEGIN PGP SIGNED MESSAGE-----

[#31945] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — Shugo Maeda <shugo@...> 2007/10/05

前田です。

[#31948] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/05

-----BEGIN PGP SIGNED MESSAGE-----

[#31952] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — Shugo Maeda <shugo@...> 2007/10/05

前田です。

[#31956] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — GOTOU Yuuzou <gotoyuzo@...> 2007/10/06

In message <47063403.3070402@ruby-lang.org>,

[#31960] Re: [ruby-list:44071] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — GOTOU Yuuzou <gotoyuzo@...> 2007/10/07

In message <20071006.101915.596518898.gotoyuzo@sawara.priv.tokyo.netlab.jp>,

[#31980] multibyte string/regex literal with escape sequence — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

24 messages 2007/10/09
[#31981] Re: multibyte string/regex literal with escape sequence — Yukihiro Matsumoto <matz@...> 2007/10/09

まつもと ゆきひろです

[#31983] Re: multibyte string/regex literal with escape sequence — "U.Nakamura" <usa@...> 2007/10/09

こんにちは、なかむら(う)です。

[#31984] Re: multibyte string/regex literal with escape sequence — Yukihiro Matsumoto <matz@...> 2007/10/09

まつもと ゆきひろです

[#31986] Re: multibyte string/regex literal with escape sequence — "U.Nakamura" <usa@...> 2007/10/09

こんにちは、なかむら(う)です。

[#31987] Re: multibyte string/regex literal with escape sequence — Yukihiro Matsumoto <matz@...> 2007/10/09

まつもと ゆきひろです

[#32003] Re: multibyte string/regex literal with escape sequence — "U.Nakamura" <usa@...> 2007/10/10

こんにちは、なかむら(う)です。

[#32133] undefined method `now' for DateTime:Class (NoMethodError) — "NAKAMURA, Hiroshi" <nakahiro@...>

-----BEGIN PGP SIGNED MESSAGE-----

12 messages 2007/10/23
[#32135] Re: undefined method `now' for DateTime:Class (NoMethodError) — tadf@... 2007/10/23

どういう状況かよくわかってないのですが、いっそ必ず date 丸ごと読むようにするか、

[#32136] Re: undefined method `now' for DateTime:Class (NoMethodError) — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/23

-----BEGIN PGP SIGNED MESSAGE-----

[ruby-dev:31993] Re: securerandom.rb for 1.8

From: "NAKAMURA, Hiroshi" <nakahiro@...>
Date: 2007-10-09 13:43:01 UTC
List: ruby-dev #31993
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

1.9向けに準備していた、私と田中さんが合意し、ruby-coreで意見も募集してま
とめ、中田さんうささんの協力により実装するも、まつもとさん一人の「srand
なくすとなるとどうなんだろうなあ」という理由が明確でない反対により止まっ
た(※)Randomクラス、の情報を提供。

Tanaka Akira wrote:
>>  いいと思います。ライブラリ名も明示的で納得できます。ただ、
>> メソッド名に random_ が付いたり付かなかったりする点が気になり
>> ます。
>>
>>  ruby-dev の議論は読んだんですが、メソッド名が決まった経緯は
>> 追い切れませんでした。こういうのはいまいちでしょうか。
>>
>> random_number(i)	-> integer
>> random_number(f=1.0)	-> float
>> random_bytes(n)		-> binary_string / string
>> hex(n)			-> hex_string
>> base64(n)		-> base64_string
> 
> random_number は rand 互換で、SecureRandom が適切なケースで
> rand を使っていた、という場合に機械的に書き換えられるように、
> という意図です。でもそんなにお薦めではなく、hex や base64 を
> 使ってほしいので長い名前になっています。
> 
> integer はあっていいかもしれませんが、用途はなんというか
> session id とかよりはもっと専門的なものになる気がします。
> 見識があるひとに必要性を説かれてからで遅くないように思います。
> 
> float は (上記の書き換え以外では) ちょっと用途が思い当たりま
> せん。

Randomクラスでは、Random#randになっていたものですね。こちらの命名は移行
のし易さ優先で提案したものでした。

rand()からSecureRandomへの移行を必要以上に促す必要はないですから、randと
いう名称にこだわりはありません。移行を促す必要がない、という観点からする
と、いっそのことrandom_numberも不要なのでは。

> random_bytes は OpenSSL::Random.random_bytes に由来します。
> bytes にしようかと考えたこともありますが、[ruby-dev:31515]
> のように IO#bytes と Random#bytes で違うのでどうしたものかなぁ
> と思いつつ、random_bytes 自体はそんなに使いやすくなくてもい
> いか、ということでそのままになっています。

OpenSSL::Random.random_bytesも、それほど考えられて作られたメソッドじゃな
さそうですから、由来というほどのことはないと思います(ちなみにOpenSSLの
関数名はRAND_bytes())。最初に実装したミカロコとしても、田中さんの指摘同
様、「bytesじゃ簡単すぎるかな」と思ったのかもしれません。

ただ、個人的には、hex、base64があまりピンとこないので(後述)、
SecureRandom.bytesという短い名称にして、こちらこそ推奨にしたいところで
す。SecureRandom.random_bytes(256/8)とか、長くて悲しい。

> binary_string, string は別名としてありうると思います。

(ここで1.9のことを考えてもしょーがないですが)stringという名称は混乱を
招きそうな。

> hex と base64 が短いのは意図的です。これらを使いましょうとい
> う推奨を示しています。

私としては、以下の理由から、hexとbase64にはあまりピンときてません。

1. hexやbase64がエンコードフォーマットであり、
   「暗号学的に強度のある乱数」というクラスの本質との結び付きが弱い。

2. 従来の乱数APIで、そのようなものを見たことがない。
   知ってるのはJava、.NET、python、PKCS#11くらいですけど。

ま、2はあまり重要視すべきことではないですし、「どうせ多くの人は、hexか
base64するんだから」というのはわかるんですけど。欲しい人が要るのに反対は
しませんが、推奨というのはなぁ。

(※) かなり根に持っている。

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRwuFOx9L2jg5EEGlAQJl5ggAsmro4Md2puv+GZaYJbA8OWkUwAVT5BPA
+MxP9YiaPVkFqYFyj1A+52eM1RXCRlpebzIO4t2sSTHoSeJ5m8BwzL+6l6J0n9hm
WreXBRYI5dIKHpy229K4yfH9jgSEo9NXDRoEsWZ0Iy6AbwhdtZNudthFVzPrffw0
5oRVUl9MqYKUnYExY9wpxZDdBJ2G+/5F2nJSdz4I7YGWYHn8L5vNc/8/WVijQ/Be
m2MeZKXadTmxske4rw8dHDeKAsreO6GvUu2YdNLjvUft5mTW18TAi6cwN7coOdJm
vS6/H95CK9yMaa8YP/02UyY/SNhbevnWxmzI+B5fW8D6gim4ciyDxA==
=O34I
-----END PGP SIGNATURE-----

In This Thread