[#29621] Re: [ruby-cvs:18312] ruby, ruby, ruby/lib/test/unit, ruby/lib/test/unit/collector: * common.mk (test-all): separate directory where running test cases — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
3 messages
2006/10/02
[#29625] undefining `funcall' may cause serious problem I think — URABE Shyouhei <root@...>
卜部です。以下のような
6 messages
2006/10/02
[#29626] Re: undefining `funcall' may cause serious problem I think
— Yukihiro Matsumoto <matz@...>
2006/10/02
まつもと ゆきひろです
[#29637] Module.new — WATANABE Hirofumi <eban@...>
わたなべです。
5 messages
2006/10/05
[#29643] [patch] REXMLでDTDを読み込む — 堀川久 <vzw00011@...>
こんにちは。
6 messages
2006/10/09
[#29651] Digest'ifying OpenSSL::Digest — "Akinori MUSHA" <knu@...>
(主に)ゆぞさん
6 messages
2006/10/13
[#29652] Re: [ruby-cvs:18412] ruby: — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
1 message
2006/10/13
[#29656] Re: [ruby-cvs:18412] ruby: — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
1 message
2006/10/13
[#29669] erb does not work — Minero Aoki <aamine@...>
青木です。
6 messages
2006/10/17
[#29672] gsub で taint になる — とみたまさひろ <tommy@...>
とみたです。
6 messages
2006/10/19
[#29692] rubybugs updated — URABE Shyouhei <root@...>
本件はみなさまにも関係するので、MLにてアナウンスします。
5 messages
2006/10/23
[#29698] *LDFLAGSについて — "Yutaka Kanemoto" <kinpoco@...>
金本ともうします。
7 messages
2006/10/26
[#29700] ruby NKF モジュールの CP932 系エンコーディングパッチ — MORIYAMA Masayuki <moriyama@...>
ミラクルリナックスの森山です。
10 messages
2006/10/27
[#29726] cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...>
MoonWolfです。
74 messages
2006/10/31
[#29728] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/01
まつもと ゆきひろです
[#29729] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/01
MoonWolfです。
[#29731] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/01
まつもと ゆきひろです
[#29745] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/02
MoonWolfです。
[#29746] Re: cgi.rbのDoS脆弱性について
— Takahiro Kambe <taca@...>
2006/11/02
In message <4549F2CA.7000802@moonwolf.com>
[#29752] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/03
MoonWolfです。
[#29755] Re: cgi.rbのDoS脆弱性について
— Takahiro Kambe <taca@...>
2006/11/03
In message <454AA560.9090105@moonwolf.com>
[#29751] Re: cgi.rbのDoS脆弱性について
— "U.Nakamura" <usa@...>
2006/11/02
こんにちは、なかむら(う)です。
[#29753] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/03
MoonWolfです。
[#29754] Re: cgi.rbのDoS脆弱性について
— "U.Nakamura" <usa@...>
2006/11/03
こんにちは、なかむら(う)です。
[#29756] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/03
MoonWolfです。
[#29759] Re: cgi.rbのDoS脆弱性について
— "U.Nakamura" <usa@...>
2006/11/03
こんにちは、なかむら(う)です。
[#29780] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/04
MoonWolfです。
[#29784] Re: cgi.rbのDoS脆弱性について
— "U.Nakamura" <usa@...>
2006/11/04
こんにちは、なかむら(う)です。
[#29786] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/04
MoonWolfです。
[#29791] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/04
まつもと ゆきひろです
[#29811] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/05
MoonWolfです。
[#29818] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/05
まつもと ゆきひろです
[#29826] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/05
MoonWolfです。
[#29841] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/05
まつもと ゆきひろです
[#29843] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/05
MoonWolfです。
[#29847] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/06
まつもと ゆきひろです
[#29873] Re: cgi.rbのDoS脆弱性について
— "U.Nakamura" <usa@...>
2006/11/06
こんにちは、なかむら(う)です。
[#29875] Re: cgi.rbのDoS脆弱性について
— MoonWolf <moonwolf@...>
2006/11/06
MoonWolfです。
[#29876] Re: cgi.rbのDoS脆弱性について
— "U.Nakamura" <usa@...>
2006/11/06
こんにちは、なかむら(う)です。
[#29761] Re: cgi.rbのDoS脆弱性について
— 植田 裕之 <ueda@...>
2006/11/03
植田と申します。
[#29764] Re: cgi.rbのDoS脆弱性について
— Yukihiro Matsumoto <matz@...>
2006/11/03
まつもと ゆきひろです
[#29772] Re: cgi.rbのDoS脆弱性について
— Shugo Maeda <shugo@...>
2006/11/04
前田です。
[#29774] Re: cgi.rbのDoS脆弱性について
— Shugo Maeda <shugo@...>
2006/11/04
前田です。
[ruby-dev:29666] Re: Digest'ifying OpenSSL::Digest
From:
Tanaka Akira <akr@...>
Date:
2006-10-14 20:12:08 UTC
List:
ruby-dev #29666
In article <86bqofkz9t.knu@iDaemons.org>,
"Akinori MUSHA" <knu@iDaemons.org> writes:
> 今いろいろ悩んでいるのは、キーやハッシュ長などのパラメータを
> 取るアルゴリズムをどう扱うかです。
>
>
> たとえば、あるメソッドがハッシュアルゴリズムの指定を受けると
> したときを考えます。
>
> まず、
>
> check_auth(cookie, "MD5")
>
> と名称を文字列で渡す方法では、パラメータの指定が困難です。
>
> check_auth(cookie, "HMAC;hash=MD5;key=blahblahblah")
>
> と DBI みたいな感じにしたのでは、指定もパースも面倒なので論外。
>
> また、
>
> check_auth(cookie, Digest::MD5)
>
> のようにクラスオブジェクトを渡す方法がありますが、パラメータ付き
> アルゴリズムの場合、パラメータ(の組合せ)ごとに固有のクラスを作る
> のかというと躊躇します。(digest/hmac で一度やってみました)
>
> かといって、
>
> check_auth(cookie, Digest::Tiger, 160)
>
> のようにパラメータを並べて渡すのでは「計算器」をひとまとまりで
> 指定できていないので美しくない。
>
> 計算器を渡す、という意味では
>
> check_auth(cookie, Digest::Tiger.new(160))
>
> というのがひとつの解決策であり、現時点の digest はこのような形を
> 想定していますが、いくつか問題もあります。
>
> ・同時に複数の計算器インスタンスを必要とする場合、 clone() して
> もらうのか?
> ・状態のあるものをやりとりするのは気持ち悪い。使用前・使用後に
> reset() する責任の有無などが気になる。
>
> つまり、渡すべきなのは計算器そのものではなくて、計算器の生成
> 方法であるということになります。
>
> ということは、先ほどのクラスオブジェクトを渡す方法がいちばん
> 近そうです。あるべき姿は
>
> ・Digest 実装クラスは new() でパラメータを受け取り、 factory
> オブジェクトを生成する。
> ・factory オブジェクトは自身の生成時に指定されたアルゴリズムと
> パラメータに沿った「計算器」を生成する能力(メソッド)を持つ。
そのメソッドひとつに関して多態であればいいのであれば、そのメ
ソッドの名前を call にして、factory の生成には引数のない
lambda を使えばいいのでは?
パラメータをとらないアルゴリズムに対応するクラスについてはク
ラスオブジェクト自身が call を持つことにすればクラスオブジェ
クト自身が factory とも振る舞えますし。
> といった形でしょうか。でも、まじめにそうしてしまうとあんまり
> 使いやすい感じはしないですね。
>
> tiger160 = Digest::Tiger.new(160)
> hash = tiger160.create()
> hash.update(data)
> digest = hash.digest
>
> JCE の Mac クラスなどはこんな感じのインターフェースですが、
> 果たして Ruby にマッチするのかどうか。
class << Digest::SHA256; alias call new; end
class << Digest::SHA512; alias call new; end
...
としておいて、
p Digest::Tiger.new(160).update(data).digest
p Digest::SHA256.new.update(data).digest
と直接使ってもいいし、
p lambda { Digest::Tiger.new(160) }.call.update(data).digest
p Digest::SHA256.call.update(data).digest
と call で呼べる factory 経由でやってもいいということで、
check_auth(cookie, lambda { Digest::Tiger.new(160) })
check_auth(cookie, Digest::SHA256)
というようにアルゴリズムを受け取るメソッドには lambda ないし
クラスを指定し、場合によっては
check_auth(cookie) { Digest::Tiger.new(160) }
check_auth(cookie) { Digest::SHA256.new }
とブロックを使いたくなるかもしれない、とか。
--
[田中 哲][たなか あきら][Tanaka Akira]