summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortailor <cygnus@janrain.com>2006-01-13 00:40:59 +0000
committertailor <cygnus@janrain.com>2006-01-13 00:40:59 +0000
commit73f023540cf89d6dd2b52156c6dda37c1313de89 (patch)
tree579b7bede6b552ab3e5ed65a5f2f0babf184d539
parenta499974f40f02e1422cab737191129548552fe53 (diff)
downloadphp-openid-73f023540cf89d6dd2b52156c6dda37c1313de89.zip
php-openid-73f023540cf89d6dd2b52156c6dda37c1313de89.tar.gz
php-openid-73f023540cf89d6dd2b52156c6dda37c1313de89.tar.bz2
[project @ Added some absent functions to DH code]
-rw-r--r--Net/OpenID/DiffieHellman.php21
1 files changed, 21 insertions, 0 deletions
diff --git a/Net/OpenID/DiffieHellman.php b/Net/OpenID/DiffieHellman.php
index e984645..3eab483 100644
--- a/Net/OpenID/DiffieHellman.php
+++ b/Net/OpenID/DiffieHellman.php
@@ -40,6 +40,19 @@ class Net_OpenID_DiffieHellman {
var $private;
var $lib = null;
+ function fromBase64($mod, $gen)
+ {
+ if ($mod !== null) {
+ $mod = Net_OpenID_CryptUtil::base64ToLong($mod);
+ }
+
+ if ($gen !== null) {
+ $gen = Net_OpenID_CryptUtil::base64ToLong($gen);
+ }
+
+ return new Net_OpenID_DiffieHellman($mod, $gen);
+ }
+
function Net_OpenID_DiffieHellman($mod = null, $gen = null,
$private = null)
{
@@ -100,4 +113,12 @@ class Net_OpenID_DiffieHellman {
{
return $this->public;
}
+
+ function xorSecret($composite, $secret)
+ {
+ $dh_shared = $this->getSharedSecret($composite);
+ $sha1_dh_shared = Net_OpenID_CryptUtil::sha1(
+ Net_OpenID_CryptUtil::longToBinary($dh_shared));
+ return Net_OpenID_CryptUtil::strxor($secret, $sha1_dh_shared);
+ }
}