A bit safer checking in the keypair parsing

This commit is contained in:
James Walker 2010-03-24 14:27:35 -04:00
parent 7b1b6045e6
commit 10410907a0

View File

@ -59,14 +59,23 @@ class MagicEnvelope
} }
if ($xrd->links) { if ($xrd->links) {
if ($link = Discovery::getService($xrd->links, Magicsig::PUBLICKEYREL)) { if ($link = Discovery::getService($xrd->links, Magicsig::PUBLICKEYREL)) {
list($type, $keypair) = explode(',', $link['href']); $keypair = false;
if (empty($keypair)) { $parts = explode(',', $link['href']);
if (count($parts) == 2) {
$keypair = $parts[1];
} else {
// Backwards compatibility check for separator bug in 0.9.0 // Backwards compatibility check for separator bug in 0.9.0
list($type, $keypair) = explode(';', $link['href']); $parts = explode(';', $link['href']);
if (count($parts) == 2) {
$keypair = $parts[1];
} }
}
if ($keypair) {
return $keypair; return $keypair;
} }
} }
}
throw new Exception('Unable to locate signer public key'); throw new Exception('Unable to locate signer public key');
} }