Crypt_RSA_KeyPairでfromPEMStringが動かない

  • 2007年6月13日 19:50
  • php

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な配列なんてどこにも出てきてないのに、βとはいえ、よくこれでリリースしてるなぁ。。。

関連広告

Trackbacks: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

Home > php > Crypt_RSA_KeyPairでfromPEMStringが動かない

Search
Feeds

Return to page top