PHPで公開鍵暗号を利用する場合、PEARのCrypt_RSAが利用できます。
このCrypt_RSAで、KeyPairをPEM形式の文字列から生成するためにCrypt_RSA_KeyPair::fromPEMString($pem) な関数があるのですが、手元の環境では動きませんでした。原因はundefinedな配列を操作しているみたいで。と、いうわけで以下、修正方法。
Crypt/RSA/KeyPair.phpの235行目に
$len |= ord($in[$pos++]);
な箇所がありますが、これを
$len |= ord($str[$pos++]);
にすればOKです。これで、次にように確認できるはず。
$key_pair = new Crypt_RSA_KeyPair(1024);
echo("[PubKey]" . $key_pair->getPublicKey()->toString() . "\n");
echo("[PriKey]" . $key_pair->getPrivateKey()->toString(). "\n");
$pem = $key_pair->toPEMString();
echo("[PEM]" . $pem);
$new_key_pair = Crypt_RSA_KeyPair::fromPEMString($pem);
echo("[PubKey]" . $new_key_pair->getPublicKey()->toString() . "\n");
echo("[PriKey]" . $new_key_pair->getPrivateKey()->toString(). "\n");
それにしても、$inな配列なんてどこにも出てきてないのに、βとはいえ、よくこれでリリースしてるなぁ。。。
Google Adsense
Social bookmark comment : 0
No comment.
Comment : 0
Trackback : 0
- TrackBack URL for this entry
- http://blog.katsuma.tv/mt-tb.cgi/68
- Listed below are links to weblogs that reference
- Crypt_RSA_KeyPairでfromPEMStringが動かない from blog.katsuma.tv
2007/06/13 (Wed)