Trackback頂いたので覗いてみると。
Quoted from Sky and Heart...: MT3.0のTypeKeyサインイン 本家movabletype.orgのフォーラムを探してみると、それらしきスレッド発見。perl5.8.4以降?でSHA1 digest の計算が合わない?試しにperl5.8.0な某鯖で3.01D-jaを新規インスコしたらあっさりできたよママン スレッドにあるような lib/MT/Util.pm の修正をかましたらうちでも正常にサインインできるようになった(もちろんCrypt::DSAは入れてある)けど、恒久的な修正は来るんだろうか
というわけでフォーラムの該当スレッドを覗く。
Quoted from movabletype.org : Support Forum
The validation failed, Tried multiple variations
が、英語で何が書いてあるのかさっぱり分からん。Trackback元の記事から、lib/MT/Util.pm を修正すれば良いということは分かるので、該当箇所を探す。あった。だぶんこれ。
Quoted from movabletype.org : Support Forum - --- a/lib/MT/Util.pm 27 Jul 2004 00:21:17 -0000 1.126 +++ b/lib/MT/Util.pm 8 Aug 2004 17:58:35 -0000 @@ -1234,7 +1234,7 @@ }; my $has_crypt_dsa = $@ ? 0 : 1; $has_crypt_dsa = 0 if $param{ForcePerl}; - - if ($has_crypt_dsa && 0) { + if ($has_crypt_dsa) { $param{Key} = bless $param{Key}, 'Crypt::DSA::Key'; $param{Signature} = bless $param{Signature}, 'Crypt::DSA::Signature'; Crypt::DSA->new->verify(%param);
たった一行書き換えるだけで良いらしい。早速 lib/MT/Util.pm を修正してアップロード。果たして、サイン・イン成功。
何度も言うが、このスレッドの内容をきちんと理解できていないので、この修正がどんな意味を持つのか良く分からない。ってか、SHA1 digest って何ですか。ちょっと不安だが、当面はこれで運用することに決定。この内容、そのうちシックス・アパートからアナウンスあるかな?スレッドには、3.1に反映されるだろうとか何とか書いてあったけど。
最後に、Trackbackくれたあなたに、感謝。
gadget
どうやら解決策が見つかったようですね。ありがとうございます。SHA1 digest ってのは暗号の方式です。
解決方法を見ると、($has_crypt_dsa && 0) は && 0 であるかぎり常にfalseなんで、Crypt::DSAを常に使わないようになんらかの意図で回避している気がします。んで、Crypt::DSAを使わずに力押しで暗号を照合すると Perl 5.8.4以上 ではなんらかの理由でエラーになる……ってことかな? ($has_crypt_dsa && 0) としてる意図が読めないので、微妙ですが。
とりあえず、こちらも週末に直してみます。
管理人
ははーなるほど、解説ありがとうございます。
Crypt::DSAがインストールされていない環境を考慮して使わないようにしていた、Perl 5.8.4より前ならそれで問題なかった、てとこですかね。
じゃ、Crypt::DSAがインストールされているさくらインターネットなら、この修正は問題ないということになりますか。
同じように悩んでいる人ってもっといるのかなぁ。
検索で上手く辿り着いてくれると良いのですが。
ソラ
こんにちは。
トラックバックありがとうございました。
エラーが出なくなり、非常に助かりました。ほんとうにありがとうございます。
3.1では解決されているといいなぁ…