]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
moving magicsig.php to classes - to add storage
authorJames Walker <walkah@walkah.net>
Tue, 23 Feb 2010 01:56:11 +0000 (20:56 -0500)
committerJames Walker <walkah@walkah.net>
Tue, 23 Feb 2010 04:30:31 +0000 (23:30 -0500)
plugins/OStatus/classes/Magicsig.php [new file with mode: 0644]
plugins/OStatus/lib/magicsig.php [deleted file]

diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php
new file mode 100644 (file)
index 0000000..9d9d327
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2010, StatusNet, Inc.
+ *
+ * A sample module to show best practices for StatusNet plugins
+ *
+ * PHP version 5
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @package   StatusNet
+ * @author    James Walker <james@status.net>
+ * @copyright 2010 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+
+require_once 'Crypt/RSA.php';
+
+class Magicsig
+{
+
+    public $keypair;
+    
+    public function __construct($init = null)
+    {
+        if (is_null($init)) {
+            $this->generate();
+        } else {
+            $this->fromString($init);
+        }
+    }
+
+
+    public function generate($key_length = 512)
+    {
+        $keypair = new Crypt_RSA_KeyPair($key_length);
+        $params['public_key'] = $keypair->getPublicKey();
+        $params['private_key'] = $keypair->getPrivateKey();
+
+        PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
+        $this->keypair = new Crypt_RSA($params);
+        PEAR::popErrorHandling();
+    }
+
+
+    public function toString($full_pair = true)
+    {
+        $public_key = $this->keypair->_public_key;
+        $private_key = $this->keypair->_private_key;
+
+        $mod = base64_url_encode($public_key->getModulus());
+        $exp = base64_url_encode($public_key->getExponent());
+        $private_exp = '';
+        if ($full_pair && $private_key->getExponent()) {
+            $private_exp = '.' . base64_url_encode($private_key->getExponent());
+        }
+
+        return 'RSA.' . $mod . '.' . $exp . $private_exp; 
+    }
+    
+    public function fromString($text)
+    {
+        PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
+
+        // remove whitespace
+        $text = preg_replace('/\s+/', '', $text);
+
+        // parse components
+        if (!preg_match('/RSA\.([^\.]+)\.([^\.]+)(.([^\.]+))?/', $text, $matches)) {
+            return false;
+        }
+        
+        $mod = base64_url_decode($matches[1]);
+        $exp = base64_url_decode($matches[2]);
+        if ($matches[4]) {
+            $private_exp = base64_url_decode($matches[4]);
+        }
+
+        $params['public_key'] = new Crypt_RSA_KEY($mod, $exp, 'public');
+        if ($params['public_key']->isError()) {
+            $error = $params['public_key']->getLastError();
+            print $error->getMessage();
+            exit;
+        }
+        if ($private_exp) {
+            $params['private_key'] = new Crypt_RSA_KEY($mod, $private_exp, 'private');
+            if ($params['private_key']->isError()) {
+                $error = $params['private_key']->getLastError();
+                print $error->getMessage();
+                exit;
+            }
+        }
+
+        $this->keypair = new Crypt_RSA($params);
+        PEAR::popErrorHandling();
+    }
+
+    public function getName()
+    {
+        return 'RSA-SHA256';
+    }
+
+    public function sign($bytes)
+    {
+        $sig = $this->keypair->createSign($bytes, null, 'sha256');
+        if ($this->keypair->isError()) {
+            $error = $this->keypair->getLastError();
+            common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage());
+        }
+
+        return $sig;
+    }
+
+    public function verify($signed_bytes, $signature)
+    {
+        $result =  $this->keypair->validateSign($signed_bytes, $signature, null, 'sha256');
+        if ($this->keypair->isError()) {
+            $error = $this->keypair->getLastError();
+            //common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage());
+            print $error->getMessage();
+        }
+        return $result;
+    }
+        
+}
+
+// Define a sha256 function for hashing
+// (Crypt_RSA should really be updated to use hash() )
+function sha256($bytes)
+{
+    return hash('sha256', $bytes);
+}
+
+function base64_url_encode($input)
+{
+    return strtr(base64_encode($input), '+/', '-_');
+}
+
+function base64_url_decode($input)
+{
+    return base64_decode(strtr($input, '-_', '+/'));
+}
\ No newline at end of file
diff --git a/plugins/OStatus/lib/magicsig.php b/plugins/OStatus/lib/magicsig.php
deleted file mode 100644 (file)
index 50eb301..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2010, StatusNet, Inc.
- *
- * A sample module to show best practices for StatusNet plugins
- *
- * PHP version 5
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package   StatusNet
- * @author    James Walker <james@status.net>
- * @copyright 2010 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-
-require_once 'Crypt/RSA.php';
-
-interface Magicsig
-{
-
-    public function sign($bytes);
-
-    public function verify($signed, $signature_b64);
-}
-
-class MagicsigRsaSha256
-{
-
-    public $keypair;
-    
-    public function __construct($init = null)
-    {
-        if (is_null($init)) {
-            $this->generate();
-        } else {
-            $this->fromString($init);
-        }
-    }
-
-
-    public function generate($key_length = 512)
-    {
-        $keypair = new Crypt_RSA_KeyPair($key_length);
-        $params['public_key'] = $keypair->getPublicKey();
-        $params['private_key'] = $keypair->getPrivateKey();
-
-        PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
-        $this->keypair = new Crypt_RSA($params);
-        PEAR::popErrorHandling();
-    }
-
-
-    public function toString($full_pair = true)
-    {
-        $public_key = $this->keypair->_public_key;
-        $private_key = $this->keypair->_private_key;
-
-        $mod = base64_url_encode($public_key->getModulus());
-        $exp = base64_url_encode($public_key->getExponent());
-        $private_exp = '';
-        if ($full_pair && $private_key->getExponent()) {
-            $private_exp = '.' . base64_url_encode($private_key->getExponent());
-        }
-
-        return 'RSA.' . $mod . '.' . $exp . $private_exp; 
-    }
-    
-    public function fromString($text)
-    {
-        PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
-
-        // remove whitespace
-        $text = preg_replace('/\s+/', '', $text);
-
-        // parse components
-        if (!preg_match('/RSA\.([^\.]+)\.([^\.]+)(.([^\.]+))?/', $text, $matches)) {
-            return false;
-        }
-        
-        $mod = base64_url_decode($matches[1]);
-        $exp = base64_url_decode($matches[2]);
-        if ($matches[4]) {
-            $private_exp = base64_url_decode($matches[4]);
-        }
-
-        $params['public_key'] = new Crypt_RSA_KEY($mod, $exp, 'public');
-        if ($params['public_key']->isError()) {
-            $error = $params['public_key']->getLastError();
-            print $error->getMessage();
-            exit;
-        }
-        if ($private_exp) {
-            $params['private_key'] = new Crypt_RSA_KEY($mod, $private_exp, 'private');
-            if ($params['private_key']->isError()) {
-                $error = $params['private_key']->getLastError();
-                print $error->getMessage();
-                exit;
-            }
-        }
-
-        $this->keypair = new Crypt_RSA($params);
-        PEAR::popErrorHandling();
-    }
-
-    public function getName()
-    {
-        return 'RSA-SHA256';
-    }
-
-    public function sign($bytes)
-    {
-        $sig = $this->keypair->createSign($bytes, null, 'sha256');
-        if ($this->keypair->isError()) {
-            $error = $this->keypair->getLastError();
-            common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage());
-        }
-
-        return $sig;
-    }
-
-    public function verify($signed_bytes, $signature)
-    {
-        $result =  $this->keypair->validateSign($signed_bytes, $signature, null, 'sha256');
-        if ($this->keypair->isError()) {
-            $error = $this->keypair->getLastError();
-            //common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage());
-            print $error->getMessage();
-        }
-        return $result;
-    }
-        
-}
-
-// Define a sha256 function for hashing
-// (Crypt_RSA should really be updated to use hash() )
-function sha256($bytes)
-{
-    return hash('sha256', $bytes);
-}
-
-function base64_url_encode($input)
-{
-    return strtr(base64_encode($input), '+/', '-_');
-}
-
-function base64_url_decode($input)
-{
-    return base64_decode(strtr($input, '-_', '+/'));
-}
\ No newline at end of file