]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Diaspora public key published in WebFinger
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 6 Nov 2014 20:05:31 +0000 (21:05 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 6 Nov 2014 20:05:31 +0000 (21:05 +0100)
plugins/OStatus/OStatusPlugin.php
plugins/OStatus/classes/Magicsig.php

index a57074036abbb4c6c2eb6a10564e135094a81460..4e2c626244209288049522d16616ecd1e7c8bf38 100644 (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
index 289865a97f692eaad1fc4951e85302304cc9e4bb..be87052ac3e82fe58a6c22d9ae95ceb5c0c7531c 100644 (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.