[#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:29661] Re: Digest'ifying OpenSSL::Digest
From:
"Akinori MUSHA" <knu@...>
Date:
2006-10-14 09:44:15 UTC
List:
ruby-dev #29661
At Sat, 14 Oct 2006 11:34:50 +0900,
GOTOU Yuuzou wrote:
> > メリットとしては、苦もなくAPIが統一される、 #file() などの追加
> > メソッドが使える、 bubblebabble や hmac (OpenSSL にもあるが)等の
> > アドインの恩恵を受けられる、などです。
>
> 目的には賛成します。
>
> 最近のext/digestの変更を追っかけていませんでしたが、内部の実
> 装に関わらない機能であれば、例えば::Digest::Utilitiesみたい
> なモジュールを用意して、
>
> class OpenSSL::Digest::Digest
> class <<self
> include ::Digest::Utilities::SingletonMethods
> end
> include ::Digest::Utilities::InstanceMethods
> end
>
> こんな風にできると楽かなとも思いました。
確かに mix-in にした方が美しいですね。検討します。
今いろいろ悩んでいるのは、キーやハッシュ長などのパラメータを
取るアルゴリズムをどう扱うかです。
たとえば、あるメソッドがハッシュアルゴリズムの指定を受けると
したときを考えます。
まず、
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 オブジェクトは自身の生成時に指定されたアルゴリズムと
パラメータに沿った「計算器」を生成する能力(メソッド)を持つ。
といった形でしょうか。でも、まじめにそうしてしまうとあんまり
使いやすい感じはしないですね。
tiger160 = Digest::Tiger.new(160)
hash = tiger160.create()
hash.update(data)
digest = hash.digest
JCE の Mac クラスなどはこんな感じのインターフェースですが、
果たして Ruby にマッチするのかどうか。
ショートカットメソッドをいろいろ作れば短く書く方法を提供できる
でしょうが、冗長で構造がつかみにくいものになってしまいそうです。
そもそもの話としてすべてのハッシュ関数のインターフェースを統一
する必要があるのかという疑問は考えられます。MD5 または HMAC-MD5、
などという選択が実際あるのかどうか分かりませんし。
ただ、現実を予測するのは難しいので、もう少し理想について考えて
みたいです。等しく難しいのなら。
> 名前が見苦しいのはまったく同感です。現在の
> OpenSSL::Digest::DigestクラスをOpenSSL::Digestという名前にし
> て、OpenSSL::Digest.new(name)にしようかと考えてはいました。
>
> # ほかにもOpenSSL::PKey::PKeyなんかもあるので、1.9ではまとめ
> # て変更することを検討します。
ぜひいい形にしたいですね。
> 名前はさておき、[ruby-dev:29651]のパッチではアルゴリズム毎に
> サブクラスを作成し、サブクラス毎に個別にメソッドを定義してい
> るのが受け入れがたいです。
>
> OpenSSL::Digest::DigestはOpenSSLライブラリに定義されている任
> 意のアルゴリズム名で初期化できるようになっています。例えば、
なるほど。あくまで動的な名前指定が主で、個別クラスは従ですか。
念頭においていじってみます。
--
/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp
"Different eyes see different things,
Different hearts beat on different strings --
But there are times for you and me when all such things agree"