move base64_url_(encode|decode) to static functions in Magicsig

This commit is contained in:
James Walker 2010-03-26 13:37:46 -04:00
parent 9c63ae6e44
commit c6c4510192
2 changed files with 21 additions and 19 deletions

View File

@ -129,11 +129,11 @@ class Magicsig extends Memcached_DataObject
public function toString($full_pair = true)
{
$mod = base64_url_encode($this->publicKey->modulus->toBytes());
$exp = base64_url_encode($this->publicKey->exponent->toBytes());
$mod = Magicsig::base64_url_encode($this->publicKey->modulus->toBytes());
$exp = Magicsig::base64_url_encode($this->publicKey->exponent->toBytes());
$private_exp = '';
if ($full_pair && $this->privateKey->exponent->toBytes()) {
$private_exp = '.' . base64_url_encode($this->privateKey->exponent->toBytes());
$private_exp = '.' . Magicsig::base64_url_encode($this->privateKey->exponent->toBytes());
}
return 'RSA.' . $mod . '.' . $exp . $private_exp;
@ -174,9 +174,9 @@ class Magicsig extends Memcached_DataObject
$rsa = new Crypt_RSA();
$rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
$rsa->setHash('sha256');
$rsa->modulus = new Math_BigInteger(base64_url_decode($mod), 256);
$rsa->modulus = new Math_BigInteger(Magicsig::base64_url_decode($mod), 256);
$rsa->k = strlen($rsa->modulus->toBytes());
$rsa->exponent = new Math_BigInteger(base64_url_decode($exp), 256);
$rsa->exponent = new Math_BigInteger(Magicsig::base64_url_decode($exp), 256);
if ($type == 'private') {
$this->privateKey = $rsa;
@ -203,23 +203,25 @@ class Magicsig extends Memcached_DataObject
public function sign($bytes)
{
$sig = $this->privateKey->sign($bytes);
return base64_url_encode($sig);
return Magicsig::base64_url_encode($sig);
}
public function verify($signed_bytes, $signature)
{
$signature = base64_url_decode($signature);
$signature = Magicsig::base64_url_decode($signature);
return $this->publicKey->verify($signed_bytes, $signature);
}
}
function base64_url_encode($input)
public static function base64_url_encode($input)
{
return strtr(base64_encode($input), '+/', '-_');
}
function base64_url_decode($input)
public static function base64_url_decode($input)
{
return base64_decode(strtr($input, '-_', '+/'));
}
}

View File

@ -83,7 +83,7 @@ class MagicEnvelope
public function signMessage($text, $mimetype, $keypair)
{
$signature_alg = Magicsig::fromString($keypair);
$armored_text = base64_url_encode($text);
$armored_text = Magicsig::base64_url_encode($text);
return array(
'data' => $armored_text,
@ -121,7 +121,7 @@ class MagicEnvelope
public function unfold($env)
{
$dom = new DOMDocument();
$dom->loadXML(base64_url_decode($env['data']));
$dom->loadXML(Magicsig::base64_url_decode($env['data']));
if ($dom->documentElement->tagName != 'entry') {
return false;
@ -178,7 +178,7 @@ class MagicEnvelope
return false;
}
$text = base64_url_decode($env['data']);
$text = Magicsig::base64_url_decode($env['data']);
$signer_uri = $this->getAuthor($text);
try {