wiring in magicsig
This commit is contained in:
parent
e0388cc1d3
commit
2f65fa646a
@ -34,6 +34,8 @@ class Salmon
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$xml = $this->createMagicEnv($xml);
|
||||||
|
|
||||||
$headers = array('Content-type: application/atom+xml');
|
$headers = array('Content-type: application/atom+xml');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -52,16 +54,25 @@ class Salmon
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createMagicEnv($text, $userid)
|
public function createMagicEnv($text)
|
||||||
{
|
{
|
||||||
|
$magic_env = new MagicEnvelope();
|
||||||
|
|
||||||
|
// TODO: Should probably be getting the signer uri as an argument?
|
||||||
|
$signer_uri = $magic_env->getAuthor($text);
|
||||||
|
|
||||||
|
$env = $magic_env->signMessage($text, 'application/atom+xml', $signer_uri);
|
||||||
|
|
||||||
|
return $magic_env->unfold($env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function verifyMagicEnv($env)
|
public function verifyMagicEnv($dom)
|
||||||
{
|
{
|
||||||
|
$magic_env = new MagicEnvelope();
|
||||||
|
|
||||||
|
$env = $magic_env->fromDom($dom);
|
||||||
|
|
||||||
|
return $magic_env->verify($env);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,8 +54,14 @@ class SalmonAction extends Action
|
|||||||
common_log(LOG_DEBUG, "Got invalid Salmon post: $xml");
|
common_log(LOG_DEBUG, "Got invalid Salmon post: $xml");
|
||||||
$this->clientError(_m('Salmon post must be an Atom entry.'));
|
$this->clientError(_m('Salmon post must be an Atom entry.'));
|
||||||
}
|
}
|
||||||
// XXX: check the signature
|
|
||||||
|
|
||||||
|
// Check the signature
|
||||||
|
$salmon = new Salmon;
|
||||||
|
if (!$salmon->verifyMagicEnv($dom)) {
|
||||||
|
common_log(LOG_DEBUG, "Salmon signature verification failed.");
|
||||||
|
$this->clientError(_m('Salmon signature verification failed.'));
|
||||||
|
}
|
||||||
|
|
||||||
$this->act = new Activity($dom->documentElement);
|
$this->act = new Activity($dom->documentElement);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user