summaryrefslogtreecommitdiff
path: root/plugins/OStatus/classes
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-03-25 13:50:49 -0400
committerEvan Prodromou <evan@status.net>2010-03-25 13:50:49 -0400
commit920acf8d966a11b7c461c333b3a5d3c82d9c8d75 (patch)
tree396dc88352d080b5ac98f7785be18a81b7eb01e2 /plugins/OStatus/classes
parentad608ab9add1615d6aae3fde239e54d1eb36b0ca (diff)
parenta954fd65ba00328cd1a76e620113d2f639340aaf (diff)
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Diffstat (limited to 'plugins/OStatus/classes')
-rw-r--r--plugins/OStatus/classes/Magicsig.php20
1 files changed, 15 insertions, 5 deletions
diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php
index 87c684c93..864fef628 100644
--- a/plugins/OStatus/classes/Magicsig.php
+++ b/plugins/OStatus/classes/Magicsig.php
@@ -27,6 +27,8 @@
* @link http://status.net/
*/
+require_once 'Crypt/RSA.php';
+
class Magicsig extends Memcached_DataObject
{
@@ -50,7 +52,15 @@ class Magicsig extends Memcached_DataObject
{
$obj = parent::staticGet(__CLASS__, $k, $v);
if (!empty($obj)) {
- return Magicsig::fromString($obj->keypair);
+ $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) {
+ $obj->delete();
+ return false;
+ }
}
return $obj;
@@ -100,16 +110,16 @@ class Magicsig extends Memcached_DataObject
public function generate($user_id)
{
- $rsa = new SafeCrypt_RSA();
+ $rsa = new Crypt_RSA();
$keypair = $rsa->createKey();
$rsa->loadKey($keypair['privatekey']);
- $this->privateKey = new SafeCrypt_RSA();
+ $this->privateKey = new Crypt_RSA();
$this->privateKey->loadKey($keypair['privatekey']);
- $this->publicKey = new SafeCrypt_RSA();
+ $this->publicKey = new Crypt_RSA();
$this->publicKey->loadKey($keypair['publickey']);
$this->user_id = $user_id;
@@ -161,7 +171,7 @@ class Magicsig extends Memcached_DataObject
{
common_log(LOG_DEBUG, "Adding ".$type." key: (".$mod .', '. $exp .")");
- $rsa = new SafeCrypt_RSA();
+ $rsa = new Crypt_RSA();
$rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
$rsa->setHash('sha256');
$rsa->modulus = new Math_BigInteger(base64_url_decode($mod), 256);