We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 2f65fa64 authored by James Walker's avatar James Walker

wiring in magicsig

parent e0388cc1
......@@ -34,6 +34,8 @@ class Salmon
return FALSE;
}
$xml = $this->createMagicEnv($xml);
$headers = array('Content-type: application/atom+xml');
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");
$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);
return true;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment