diff options
author | tailor <cygnus@janrain.com> | 2006-01-13 00:40:59 +0000 |
---|---|---|
committer | tailor <cygnus@janrain.com> | 2006-01-13 00:40:59 +0000 |
commit | 73f023540cf89d6dd2b52156c6dda37c1313de89 (patch) | |
tree | 579b7bede6b552ab3e5ed65a5f2f0babf184d539 | |
parent | a499974f40f02e1422cab737191129548552fe53 (diff) | |
download | php-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.php | 21 |
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); + } } |