Diaspora public key published in WebFinger

This commit is contained in:
Mikael Nordfeldth 2014-11-06 21:05:31 +01:00
parent 1076a5e2eb
commit 29ac42addd
2 changed files with 9 additions and 0 deletions

View File

@ -1320,6 +1320,8 @@ class OStatusPlugin extends Plugin
if ($magicsig instanceof Magicsig) {
$xrd->links[] = new XML_XRD_Element_Link(Magicsig::PUBLICKEYREL,
'data:application/magic-public-key,'. $magicsig->toString());
$xrd->links[] = new XML_XRD_Element_Link(Magicsig::DIASPORA_PUBLICKEYREL,
base64_encode($magicsig->exportPublicKey()));
}
// TODO - finalize where the redirect should go on the publisher

View File

@ -36,6 +36,7 @@ require_once 'Crypt/RSA.php';
class Magicsig extends Managed_DataObject
{
const PUBLICKEYREL = 'magic-public-key';
const DIASPORA_PUBLICKEYREL = 'diaspora-public-key';
public $__table = 'magicsig';
@ -184,6 +185,12 @@ class Magicsig extends Managed_DataObject
return 'RSA.' . $mod . '.' . $exp . $private_exp;
}
public function exportPublicKey($format=CRYPT_RSA_PUBLIC_FORMAT_PKCS1)
{
$this->publicKey->setPublicKey();
return $this->publicKey->getPublicKey($format);
}
/**
* importKeys will load the object's keypair string, which initiates
* loadKey() and configures Crypt_RSA objects.