]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Prepare for >1024 RSA keys for Salmon signatures
authorMikael Nordfeldth <mmn@hethane.se>
Sun, 2 Mar 2014 10:47:38 +0000 (11:47 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 2 Mar 2014 10:47:38 +0000 (11:47 +0100)
plugins/OStatus/classes/Magicsig.php

index 1ef913792bd983bcf9ad6bae8845904a5432f889..c07a082495578790eea86f080323a3d5fbfffa5b 100644 (file)
@@ -91,13 +91,15 @@ class Magicsig extends Managed_DataObject
     static function getKV($k, $v=null)
     {
         $obj =  parent::getKV($k, $v);
-        if (!empty($obj)) {
+        if ($obj instanceof Magicsig) {
+            // Please note we're replacing the $obj
+            // FIXME: There should be an import-key that modifies the fetched $obj
             $obj = Magicsig::fromString($obj->keypair);
 
-            // Double check keys: Crypt_RSA did not
-            // consistently generate good keypairs.
-            // We've also moved to 1024 bit keys.
-            if (strlen($obj->publicKey->modulus->toBits()) != 1024) {
+            // Never allow less than 1024 bit keys.
+            // The only case these show up in would be imported or
+            // legacy very-old-StatusNet generated keypairs.
+            if (strlen($obj->publicKey->modulus->toBits()) < 1024) {
                 $obj->delete();
                 return false;
             }
@@ -144,11 +146,11 @@ class Magicsig extends Managed_DataObject
      *
      * @param int $user_id id of local user we're creating a key for
      */
-    public function generate($user_id)
+    public function generate($user_id, $bits=1024)
     {
         $rsa = new Crypt_RSA();
 
-        $keypair = $rsa->createKey();
+        $keypair = $rsa->createKey($bits);
 
         $rsa->loadKey($keypair['privatekey']);