[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/phpseclib/phpseclib/phpseclib/Crypt/DH/ -> PrivateKey.php (source)

   1  <?php
   2  
   3  /**
   4   * DH Private Key
   5   *
   6   * @category  Crypt
   7   * @package   DH
   8   * @author    Jim Wigginton <[email protected]>
   9   * @copyright 2015 Jim Wigginton
  10   * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
  11   * @link      http://phpseclib.sourceforge.net
  12   */
  13  
  14  namespace phpseclib3\Crypt\DH;
  15  
  16  use phpseclib3\Crypt\Common;
  17  use phpseclib3\Crypt\DH;
  18  
  19  /**
  20   * DH Private Key
  21   *
  22   * @package DH
  23   * @author  Jim Wigginton <[email protected]>
  24   * @access  public
  25   */
  26  class PrivateKey extends DH
  27  {
  28      use Common\Traits\PasswordProtected;
  29  
  30      /**
  31       * Private Key
  32       *
  33       * @var \phpseclib3\Math\BigInteger
  34       * @access private
  35       */
  36      protected $privateKey;
  37  
  38      /**
  39       * Public Key
  40       *
  41       * @var \phpseclib3\Math\BigInteger
  42       * @access private
  43       */
  44      protected $publicKey;
  45  
  46      /**
  47       * Returns the public key
  48       *
  49       * @access public
  50       * @return DH\PublicKey
  51       */
  52      public function getPublicKey()
  53      {
  54          $type = self::validatePlugin('Keys', 'PKCS8', 'savePublicKey');
  55  
  56          if (!isset($this->publicKey)) {
  57              $this->publicKey = $this->base->powMod($this->privateKey, $this->prime);
  58          }
  59  
  60          $key = $type::savePublicKey($this->prime, $this->base, $this->publicKey);
  61  
  62          return DH::loadFormat('PKCS8', $key);
  63      }
  64  
  65      /**
  66       * Returns the private key
  67       *
  68       * @param string $type
  69       * @param array $options optional
  70       * @return string
  71       */
  72      public function toString($type, array $options = [])
  73      {
  74          $type = self::validatePlugin('Keys', $type, 'savePrivateKey');
  75  
  76          if (!isset($this->publicKey)) {
  77              $this->publicKey = $this->base->powMod($this->privateKey, $this->prime);
  78          }
  79  
  80          return $type::savePrivateKey($this->prime, $this->base, $this->privateKey, $this->publicKey, $this->password, $options);
  81      }
  82  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer