{
const PUBLICKEYREL = 'magic-public-key';
-
+
public $__table = 'magicsig';
public $user_id;
public $keypair;
public $alg;
-
+
private $_rsa;
public function __construct($alg = 'RSA-SHA256')
{
$this->alg = $alg;
}
-
+
public /*static*/ function staticGet($k, $v=null)
{
$obj = parent::staticGet(__CLASS__, $k, $v);
return $obj;
}
+
function table()
{
return array(
64, false));
}
+
function keys()
{
return array_keys($this->keyTypes());
$this->insert();
}
+
public function toString($full_pair = true)
{
$public_key = $this->_rsa->_public_key;
$private_exp = '.' . base64_url_encode($private_key->getExponent());
}
- return 'RSA.' . $mod . '.' . $exp . $private_exp;
+ return 'RSA.' . $mod . '.' . $exp . $private_exp;
}
-
+
public static function fromString($text)
{
PEAR::pushErrorHandling(PEAR_ERROR_RETURN);
$magic_sig = new Magicsig();
-
+
// remove whitespace
$text = preg_replace('/\s+/', '', $text);
if (!preg_match('/RSA\.([^\.]+)\.([^\.]+)(.([^\.]+))?/', $text, $matches)) {
return false;
}
-
+
$mod = base64_url_decode($matches[1]);
$exp = base64_url_decode($matches[2]);
if ($matches[4]) {
}
}
-
+
public function sign($bytes)
{
- $sig = $this->_rsa->createSign($bytes, null, 'magicsig_sha256');
+ $sig = $this->_rsa->createSign($bytes, null, 'sha256');
if ($this->_rsa->isError()) {
$error = $this->_rsa->getLastError();
common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage());
public function verify($signed_bytes, $signature)
{
- $result = $this->_rsa->validateSign($signed_bytes, $signature, null, 'magicsig_sha256');
+ $result = $this->_rsa->validateSign($signed_bytes, $signature, null, 'sha256');
if ($this->_rsa->isError()) {
$error = $this->keypair->getLastError();
common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage());
}
return $result;
}
-
+
}
// Define a sha256 function for hashing
// (Crypt_RSA should really be updated to use hash() )
-function magicsig_sha256($bytes)
+function sha256($bytes)
{
return hash('sha256', $bytes);
}