• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP openssl_dh_compute_key函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中openssl_dh_compute_key函数的典型用法代码示例。如果您正苦于以下问题:PHP openssl_dh_compute_key函数的具体用法?PHP openssl_dh_compute_key怎么用?PHP openssl_dh_compute_key使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了openssl_dh_compute_key函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: computeDhSecret

 /**
  * Computes the shared secret from the private DH value $dh and the other
  * party's public value in $pub_key
  *
  * @param string $pub_key other party's public value
  * @param mixed $dh Diffie-Hellman key
  * @return string
  * @throws Zend\OpenId\Exception
  */
 public static function computeDhSecret($pub_key, $dh)
 {
     if (function_exists('openssl_dh_compute_key')) {
         $ret = openssl_dh_compute_key($pub_key, $dh);
         if (ord($ret[0]) > 127) {
             $ret = "" . $ret;
         }
         return $ret;
     } else {
         if (extension_loaded('gmp')) {
             $bn_pub_key = self::binToBigNum($pub_key);
             $bn_secret = gmp_powm($bn_pub_key, $dh['priv_key'], $dh['p']);
             return self::bigNumToBin($bn_secret);
         } else {
             if (extension_loaded('bcmath')) {
                 $bn_pub_key = self::binToBigNum($pub_key);
                 $bn_secret = bcpowmod($bn_pub_key, $dh['priv_key'], $dh['p']);
                 return self::bigNumToBin($bn_secret);
             }
         }
     }
     throw new Exception('The system doesn\'t have proper big integer extension', Exception::UNSUPPORTED_LONG_MATH);
 }
开发者ID:alab1001101,项目名称:zf2,代码行数:32,代码来源:OpenID.php


示例2: dhComputeKey

 public static function dhComputeKey($pubKey, PKey $dhKey)
 {
     $return = openssl_dh_compute_key($pubKey, $dhKey->getResource());
     self::handleReturn($return);
     return $return;
 }
开发者ID:seytar,项目名称:psx,代码行数:6,代码来源:OpenSsl.php


示例3: computeSecretKey

 /**
  * Compute the shared secret key based on the public key received from the
  * the second party to this transaction. This should agree to the secret
  * key the second party computes on our own public key.
  * Once in agreement, the key is known to only to both parties.
  * By default, the function expects the public key to be in binary form
  * which is the typical format when being transmitted.
  *
  * If you need the binary form of the shared secret key, call
  * getSharedSecretKey() with the optional parameter for Binary output.
  *
  * @param string $publicKey
  * @param string $type
  * @return mixed
  */
 public function computeSecretKey($publicKey, $type = self::NUMBER, $output = self::NUMBER)
 {
     if ($type == self::BINARY) {
         $publicKey = $this->_math->fromBinary($publicKey);
     }
     if (!preg_match("/^\\d+\$/", $publicKey)) {
         #require_once('Zend/Crypt/DiffieHellman/Exception.php');
         throw new Zend_Crypt_DiffieHellman_Exception('invalid parameter; not a positive natural number');
     }
     if (function_exists('openssl_dh_compute_key') && self::$useOpenssl !== false) {
         $this->_secretKey = openssl_dh_compute_key($publicKey, $this->getPublicKey());
     } else {
         $this->_secretKey = $this->_math->powmod($publicKey, $this->getPrivateKey(), $this->getPrime());
     }
     return $this->getSharedSecretKey($output);
 }
开发者ID:hirentricore,项目名称:devmagento,代码行数:31,代码来源:DiffieHellman.php


示例4: computeSecretKey

 /**
  * Compute the shared secret key based on the public key received from the
  * the second party to this transaction. This should agree to the secret
  * key the second party computes on our own public key.
  * Once in agreement, the key is known to only to both parties.
  * By default, the function expects the public key to be in binary form
  * which is the typical format when being transmitted.
  *
  * If you need the binary form of the shared secret key, call
  * getSharedSecretKey() with the optional parameter for Binary output.
  *
  * @param string $publicKey
  * @param string $publicKeyFormat
  * @param string $secretKeyFormat
  * @return string
  * @throws \Zend\Crypt\Exception\InvalidArgumentException
  * @throws \Zend\Crypt\Exception\RuntimeException
  */
 public function computeSecretKey($publicKey, $publicKeyFormat = self::FORMAT_NUMBER, $secretKeyFormat = self::FORMAT_NUMBER)
 {
     if (function_exists('openssl_dh_compute_key') && static::$useOpenssl !== false) {
         $publicKey = $this->convert($publicKey, $publicKeyFormat, self::FORMAT_BINARY);
         $secretKey = openssl_dh_compute_key($publicKey, $this->opensslKeyResource);
         if (false === $secretKey) {
             throw new Exception\RuntimeException('Can not compute key; openssl ' . openssl_error_string());
         }
         $this->secretKey = $this->convert($secretKey, self::FORMAT_BINARY, self::FORMAT_NUMBER);
     } else {
         $publicKey = $this->convert($publicKey, $publicKeyFormat, self::FORMAT_NUMBER);
         if (!preg_match('/^\\d+$/', $publicKey)) {
             throw new Exception\InvalidArgumentException('Invalid parameter; not a positive natural number');
         }
         $this->secretKey = $this->math->powmod($publicKey, $this->getPrivateKey(), $this->getPrime());
     }
     return $this->getSharedSecretKey($secretKeyFormat);
 }
开发者ID:idwsdta,项目名称:INIT-frame,代码行数:36,代码来源:DiffieHellman.php



注:本文中的openssl_dh_compute_key函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP openssl_digest函数代码示例发布时间:2022-05-15
下一篇:
PHP openssl_decrypt函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap