Subversion Repositories oidplus

Rev

Rev 846 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. /**
  4.  * secp160k1
  5.  *
  6.  * PHP version 5 and 7
  7.  *
  8.  * @category  Crypt
  9.  * @package   EC
  10.  * @author    Jim Wigginton <terrafrost@php.net>
  11.  * @copyright 2017 Jim Wigginton
  12.  * @license   http://www.opensource.org/licenses/mit-license.html  MIT License
  13.  * @link      http://pear.php.net/package/Math_BigInteger
  14.  */
  15.  
  16. namespace phpseclib3\Crypt\EC\Curves;
  17.  
  18. use phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime;
  19. use phpseclib3\Math\BigInteger;
  20.  
  21. class secp160k1 extends KoblitzPrime
  22. {
  23.     public function __construct()
  24.     {
  25.         // same as secp160r2
  26.         $this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73', 16));
  27.         $this->setCoefficients(
  28.             new BigInteger('0000000000000000000000000000000000000000', 16),
  29.             new BigInteger('0000000000000000000000000000000000000007', 16)
  30.         );
  31.         $this->setBasePoint(
  32.             new BigInteger('3B4C382CE37AA192A4019E763036F4F5DD4D7EBB', 16),
  33.             new BigInteger('938CF935318FDCED6BC28286531733C3F03C4FEE', 16)
  34.         );
  35.         $this->setOrder(new BigInteger('0100000000000000000001B8FA16DFAB9ACA16B6B3', 16));
  36.  
  37.         $this->basis = [];
  38.         $this->basis[] = [
  39.             'a' => new BigInteger('0096341F1138933BC2F505', -16),
  40.             'b' => new BigInteger('FF6E9D0418C67BB8D5F562', -16)
  41.         ];
  42.         $this->basis[] = [
  43.             'a' => new BigInteger('01BDCB3A09AAAABEAFF4A8', -16),
  44.             'b' => new BigInteger('04D12329FF0EF498EA67', -16)
  45.         ];
  46.         $this->beta = $this->factory->newInteger(new BigInteger('645B7345A143464942CC46D7CF4D5D1E1E6CBB68', -16));
  47.     }
  48. }
  49.