逆引きRubyは俺も大変お世話になった(というか現在進行形でなっている)。恩返しをするべく、まだ開いてるページ(CGIとかは欲しい人が多そうだなあ)を埋めてみようかと思いつくものの、ForntPageから察するに、たけうちさんの執筆物という形で作っているようだから、細部修正はともかくでっかくのっけるのは気が引ける…。
そこでやっぱり止まってしまうのか。Wiki なんだから他人のサイトだろうが自分が思うように編集して良いと思います。自由に編集されるのが嫌だったら認証を掛けるでしょうし。
個人の Wiki でさえ編集することが躊躇されるんだから、Ruby の公式リファレンスマニュアルの編集するまでに乗り越えるハードルはやっぱり高いんだろうか。どうやったら人が集まるだろう。
Wikipedia についてに関しては反応リンク集の先までは読んでないんだけど、思ったこと。間違いに気付いたら正しい記事を書けないまでも、「こことここは間違っている」と書くだけで、それは立派な貢献だと思う。また、ページの記述が全体的にどうしようもなかったら、全部削除して「間違いが多すぎたので削除。執筆者募集。」と書き換えるのもありだと思う。
正解自体は なひさんがコメントで書いているけど、どうやってこれを調べたら良いのかメモ。
RFC 2459 「インターネットX.509 PKI - 証明書と CRL のプロファイル」の 7.2.2 に ASN.1 で
Dss-Sig-Value ::= SEQUENCE { r INTEGER, s INTEGER }
と書いてある。だから、
require 'openssl' include OpenSSL sig = ASN1::Sequence.new([ASN1::Integer.new(r), ASN1::Integer.new(s)]).to_der
が正解なのか。
でも RFC 2459 は RFC 3280 により obsolete されている。かつ RFC 3280 には DSA の署名の ASN.1 構造が載っていない。正解にたどり着くのは結構難しい。
DSA 自体の仕様は ANSI X.9.30.1 を見るのが一般的らしい。ただし有料。$50。無料で仕様書を閲覧できるRFC というシステムは素晴らしいなと思った。
がんばって RFC とか仕様書とかを読んでみたけど、このページが一番分かりやすかった。
ちゃんとデコードされる。おもしろい。
$ ruby -ropenssl -rpp -e ' pp OpenSSL::ASN1.decode("0,\002\024C\e\317)%E\300NR\347}\326\374\261fL\203\317-w\002\024\v[\232$\021\230\350\363\206\220\004\366\010\251\341\215\245\314:\324") ' #<OpenSSL::ASN1::Sequence:0x40331224 @tag=16, @tag_class=:UNIVERSAL, @tagging=nil, @value= [#<OpenSSL::ASN1::Integer:0x40331288 @tag=2, @tag_class=:UNIVERSAL, @tagging=nil, @value=383122548009866097833353951919834639622095187319>, #<OpenSSL::ASN1::Integer:0x40331238 @tag=2, @tag_class=:UNIVERSAL, @tagging=nil, @value=64841693857718051568170099635345788375059413716>]>
最近のコメント