Viel neues
This commit is contained in:
80
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Curve25519.php
Normal file
80
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Curve25519.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Curve25519
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2019 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Montgomery;
|
||||
use phpseclib3\Exception\RangeException;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class Curve25519 extends Montgomery
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// 2^255 - 19
|
||||
$this->setModulo(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED', 16));
|
||||
$this->a24 = $this->factory->newInteger(new BigInteger('121666'));
|
||||
$this->p = [$this->factory->newInteger(new BigInteger(9))];
|
||||
// 2^252 + 0x14def9dea2f79cd65812631a5cf5d3ed
|
||||
$this->setOrder(new BigInteger('1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED', 16));
|
||||
|
||||
/*
|
||||
$this->setCoefficients(
|
||||
new BigInteger('486662'), // a
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(9),
|
||||
new BigInteger('14781619447589544791020593568409986887264606134616475288964881837755586237401')
|
||||
);
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiply a point on the curve by a scalar
|
||||
*
|
||||
* Modifies the scalar as described at https://tools.ietf.org/html/rfc7748#page-8
|
||||
*/
|
||||
public function multiplyPoint(array $p, BigInteger $d): array
|
||||
{
|
||||
//$r = strrev(sodium_crypto_scalarmult($d->toBytes(), strrev($p[0]->toBytes())));
|
||||
//return [$this->factory->newInteger(new BigInteger($r, 256))];
|
||||
|
||||
$d = $d->toBytes();
|
||||
$d &= "\xF8" . str_repeat("\xFF", 30) . "\x7F";
|
||||
$d = strrev($d);
|
||||
$d |= "\x40";
|
||||
$d = new BigInteger($d, -256);
|
||||
|
||||
return parent::multiplyPoint($p, $d);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a random scalar multiplier
|
||||
*/
|
||||
public function createRandomMultiplier(): BigInteger
|
||||
{
|
||||
return BigInteger::random(256);
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs range check
|
||||
*/
|
||||
public function rangeCheck(BigInteger $x): void
|
||||
{
|
||||
if ($x->getLength() > 256 || $x->isNegative()) {
|
||||
throw new RangeException('x must be a positive integer less than 256 bytes in length');
|
||||
}
|
||||
}
|
||||
}
|
||||
91
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Curve448.php
Normal file
91
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Curve448.php
Normal file
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Curve448
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2019 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Montgomery;
|
||||
use phpseclib3\Exception\RangeException;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class Curve448 extends Montgomery
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// 2^448 - 2^224 - 1
|
||||
$this->setModulo(new BigInteger(
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE' .
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF',
|
||||
16
|
||||
));
|
||||
$this->a24 = $this->factory->newInteger(new BigInteger('39081'));
|
||||
$this->p = [$this->factory->newInteger(new BigInteger(5))];
|
||||
// 2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d
|
||||
$this->setOrder(new BigInteger(
|
||||
'3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'7CCA23E9C44EDB49AED63690216CC2728DC58F552378C292AB5844F3',
|
||||
16
|
||||
));
|
||||
|
||||
/*
|
||||
$this->setCoefficients(
|
||||
new BigInteger('156326'), // a
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(5),
|
||||
new BigInteger(
|
||||
'355293926785568175264127502063783334808976399387714271831880898' .
|
||||
'435169088786967410002932673765864550910142774147268105838985595290' .
|
||||
'606362')
|
||||
);
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiply a point on the curve by a scalar
|
||||
*
|
||||
* Modifies the scalar as described at https://tools.ietf.org/html/rfc7748#page-8
|
||||
*/
|
||||
public function multiplyPoint(array $p, BigInteger $d): array
|
||||
{
|
||||
//$r = strrev(sodium_crypto_scalarmult($d->toBytes(), strrev($p[0]->toBytes())));
|
||||
//return [$this->factory->newInteger(new BigInteger($r, 256))];
|
||||
|
||||
$d = $d->toBytes();
|
||||
$d[0] = $d[0] & "\xFC";
|
||||
$d = strrev($d);
|
||||
$d |= "\x80";
|
||||
$d = new BigInteger($d, 256);
|
||||
|
||||
return parent::multiplyPoint($p, $d);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a random scalar multiplier
|
||||
*/
|
||||
public function createRandomMultiplier(): BigInteger
|
||||
{
|
||||
return BigInteger::random(446);
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs range check
|
||||
*/
|
||||
public function rangeCheck(BigInteger $x): void
|
||||
{
|
||||
if ($x->getLength() > 448 || $x->isNegative()) {
|
||||
throw new RangeException('x must be a positive integer less than 446 bytes in length');
|
||||
}
|
||||
}
|
||||
}
|
||||
330
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Ed25519.php
Normal file
330
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Ed25519.php
Normal file
@@ -0,0 +1,330 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Ed25519
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards;
|
||||
use phpseclib3\Crypt\Hash;
|
||||
use phpseclib3\Crypt\Random;
|
||||
use phpseclib3\Exception\LengthException;
|
||||
use phpseclib3\Exception\RuntimeException;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class Ed25519 extends TwistedEdwards
|
||||
{
|
||||
public const HASH = 'sha512';
|
||||
/*
|
||||
Per https://tools.ietf.org/html/rfc8032#page-6 EdDSA has several parameters, one of which is b:
|
||||
|
||||
2. An integer b with 2^(b-1) > p. EdDSA public keys have exactly b
|
||||
bits, and EdDSA signatures have exactly 2*b bits. b is
|
||||
recommended to be a multiple of 8, so public key and signature
|
||||
lengths are an integral number of octets.
|
||||
|
||||
SIZE corresponds to b
|
||||
*/
|
||||
public const SIZE = 32;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// 2^255 - 19
|
||||
$this->setModulo(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED', 16));
|
||||
$this->setCoefficients(
|
||||
// -1
|
||||
new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC', 16), // a
|
||||
// -121665/121666
|
||||
new BigInteger('52036CEE2B6FFE738CC740797779E89800700A4D4141D8AB75EB4DCA135978A3', 16) // d
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A', 16),
|
||||
new BigInteger('6666666666666666666666666666666666666666666666666666666666666658', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED', 16));
|
||||
// algorithm 14.47 from http://cacr.uwaterloo.ca/hac/about/chap14.pdf#page=16
|
||||
/*
|
||||
$this->setReduction(function($x) {
|
||||
$parts = $x->bitwise_split(255);
|
||||
$className = $this->className;
|
||||
|
||||
if (count($parts) > 2) {
|
||||
list(, $r) = $x->divide($className::$modulo);
|
||||
return $r;
|
||||
}
|
||||
|
||||
$zero = new BigInteger();
|
||||
$c = new BigInteger(19);
|
||||
|
||||
switch (count($parts)) {
|
||||
case 2:
|
||||
list($qi, $ri) = $parts;
|
||||
break;
|
||||
case 1:
|
||||
$qi = $zero;
|
||||
list($ri) = $parts;
|
||||
break;
|
||||
case 0:
|
||||
return $zero;
|
||||
}
|
||||
$r = $ri;
|
||||
|
||||
while ($qi->compare($zero) > 0) {
|
||||
$temp = $qi->multiply($c)->bitwise_split(255);
|
||||
if (count($temp) == 2) {
|
||||
list($qi, $ri) = $temp;
|
||||
} else {
|
||||
$qi = $zero;
|
||||
list($ri) = $temp;
|
||||
}
|
||||
$r = $r->add($ri);
|
||||
}
|
||||
|
||||
while ($r->compare($className::$modulo) > 0) {
|
||||
$r = $r->subtract($className::$modulo);
|
||||
}
|
||||
return $r;
|
||||
});
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* Recover X from Y
|
||||
*
|
||||
* Implements steps 2-4 at https://tools.ietf.org/html/rfc8032#section-5.1.3
|
||||
*
|
||||
* Used by EC\Keys\Common.php
|
||||
*
|
||||
* @param boolean $sign
|
||||
* @return object[]
|
||||
*/
|
||||
public function recoverX(BigInteger $y, bool $sign): array
|
||||
{
|
||||
$y = $this->factory->newInteger($y);
|
||||
|
||||
$y2 = $y->multiply($y);
|
||||
$u = $y2->subtract($this->one);
|
||||
$v = $this->d->multiply($y2)->add($this->one);
|
||||
$x2 = $u->divide($v);
|
||||
if ($x2->equals($this->zero)) {
|
||||
if ($sign) {
|
||||
throw new RuntimeException('Unable to recover X coordinate (x2 = 0)');
|
||||
}
|
||||
return clone $this->zero;
|
||||
}
|
||||
// find the square root
|
||||
/* we don't do $x2->squareRoot() because, quoting from
|
||||
https://tools.ietf.org/html/rfc8032#section-5.1.1:
|
||||
|
||||
"For point decoding or "decompression", square roots modulo p are
|
||||
needed. They can be computed using the Tonelli-Shanks algorithm or
|
||||
the special case for p = 5 (mod 8). To find a square root of a,
|
||||
first compute the candidate root x = a^((p+3)/8) (mod p)."
|
||||
*/
|
||||
$exp = $this->getModulo()->add(new BigInteger(3));
|
||||
$exp = $exp->bitwise_rightShift(3);
|
||||
$x = $x2->pow($exp);
|
||||
|
||||
// If v x^2 = -u (mod p), set x <-- x * 2^((p-1)/4), which is a square root.
|
||||
if (!$x->multiply($x)->subtract($x2)->equals($this->zero)) {
|
||||
$temp = $this->getModulo()->subtract(new BigInteger(1));
|
||||
$temp = $temp->bitwise_rightShift(2);
|
||||
$temp = $this->two->pow($temp);
|
||||
$x = $x->multiply($temp);
|
||||
if (!$x->multiply($x)->subtract($x2)->equals($this->zero)) {
|
||||
throw new RuntimeException('Unable to recover X coordinate');
|
||||
}
|
||||
}
|
||||
if ($x->isOdd() != $sign) {
|
||||
$x = $x->negate();
|
||||
}
|
||||
|
||||
return [$x, $y];
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Secret Scalar
|
||||
*
|
||||
* Implements steps 1-3 at https://tools.ietf.org/html/rfc8032#section-5.1.5
|
||||
*
|
||||
* Used by the various key handlers
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function extractSecret(string $str)
|
||||
{
|
||||
if (strlen($str) != 32) {
|
||||
throw new LengthException('Private Key should be 32-bytes long');
|
||||
}
|
||||
// 1. Hash the 32-byte private key using SHA-512, storing the digest in
|
||||
// a 64-octet large buffer, denoted h. Only the lower 32 bytes are
|
||||
// used for generating the public key.
|
||||
$hash = new Hash('sha512');
|
||||
$h = $hash->hash($str);
|
||||
$h = substr($h, 0, 32);
|
||||
// 2. Prune the buffer: The lowest three bits of the first octet are
|
||||
// cleared, the highest bit of the last octet is cleared, and the
|
||||
// second highest bit of the last octet is set.
|
||||
$h[0] = $h[0] & chr(0xF8);
|
||||
$h = strrev($h);
|
||||
$h[0] = ($h[0] & chr(0x3F)) | chr(0x40);
|
||||
// 3. Interpret the buffer as the little-endian integer, forming a
|
||||
// secret scalar s.
|
||||
$dA = new BigInteger($h, 256);
|
||||
|
||||
return [
|
||||
'dA' => $dA,
|
||||
'secret' => $str,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Encode a point as a string
|
||||
*/
|
||||
public function encodePoint(array $point): string
|
||||
{
|
||||
[$x, $y] = $point;
|
||||
$y = $y->toBytes();
|
||||
$y[0] = $y[0] & chr(0x7F);
|
||||
if ($x->isOdd()) {
|
||||
$y[0] = $y[0] | chr(0x80);
|
||||
}
|
||||
$y = strrev($y);
|
||||
|
||||
return $y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a random scalar multiplier
|
||||
*/
|
||||
public function createRandomMultiplier(): BigInteger
|
||||
{
|
||||
return $this->extractSecret(Random::string(32))['dA'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an affine point to an extended homogeneous coordinate
|
||||
*
|
||||
* From https://tools.ietf.org/html/rfc8032#section-5.1.4 :
|
||||
*
|
||||
* A point (x,y) is represented in extended homogeneous coordinates (X, Y, Z, T),
|
||||
* with x = X/Z, y = Y/Z, x * y = T/Z.
|
||||
*
|
||||
* @return Integer[]
|
||||
*/
|
||||
public function convertToInternal(array $p): array
|
||||
{
|
||||
if (empty($p)) {
|
||||
return [clone $this->zero, clone $this->one, clone $this->one, clone $this->zero];
|
||||
}
|
||||
|
||||
if (isset($p[2])) {
|
||||
return $p;
|
||||
}
|
||||
|
||||
$p[2] = clone $this->one;
|
||||
$p[3] = $p[0]->multiply($p[1]);
|
||||
|
||||
return $p;
|
||||
}
|
||||
|
||||
/**
|
||||
* Doubles a point on a curve
|
||||
*
|
||||
* @return FiniteField[]
|
||||
*/
|
||||
public function doublePoint(array $p): array
|
||||
{
|
||||
if (!isset($this->factory)) {
|
||||
throw new RuntimeException('setModulo needs to be called before this method');
|
||||
}
|
||||
|
||||
if (!count($p)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (!isset($p[2])) {
|
||||
throw new RuntimeException('Affine coordinates need to be manually converted to "Jacobi" coordinates or vice versa');
|
||||
}
|
||||
|
||||
// from https://tools.ietf.org/html/rfc8032#page-12
|
||||
|
||||
[$x1, $y1, $z1, $t1] = $p;
|
||||
|
||||
$a = $x1->multiply($x1);
|
||||
$b = $y1->multiply($y1);
|
||||
$c = $this->two->multiply($z1)->multiply($z1);
|
||||
$h = $a->add($b);
|
||||
$temp = $x1->add($y1);
|
||||
$e = $h->subtract($temp->multiply($temp));
|
||||
$g = $a->subtract($b);
|
||||
$f = $c->add($g);
|
||||
|
||||
$x3 = $e->multiply($f);
|
||||
$y3 = $g->multiply($h);
|
||||
$t3 = $e->multiply($h);
|
||||
$z3 = $f->multiply($g);
|
||||
|
||||
return [$x3, $y3, $z3, $t3];
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds two points on the curve
|
||||
*
|
||||
* @return FiniteField[]
|
||||
*/
|
||||
public function addPoint(array $p, array $q): array
|
||||
{
|
||||
if (!isset($this->factory)) {
|
||||
throw new RuntimeException('setModulo needs to be called before this method');
|
||||
}
|
||||
|
||||
if (!count($p) || !count($q)) {
|
||||
if (count($q)) {
|
||||
return $q;
|
||||
}
|
||||
if (count($p)) {
|
||||
return $p;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
if (!isset($p[2]) || !isset($q[2])) {
|
||||
throw new RuntimeException('Affine coordinates need to be manually converted to "Jacobi" coordinates or vice versa');
|
||||
}
|
||||
|
||||
if ($p[0]->equals($q[0])) {
|
||||
return !$p[1]->equals($q[1]) ? [] : $this->doublePoint($p);
|
||||
}
|
||||
|
||||
// from https://tools.ietf.org/html/rfc8032#page-12
|
||||
|
||||
[$x1, $y1, $z1, $t1] = $p;
|
||||
[$x2, $y2, $z2, $t2] = $q;
|
||||
|
||||
$a = $y1->subtract($x1)->multiply($y2->subtract($x2));
|
||||
$b = $y1->add($x1)->multiply($y2->add($x2));
|
||||
$c = $t1->multiply($this->two)->multiply($this->d)->multiply($t2);
|
||||
$d = $z1->multiply($this->two)->multiply($z2);
|
||||
$e = $b->subtract($a);
|
||||
$f = $d->subtract($c);
|
||||
$g = $d->add($c);
|
||||
$h = $b->add($a);
|
||||
|
||||
$x3 = $e->multiply($f);
|
||||
$y3 = $g->multiply($h);
|
||||
$t3 = $e->multiply($h);
|
||||
$z3 = $f->multiply($g);
|
||||
|
||||
return [$x3, $y3, $z3, $t3];
|
||||
}
|
||||
}
|
||||
268
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Ed448.php
Normal file
268
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/Ed448.php
Normal file
@@ -0,0 +1,268 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Ed448
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards;
|
||||
use phpseclib3\Crypt\Hash;
|
||||
use phpseclib3\Crypt\Random;
|
||||
use phpseclib3\Exception\LengthException;
|
||||
use phpseclib3\Exception\RuntimeException;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
use phpseclib3\Math\PrimeField\Integer;
|
||||
|
||||
class Ed448 extends TwistedEdwards
|
||||
{
|
||||
public const HASH = 'shake256-912';
|
||||
public const SIZE = 57;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// 2^448 - 2^224 - 1
|
||||
$this->setModulo(new BigInteger(
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE' .
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF',
|
||||
16
|
||||
));
|
||||
$this->setCoefficients(
|
||||
new BigInteger(1),
|
||||
// -39081
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE' .
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6756', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('4F1970C66BED0DED221D15A622BF36DA9E146570470F1767EA6DE324' .
|
||||
'A3D3A46412AE1AF72AB66511433B80E18B00938E2626A82BC70CC05E', 16),
|
||||
new BigInteger('693F46716EB6BC248876203756C9C7624BEA73736CA3984087789C1E' .
|
||||
'05A0C2D73AD3FF1CE67C39C4FDBD132C4ED7C8AD9808795BF230FA14', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'7CCA23E9C44EDB49AED63690216CC2728DC58F552378C292AB5844F3',
|
||||
16
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Recover X from Y
|
||||
*
|
||||
* Implements steps 2-4 at https://tools.ietf.org/html/rfc8032#section-5.2.3
|
||||
*
|
||||
* Used by EC\Keys\Common.php
|
||||
*
|
||||
* @param boolean $sign
|
||||
* @return object[]
|
||||
*/
|
||||
public function recoverX(BigInteger $y, bool $sign): array
|
||||
{
|
||||
$y = $this->factory->newInteger($y);
|
||||
|
||||
$y2 = $y->multiply($y);
|
||||
$u = $y2->subtract($this->one);
|
||||
$v = $this->d->multiply($y2)->subtract($this->one);
|
||||
$x2 = $u->divide($v);
|
||||
if ($x2->equals($this->zero)) {
|
||||
if ($sign) {
|
||||
throw new RuntimeException('Unable to recover X coordinate (x2 = 0)');
|
||||
}
|
||||
return clone $this->zero;
|
||||
}
|
||||
// find the square root
|
||||
$exp = $this->getModulo()->add(new BigInteger(1));
|
||||
$exp = $exp->bitwise_rightShift(2);
|
||||
$x = $x2->pow($exp);
|
||||
|
||||
if (!$x->multiply($x)->subtract($x2)->equals($this->zero)) {
|
||||
throw new RuntimeException('Unable to recover X coordinate');
|
||||
}
|
||||
if ($x->isOdd() != $sign) {
|
||||
$x = $x->negate();
|
||||
}
|
||||
|
||||
return [$x, $y];
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Secret Scalar
|
||||
*
|
||||
* Implements steps 1-3 at https://tools.ietf.org/html/rfc8032#section-5.2.5
|
||||
*
|
||||
* Used by the various key handlers
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function extractSecret(string $str)
|
||||
{
|
||||
if (strlen($str) != 57) {
|
||||
throw new LengthException('Private Key should be 57-bytes long');
|
||||
}
|
||||
// 1. Hash the 57-byte private key using SHAKE256(x, 114), storing the
|
||||
// digest in a 114-octet large buffer, denoted h. Only the lower 57
|
||||
// bytes are used for generating the public key.
|
||||
$hash = new Hash('shake256-912');
|
||||
$h = $hash->hash($str);
|
||||
$h = substr($h, 0, 57);
|
||||
// 2. Prune the buffer: The two least significant bits of the first
|
||||
// octet are cleared, all eight bits the last octet are cleared, and
|
||||
// the highest bit of the second to last octet is set.
|
||||
$h[0] = $h[0] & chr(0xFC);
|
||||
$h = strrev($h);
|
||||
$h[0] = "\0";
|
||||
$h[1] = $h[1] | chr(0x80);
|
||||
// 3. Interpret the buffer as the little-endian integer, forming a
|
||||
// secret scalar s.
|
||||
$dA = new BigInteger($h, 256);
|
||||
|
||||
return [
|
||||
'dA' => $dA,
|
||||
'secret' => $str,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Encode a point as a string
|
||||
*/
|
||||
public function encodePoint(array $point): string
|
||||
{
|
||||
[$x, $y] = $point;
|
||||
$y = "\0" . $y->toBytes();
|
||||
if ($x->isOdd()) {
|
||||
$y[0] = $y[0] | chr(0x80);
|
||||
}
|
||||
$y = strrev($y);
|
||||
|
||||
return $y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a random scalar multiplier
|
||||
*/
|
||||
public function createRandomMultiplier(): BigInteger
|
||||
{
|
||||
return $this->extractSecret(Random::string(57))['dA'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an affine point to an extended homogeneous coordinate
|
||||
*
|
||||
* From https://tools.ietf.org/html/rfc8032#section-5.2.4 :
|
||||
*
|
||||
* A point (x,y) is represented in extended homogeneous coordinates (X, Y, Z, T),
|
||||
* with x = X/Z, y = Y/Z, x * y = T/Z.
|
||||
*
|
||||
* @return Integer[]
|
||||
*/
|
||||
public function convertToInternal(array $p): array
|
||||
{
|
||||
if (empty($p)) {
|
||||
return [clone $this->zero, clone $this->one, clone $this->one];
|
||||
}
|
||||
|
||||
if (isset($p[2])) {
|
||||
return $p;
|
||||
}
|
||||
|
||||
$p[2] = clone $this->one;
|
||||
|
||||
return $p;
|
||||
}
|
||||
|
||||
/**
|
||||
* Doubles a point on a curve
|
||||
*
|
||||
* @return FiniteField[]
|
||||
*/
|
||||
public function doublePoint(array $p): array
|
||||
{
|
||||
if (!isset($this->factory)) {
|
||||
throw new RuntimeException('setModulo needs to be called before this method');
|
||||
}
|
||||
|
||||
if (!count($p)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (!isset($p[2])) {
|
||||
throw new RuntimeException('Affine coordinates need to be manually converted to "Jacobi" coordinates or vice versa');
|
||||
}
|
||||
|
||||
// from https://tools.ietf.org/html/rfc8032#page-18
|
||||
|
||||
[$x1, $y1, $z1] = $p;
|
||||
|
||||
$b = $x1->add($y1);
|
||||
$b = $b->multiply($b);
|
||||
$c = $x1->multiply($x1);
|
||||
$d = $y1->multiply($y1);
|
||||
$e = $c->add($d);
|
||||
$h = $z1->multiply($z1);
|
||||
$j = $e->subtract($this->two->multiply($h));
|
||||
|
||||
$x3 = $b->subtract($e)->multiply($j);
|
||||
$y3 = $c->subtract($d)->multiply($e);
|
||||
$z3 = $e->multiply($j);
|
||||
|
||||
return [$x3, $y3, $z3];
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds two points on the curve
|
||||
*
|
||||
* @return FiniteField[]
|
||||
*/
|
||||
public function addPoint(array $p, array $q): array
|
||||
{
|
||||
if (!isset($this->factory)) {
|
||||
throw new RuntimeException('setModulo needs to be called before this method');
|
||||
}
|
||||
|
||||
if (!count($p) || !count($q)) {
|
||||
if (count($q)) {
|
||||
return $q;
|
||||
}
|
||||
if (count($p)) {
|
||||
return $p;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
if (!isset($p[2]) || !isset($q[2])) {
|
||||
throw new RuntimeException('Affine coordinates need to be manually converted to "Jacobi" coordinates or vice versa');
|
||||
}
|
||||
|
||||
if ($p[0]->equals($q[0])) {
|
||||
return !$p[1]->equals($q[1]) ? [] : $this->doublePoint($p);
|
||||
}
|
||||
|
||||
// from https://tools.ietf.org/html/rfc8032#page-17
|
||||
|
||||
[$x1, $y1, $z1] = $p;
|
||||
[$x2, $y2, $z2] = $q;
|
||||
|
||||
$a = $z1->multiply($z2);
|
||||
$b = $a->multiply($a);
|
||||
$c = $x1->multiply($x2);
|
||||
$d = $y1->multiply($y2);
|
||||
$e = $this->d->multiply($c)->multiply($d);
|
||||
$f = $b->subtract($e);
|
||||
$g = $b->add($e);
|
||||
$h = $x1->add($y1)->multiply($x2->add($y2));
|
||||
|
||||
$x3 = $a->multiply($f)->multiply($h->subtract($c)->subtract($d));
|
||||
$y3 = $a->multiply($g)->multiply($d->subtract($c));
|
||||
$z3 = $f->multiply($g);
|
||||
|
||||
return [$x3, $y3, $z3];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP160r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP160r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('E95E4A5F737059DC60DFC7AD95B3D8139515620F', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('340E7BE2A280EB74E2BE61BADA745D97E8F7C300', 16),
|
||||
new BigInteger('1E589A8595423412134FAA2DBDEC95C8D8675E58', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('BED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3', 16),
|
||||
new BigInteger('1667CB477A1A8EC338F94741669C976316DA6321', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('E95E4A5F737059DC60DF5991D45029409E60FC09', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP160t1
|
||||
*
|
||||
* This curve is a twisted version of brainpoolP160r1 with A = -3. With brainpool,
|
||||
* the curves ending in r1 are the "regular" curves and the curves ending in "t1"
|
||||
* are the twisted version of the r1 curves. Per https://tools.ietf.org/html/rfc5639#page-7
|
||||
* you can convert a point on an r1 curve to a point on a t1 curve thusly:
|
||||
*
|
||||
* F(x,y) := (x*Z^2, y*Z^3)
|
||||
*
|
||||
* The advantage of A = -3 is that some of the point doubling and point addition can be
|
||||
* slightly optimized. See http://hyperelliptic.org/EFD/g1p/auto-shortw-projective-3.html
|
||||
* vs http://hyperelliptic.org/EFD/g1p/auto-shortw-projective.html for example.
|
||||
*
|
||||
* phpseclib does not currently take advantage of this optimization opportunity
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP160t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('E95E4A5F737059DC60DFC7AD95B3D8139515620F', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('E95E4A5F737059DC60DFC7AD95B3D8139515620C', 16), // eg. -3
|
||||
new BigInteger('7A556B6DAE535B7B51ED2C4D7DAA7A0B5C55F380', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('B199B13B9B34EFC1397E64BAEB05ACC265FF2378', 16),
|
||||
new BigInteger('ADD6718B7C7C1961F0991B842443772152C9E0AD', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('E95E4A5F737059DC60DF5991D45029409E60FC09', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP192r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP192r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF', 16),
|
||||
new BigInteger('469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('C0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6', 16),
|
||||
new BigInteger('14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('C302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP192t1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP192t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86294', 16), // eg. -3
|
||||
new BigInteger('13D56FFAEC78681E68F9DEB43B35BEC2FB68542E27897B79', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('3AE9E58C82F63C30282E1FE7BBF43FA72C446AF6F4618129', 16),
|
||||
new BigInteger('097E2C5667C2223A902AB5CA449D0084B7E5B3DE7CCC01C9', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('C302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP224r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP224r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('68A5E62CA9CE6C1C299803A6C1530B514E182AD8B0042A59CAD29F43', 16),
|
||||
new BigInteger('2580F63CCFE44138870713B1A92369E33E2135D266DBB372386C400B', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('0D9029AD2C7E5CF4340823B2A87DC68C9E4CE3174C1E6EFDEE12C07D', 16),
|
||||
new BigInteger('58AA56F772C0726F24C6B89E4ECDAC24354B9E99CAA3F6D3761402CD', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('D7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP224t1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP224t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FC', 16), // eg. -3
|
||||
new BigInteger('4B337D934104CD7BEF271BF60CED1ED20DA14C08B3BB64F18A60888D', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('6AB1E344CE25FF3896424E7FFE14762ECB49F8928AC0C76029B4D580', 16),
|
||||
new BigInteger('0374E9F5143E568CD23F3F4D7C0D4B1E41C8CC0D1C6ABD5F1A46DB4C', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('D7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP256r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP256r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9', 16),
|
||||
new BigInteger('26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262', 16),
|
||||
new BigInteger('547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP256t1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP256t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5374', 16), // eg. -3
|
||||
new BigInteger('662C61C430D84EA4FE66A7733D0B76B7BF93EBC4AF2F49256AE58101FEE92B04', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('A3E8EB3CC1CFE7B7732213B23A656149AFA142C47AAFBC2B79A191562E1305F4', 16),
|
||||
new BigInteger('2D996C823439C56D7F7B22E14644417E69BCB6DE39D027001DABE8F35B25C9BE', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP320r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP320r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F9' .
|
||||
'2B9EC7893EC28FCD412B1F1B32E27', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('3EE30B568FBAB0F883CCEBD46D3F3BB8A2A73513F5EB79DA66190EB085FFA9F4' .
|
||||
'92F375A97D860EB4', 16),
|
||||
new BigInteger('520883949DFDBC42D3AD198640688A6FE13F41349554B49ACC31DCCD88453981' .
|
||||
'6F5EB4AC8FB1F1A6', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('43BD7E9AFB53D8B85289BCC48EE5BFE6F20137D10A087EB6E7871E2A10A599C7' .
|
||||
'10AF8D0D39E20611', 16),
|
||||
new BigInteger('14FDD05545EC1CC8AB4093247F77275E0743FFED117182EAA9C77877AAAC6AC7' .
|
||||
'D35245D1692E8EE1', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D4' .
|
||||
'82EC7EE8658E98691555B44C59311', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP320t1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP320t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F9' .
|
||||
'2B9EC7893EC28FCD412B1F1B32E27', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC28' .
|
||||
'FCD412B1F1B32E24', 16), // eg. -3
|
||||
new BigInteger('A7F561E038EB1ED560B3D147DB782013064C19F27ED27C6780AAF77FB8A547CE' .
|
||||
'B5B4FEF422340353', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('925BE9FB01AFC6FB4D3E7D4990010F813408AB106C4F09CB7EE07868CC136FFF' .
|
||||
'3357F624A21BED52', 16),
|
||||
new BigInteger('63BA3A7A27483EBF6671DBEF7ABB30EBEE084E58A0B077AD42A5A0989D1EE71B' .
|
||||
'1B9BC0455FB0D2C3', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D4' .
|
||||
'82EC7EE8658E98691555B44C59311', 16));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP384r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP384r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger(
|
||||
'8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A7' .
|
||||
'1874700133107EC53',
|
||||
16
|
||||
));
|
||||
$this->setCoefficients(
|
||||
new BigInteger(
|
||||
'7BC382C63D8C150C3C72080ACE05AFA0C2BEA28E4FB22787139165EFBA91F90F8AA5814A503' .
|
||||
'AD4EB04A8C7DD22CE2826',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'4A8C7DD22CE28268B39B55416F0447C2FB77DE107DCD2A62E880EA53EEB62D57CB4390295DB' .
|
||||
'C9943AB78696FA504C11',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(
|
||||
'1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D' .
|
||||
'646AAEF87B2E247D4AF1E',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E464621779' .
|
||||
'1811142820341263C5315',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC31' .
|
||||
'03B883202E9046565',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP384t1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP384t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger(
|
||||
'8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A7' .
|
||||
'1874700133107EC53',
|
||||
16
|
||||
));
|
||||
$this->setCoefficients(
|
||||
new BigInteger(
|
||||
'8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901' .
|
||||
'D1A71874700133107EC50',
|
||||
16
|
||||
), // eg. -3
|
||||
new BigInteger(
|
||||
'7F519EADA7BDA81BD826DBA647910F8C4B9346ED8CCDC64E4B1ABD11756DCE1D2074AA263B8' .
|
||||
'8805CED70355A33B471EE',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(
|
||||
'18DE98B02DB9A306F2AFCD7235F72A819B80AB12EBD653172476FECD462AABFFC4FF191B946' .
|
||||
'A5F54D8D0AA2F418808CC',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'25AB056962D30651A114AFD2755AD336747F93475B7A1FCA3B88F2B6A208CCFE469408584DC' .
|
||||
'2B2912675BF5B9E582928',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC31' .
|
||||
'03B883202E9046565',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP512r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP512r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger(
|
||||
'AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC' .
|
||||
'66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3',
|
||||
16
|
||||
));
|
||||
$this->setCoefficients(
|
||||
new BigInteger(
|
||||
'7830A3318B603B89E2327145AC234CC594CBDD8D3DF91610A83441CAEA9863BC2DED5D5AA82' .
|
||||
'53AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CA',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C' .
|
||||
'1AC4D77FC94CADC083E67984050B75EBAE5DD2809BD638016F723',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(
|
||||
'81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D' .
|
||||
'0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5' .
|
||||
'F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA' .
|
||||
'92619418661197FAC10471DB1D381085DDADDB58796829CA90069',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* brainpoolP512t1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class brainpoolP512t1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger(
|
||||
'AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC' .
|
||||
'66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3',
|
||||
16
|
||||
));
|
||||
$this->setCoefficients(
|
||||
new BigInteger(
|
||||
'AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC' .
|
||||
'66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F0',
|
||||
16
|
||||
), // eg. -3
|
||||
new BigInteger(
|
||||
'7CBBBCF9441CFAB76E1890E46884EAE321F70C0BCB4981527897504BEC3E36A62BCDFA23049' .
|
||||
'76540F6450085F2DAE145C22553B465763689180EA2571867423E',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(
|
||||
'640ECE5C12788717B9C1BA06CBC2A6FEBA85842458C56DDE9DB1758D39C0313D82BA51735CD' .
|
||||
'B3EA499AA77A7D6943A64F7A3F25FE26F06B51BAA2696FA9035DA',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'5B534BD595F5AF0FA2C892376C84ACE1BB4E3019B71634C01131159CAE03CEE9D9932184BEE' .
|
||||
'F216BD71DF2DADF86A627306ECFF96DBB8BACE198B61E00F8B332',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA' .
|
||||
'92619418661197FAC10471DB1D381085DDADDB58796829CA90069',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistb233.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistb233.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistb233
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistb233 extends sect233r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistb409.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistb409.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistb409
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistb409 extends sect409r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk163.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk163.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistk163
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistk163 extends sect163k1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk233.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk233.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistk233
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistk233 extends sect233k1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk283.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk283.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect283k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistk283 extends sect283k1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk409.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistk409.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistk409
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistk409 extends sect409k1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp192.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp192.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistp192
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistp192 extends secp192r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp224.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp224.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistp224
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistp224 extends secp224r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp256.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp256.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistp256
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistp256 extends secp256r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp384.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp384.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistp384
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistp384 extends secp384r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp521.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistp521.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistp521
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistp521 extends secp521r1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistt571.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/nistt571.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* nistt571
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class nistt571 extends sect571k1
|
||||
{
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime192v1.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime192v1.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime192v1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class prime192v1 extends secp192r1
|
||||
{
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime192v2.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime192v2.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime192v2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class prime192v2 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC', 16),
|
||||
new BigInteger('CC22D6DFB95C6B25E49C0D6364A4E5980C393AA21668D953', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('EEA2BAE7E1497842F2DE7769CFE9C989C072AD696F48034A', 16),
|
||||
new BigInteger('6574D11D69B6EC7A672BB82A083DF2F2B0847DE970B2DE15', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFE5FB1A724DC80418648D8DD31', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime192v3.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime192v3.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime192v3
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class prime192v3 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC', 16),
|
||||
new BigInteger('22123DC2395A05CAA7423DAECCC94760A7D462256BD56916', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('7D29778100C65A1DA1783716588DCE2B8B4AEE8E228F1896', 16),
|
||||
new BigInteger('38A90F22637337334B49DCB66A6DC8F9978ACA7648A943B0', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFF7A62D031C83F4294F640EC13', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime239v1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime239v1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime239v1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class prime239v1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC', 16),
|
||||
new BigInteger('6B016C3BDCF18941D0D654921475CA71A9DB2FB27D1D37796185C2942C0A', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('0FFA963CDCA8816CCC33B8642BEDF905C3D358573D3F27FBBD3B3CB9AAAF', 16),
|
||||
new BigInteger('7DEBE8E4E90A5DAE6E4054CA530BA04654B36818CE226B39FCCB7B02F1AE', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFF9E5E9A9F5D9071FBD1522688909D0B', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime239v2.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime239v2.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime239v2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class prime239v2 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC', 16),
|
||||
new BigInteger('617FAB6832576CBBFED50D99F0249C3FEE58B94BA0038C7AE84C8C832F2C', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('38AF09D98727705120C921BB5E9E26296A3CDCF2F35757A0EAFD87B830E7', 16),
|
||||
new BigInteger('5B0125E4DBEA0EC7206DA0FC01D9B081329FB555DE6EF460237DFF8BE4BA', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF800000CFA7E8594377D414C03821BC582063', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime239v3.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime239v3.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime239v3
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class prime239v3 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF8000000000007FFFFFFFFFFC', 16),
|
||||
new BigInteger('255705FA2A306654B1F4CB03D6A750A30C250102D4988717D9BA15AB6D3E', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('6768AE8E18BB92CFCF005C949AA2C6D94853D0E660BBF854B1C9505FE95A', 16),
|
||||
new BigInteger('1607E6898F390C06BC1D552BAD226F3B6FCFE48B6E818499AF18E3ED6CF3', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('7FFFFFFFFFFFFFFFFFFFFFFF7FFFFF975DEB41B3A6057C3C432146526551', 16));
|
||||
}
|
||||
}
|
||||
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime256v1.php
Normal file
20
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/prime256v1.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* prime256v1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
final class prime256v1 extends secp256r1
|
||||
{
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp112r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp112r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp112r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp112r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('DB7C2ABF62E35E668076BEAD208B', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('DB7C2ABF62E35E668076BEAD2088', 16),
|
||||
new BigInteger('659EF8BA043916EEDE8911702B22', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('09487239995A5EE76B55F9C2F098', 16),
|
||||
new BigInteger('A89CE5AF8724C0A23E0E0FF77500', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('DB7C2ABF62E35E7628DFAC6561C5', 16));
|
||||
}
|
||||
}
|
||||
37
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp112r2.php
Normal file
37
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp112r2.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp112r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp112r2 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// same modulo as secp112r1
|
||||
$this->setModulo(new BigInteger('DB7C2ABF62E35E668076BEAD208B', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('6127C24C05F38A0AAAF65C0EF02C', 16),
|
||||
new BigInteger('51DEF1815DB5ED74FCC34C85D709', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('4BA30AB5E892B4E1649DD0928643', 16),
|
||||
new BigInteger('ADCD46F5882E3747DEF36E956E97', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('36DF0AAFD8B8D7597CA10520D04B', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp128r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp128r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp128r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp128r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC', 16),
|
||||
new BigInteger('E87579C11079F43DD824993C2CEE5ED3', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('161FF7528B899B2D0C28607CA52C5B86', 16),
|
||||
new BigInteger('CF5AC8395BAFEB13C02DA292DDED7A83', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFE0000000075A30D1B9038A115', 16));
|
||||
}
|
||||
}
|
||||
37
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp128r2.php
Normal file
37
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp128r2.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp128r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp128r2 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// same as secp128r1
|
||||
$this->setModulo(new BigInteger('FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('D6031998D1B3BBFEBF59CC9BBFF9AEE1', 16),
|
||||
new BigInteger('5EEEFCA380D02919DC2C6558BB6D8A5D', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('7B6AA5D85E572983E6FB32A7CDEBC140', 16),
|
||||
new BigInteger('27B6916A894D3AEE7106FE805FC34B44', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('3FFFFFFF7FFFFFFFBE0024720613B5A3', 16));
|
||||
}
|
||||
}
|
||||
48
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp160k1.php
Normal file
48
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp160k1.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp160k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp160k1 extends KoblitzPrime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// same as secp160r2
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('0000000000000000000000000000000000000000', 16),
|
||||
new BigInteger('0000000000000000000000000000000000000007', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('3B4C382CE37AA192A4019E763036F4F5DD4D7EBB', 16),
|
||||
new BigInteger('938CF935318FDCED6BC28286531733C3F03C4FEE', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('0100000000000000000001B8FA16DFAB9ACA16B6B3', 16));
|
||||
|
||||
$this->basis = [];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('0096341F1138933BC2F505', -16),
|
||||
'b' => new BigInteger('FF6E9D0418C67BB8D5F562', -16),
|
||||
];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('01BDCB3A09AAAABEAFF4A8', -16),
|
||||
'b' => new BigInteger('04D12329FF0EF498EA67', -16),
|
||||
];
|
||||
$this->beta = $this->factory->newInteger(new BigInteger('645B7345A143464942CC46D7CF4D5D1E1E6CBB68', -16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp160r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp160r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp160r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp160r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC', 16),
|
||||
new BigInteger('1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('4A96B5688EF573284664698968C38BB913CBFC82', 16),
|
||||
new BigInteger('23A628553168947D59DCC912042351377AC5FB32', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('0100000000000000000001F4C8F927AED3CA752257', 16));
|
||||
}
|
||||
}
|
||||
37
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp160r2.php
Normal file
37
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp160r2.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp160r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp160r2 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// same as secp160k1
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC70', 16),
|
||||
new BigInteger('B4E134D3FB59EB8BAB57274904664D5AF50388BA', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('52DCB034293A117E1F4FF11B30F7199D3144CE6D', 16),
|
||||
new BigInteger('FEAFFEF2E331F296E071FA0DF9982CFEA7D43F2E', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('0100000000000000000000351EE786A818F3A1A16B', 16));
|
||||
}
|
||||
}
|
||||
47
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp192k1.php
Normal file
47
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp192k1.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp192k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp192k1 extends KoblitzPrime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('000000000000000000000000000000000000000000000000', 16),
|
||||
new BigInteger('000000000000000000000000000000000000000000000003', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D', 16),
|
||||
new BigInteger('9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D', 16));
|
||||
|
||||
$this->basis = [];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('00B3FB3400DEC5C4ADCEB8655C', -16),
|
||||
'b' => new BigInteger('8EE96418CCF4CFC7124FDA0F', -16),
|
||||
];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('01D90D03E8F096B9948B20F0A9', -16),
|
||||
'b' => new BigInteger('42E49819ABBA9474E1083F6B', -16),
|
||||
];
|
||||
$this->beta = $this->factory->newInteger(new BigInteger('447A96E6C647963E2F7809FEAAB46947F34B0AA3CA0BBA74', -16));
|
||||
}
|
||||
}
|
||||
80
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp192r1.php
Normal file
80
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp192r1.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp192r1
|
||||
*
|
||||
* This is the NIST P-192 curve
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp192r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$modulo = new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF', 16);
|
||||
$this->setModulo($modulo);
|
||||
|
||||
// algorithm 2.27 from http://diamond.boisestate.edu/~liljanab/MATH308/GuideToECC.pdf#page=66
|
||||
/* in theory this should be faster than regular modular reductions save for one small issue.
|
||||
to convert to / from base-2**8 with BCMath you have to call bcmul() and bcdiv() a lot.
|
||||
to convert to / from base-2**8 with PHP64 you have to call base256_rshift() a lot.
|
||||
in short, converting to / from base-2**8 is pretty expensive and that expense is
|
||||
enough to offset whatever else might be gained by a simplified reduction algorithm.
|
||||
now, if PHP supported unsigned integers things might be different. no bit-shifting
|
||||
would be required for the PHP engine and it'd be a lot faster. but as is, BigInteger
|
||||
uses base-2**31 or base-2**26 depending on whether or not the system is has a 32-bit
|
||||
or a 64-bit OS.
|
||||
*/
|
||||
/*
|
||||
$m_length = $this->getLengthInBytes();
|
||||
$this->setReduction(function($c) use ($m_length) {
|
||||
$cBytes = $c->toBytes();
|
||||
$className = $this->className;
|
||||
|
||||
if (strlen($cBytes) > 2 * $m_length) {
|
||||
list(, $r) = $c->divide($className::$modulo);
|
||||
return $r;
|
||||
}
|
||||
|
||||
$c = str_pad($cBytes, 48, "\0", STR_PAD_LEFT);
|
||||
$c = array_reverse(str_split($c, 8));
|
||||
|
||||
$null = "\0\0\0\0\0\0\0\0";
|
||||
$s1 = new BigInteger($c[2] . $c[1] . $c[0], 256);
|
||||
$s2 = new BigInteger($null . $c[3] . $c[3], 256);
|
||||
$s3 = new BigInteger($c[4] . $c[4] . $null, 256);
|
||||
$s4 = new BigInteger($c[5] . $c[5] . $c[5], 256);
|
||||
|
||||
$r = $s1->add($s2)->add($s3)->add($s4);
|
||||
while ($r->compare($className::$modulo) >= 0) {
|
||||
$r = $r->subtract($className::$modulo);
|
||||
}
|
||||
|
||||
return $r;
|
||||
});
|
||||
*/
|
||||
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC', 16),
|
||||
new BigInteger('64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012', 16),
|
||||
new BigInteger('07192B95FFC8DA78631011ED6B24CDD573F977A11E794811', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831', 16));
|
||||
}
|
||||
}
|
||||
47
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp224k1.php
Normal file
47
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp224k1.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp224k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp224k1 extends KoblitzPrime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('00000000000000000000000000000000000000000000000000000000', 16),
|
||||
new BigInteger('00000000000000000000000000000000000000000000000000000005', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C', 16),
|
||||
new BigInteger('7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7', 16));
|
||||
|
||||
$this->basis = [];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('00B8ADF1378A6EB73409FA6C9C637D', -16),
|
||||
'b' => new BigInteger('94730F82B358A3776A826298FA6F', -16),
|
||||
];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('01DCE8D2EC6184CAF0A972769FCC8B', -16),
|
||||
'b' => new BigInteger('4D2100BA3DC75AAB747CCF355DEC', -16),
|
||||
];
|
||||
$this->beta = $this->factory->newInteger(new BigInteger('01F178FFA4B17C89E6F73AECE2AAD57AF4C0A748B63C830947B27E04', -16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp224r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp224r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp224r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp224r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE', 16),
|
||||
new BigInteger('B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21', 16),
|
||||
new BigInteger('BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D', 16));
|
||||
}
|
||||
}
|
||||
51
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp256k1.php
Normal file
51
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp256k1.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp256k1
|
||||
*
|
||||
* This is the curve used in Bitcoin
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
//use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Crypt\EC\BaseCurves\KoblitzPrime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
//class secp256k1 extends Prime
|
||||
class secp256k1 extends KoblitzPrime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('0000000000000000000000000000000000000000000000000000000000000000', 16),
|
||||
new BigInteger('0000000000000000000000000000000000000000000000000000000000000007', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', 16));
|
||||
$this->setBasePoint(
|
||||
new BigInteger('79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798', 16),
|
||||
new BigInteger('483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8', 16)
|
||||
);
|
||||
|
||||
$this->basis = [];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('3086D221A7D46BCDE86C90E49284EB15', -16),
|
||||
'b' => new BigInteger('FF1BBC8129FEF177D790AB8056F5401B3D', -16),
|
||||
];
|
||||
$this->basis[] = [
|
||||
'a' => new BigInteger('114CA50F7A8E2F3F657C1108D9D44CFD8', -16),
|
||||
'b' => new BigInteger('3086D221A7D46BCDE86C90E49284EB15', -16),
|
||||
];
|
||||
$this->beta = $this->factory->newInteger(new BigInteger('7AE96A2B657C07106E64479EAC3434E99CF0497512F58995C1396C28719501EE', -16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp256r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp256r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp256r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp256r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC', 16),
|
||||
new BigInteger('5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296', 16),
|
||||
new BigInteger('4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551', 16));
|
||||
}
|
||||
}
|
||||
54
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp384r1.php
Normal file
54
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp384r1.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp384r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp384r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger(
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF',
|
||||
16
|
||||
));
|
||||
$this->setCoefficients(
|
||||
new BigInteger(
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger(
|
||||
'AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7',
|
||||
16
|
||||
),
|
||||
new BigInteger(
|
||||
'3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F',
|
||||
16
|
||||
)
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
48
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp521r1.php
Normal file
48
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/secp521r1.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* secp521r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Prime;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class secp521r1 extends Prime
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(new BigInteger('01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'FFFF', 16));
|
||||
$this->setCoefficients(
|
||||
new BigInteger('01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'FFFC', 16),
|
||||
new BigInteger('0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF1' .
|
||||
'09E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B50' .
|
||||
'3F00', 16)
|
||||
);
|
||||
$this->setBasePoint(
|
||||
new BigInteger('00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D' .
|
||||
'3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5' .
|
||||
'BD66', 16),
|
||||
new BigInteger('011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E' .
|
||||
'662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD1' .
|
||||
'6650', 16)
|
||||
);
|
||||
$this->setOrder(new BigInteger('01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'FFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E9138' .
|
||||
'6409', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect113r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect113r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect113r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect113r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(113, 9, 0);
|
||||
$this->setCoefficients(
|
||||
'003088250CA6E7C7FE649CE85820F7',
|
||||
'00E8BEE4D3E2260744188BE0E9C723'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'009D73616F35F4AB1407D73562C10F',
|
||||
'00A52830277958EE84D1315ED31886'
|
||||
);
|
||||
$this->setOrder(new BigInteger('0100000000000000D9CCEC8A39E56F', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect113r2.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect113r2.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect113r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect113r2 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(113, 9, 0);
|
||||
$this->setCoefficients(
|
||||
'00689918DBEC7E5A0DD6DFC0AA55C7',
|
||||
'0095E9A9EC9B297BD4BF36E059184F'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'01A57A6A7B26CA5EF52FCDB8164797',
|
||||
'00B3ADC94ED1FE674C06E695BABA1D'
|
||||
);
|
||||
$this->setOrder(new BigInteger('010000000000000108789B2496AF93', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect131r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect131r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect131r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect131r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(131, 8, 3, 2, 0);
|
||||
$this->setCoefficients(
|
||||
'07A11B09A76B562144418FF3FF8C2570B8',
|
||||
'0217C05610884B63B9C6C7291678F9D341'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'0081BAF91FDF9833C40F9C181343638399',
|
||||
'078C6E7EA38C001F73C8134B1B4EF9E150'
|
||||
);
|
||||
$this->setOrder(new BigInteger('0400000000000000023123953A9464B54D', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect131r2.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect131r2.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect131r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect131r2 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(131, 8, 3, 2, 0);
|
||||
$this->setCoefficients(
|
||||
'03E5A88919D7CAFCBF415F07C2176573B2',
|
||||
'04B8266A46C55657AC734CE38F018F2192'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'0356DCD8F2F95031AD652D23951BB366A8',
|
||||
'0648F06D867940A5366D9E265DE9EB240F'
|
||||
);
|
||||
$this->setOrder(new BigInteger('0400000000000000016954A233049BA98F', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect163k1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect163k1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect163k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect163k1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(163, 7, 6, 3, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000001',
|
||||
'000000000000000000000000000000000000000001'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'02FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE8',
|
||||
'0289070FB05D38FF58321F2E800536D538CCDAA3D9'
|
||||
);
|
||||
$this->setOrder(new BigInteger('04000000000000000000020108A2E0CC0D99F8A5EF', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect163r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect163r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect163r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect163r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(163, 7, 6, 3, 0);
|
||||
$this->setCoefficients(
|
||||
'07B6882CAAEFA84F9554FF8428BD88E246D2782AE2',
|
||||
'0713612DCDDCB40AAB946BDA29CA91F73AF958AFD9'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'0369979697AB43897789566789567F787A7876A654',
|
||||
'00435EDB42EFAFB2989D51FEFCE3C80988F41FF883'
|
||||
);
|
||||
$this->setOrder(new BigInteger('03FFFFFFFFFFFFFFFFFFFF48AAB689C29CA710279B', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect163r2.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect163r2.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect163r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect163r2 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(163, 7, 6, 3, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000001',
|
||||
'020A601907B8C953CA1481EB10512F78744A3205FD'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'03F0EBA16286A2D57EA0991168D4994637E8343E36',
|
||||
'00D51FBC6C71A0094FA2CDD545B11C5C0C797324F1'
|
||||
);
|
||||
$this->setOrder(new BigInteger('040000000000000000000292FE77E70C12A4234C33', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect193r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect193r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect193r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect193r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(193, 15, 0);
|
||||
$this->setCoefficients(
|
||||
'0017858FEB7A98975169E171F77B4087DE098AC8A911DF7B01',
|
||||
'00FDFB49BFE6C3A89FACADAA7A1E5BBC7CC1C2E5D831478814'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'01F481BC5F0FF84A74AD6CDF6FDEF4BF6179625372D8C0C5E1',
|
||||
'0025E399F2903712CCF3EA9E3A1AD17FB0B3201B6AF7CE1B05'
|
||||
);
|
||||
$this->setOrder(new BigInteger('01000000000000000000000000C7F34A778F443ACC920EBA49', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect193r2.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect193r2.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect193r2
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect193r2 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(193, 15, 0);
|
||||
$this->setCoefficients(
|
||||
'0163F35A5137C2CE3EA6ED8667190B0BC43ECD69977702709B',
|
||||
'00C9BB9E8927D4D64C377E2AB2856A5B16E3EFB7F61D4316AE'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'00D9B67D192E0367C803F39E1A7E82CA14A651350AAE617E8F',
|
||||
'01CE94335607C304AC29E7DEFBD9CA01F596F927224CDECF6C'
|
||||
);
|
||||
$this->setOrder(new BigInteger('010000000000000000000000015AAB561B005413CCD4EE99D5', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect233k1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect233k1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect233k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect233k1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(233, 74, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000000',
|
||||
'000000000000000000000000000000000000000000000000000000000001'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD6126',
|
||||
'01DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3'
|
||||
);
|
||||
$this->setOrder(new BigInteger('8000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect233r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect233r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect233r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wigginton <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect233r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(233, 74, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000001',
|
||||
'0066647EDE6C332C7F8C0923BB58213B333B20E9CE4281FE115F7D8F90AD'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B',
|
||||
'01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052'
|
||||
);
|
||||
$this->setOrder(new BigInteger('01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect239k1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect239k1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect239k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect239k1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(239, 158, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000000',
|
||||
'000000000000000000000000000000000000000000000000000000000001'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'29A0B6A887A983E9730988A68727A8B2D126C44CC2CC7B2A6555193035DC',
|
||||
'76310804F12E549BDB011C103089E73510ACB275FC312A5DC6B76553F0CA'
|
||||
);
|
||||
$this->setOrder(new BigInteger('2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect283k1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect283k1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect283k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect283k1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(283, 12, 7, 5, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000000',
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000001'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'0503213F78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC2458492836',
|
||||
'01CCDA380F1C9E318D90F95D07E5426FE87E45C0E8184698E45962364E34116177DD2259'
|
||||
);
|
||||
$this->setOrder(new BigInteger('01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9AE2ED07577265DFF7F94451E061E163C61', 16));
|
||||
}
|
||||
}
|
||||
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect283r1.php
Normal file
36
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect283r1.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect283r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect283r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(283, 12, 7, 5, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000001',
|
||||
'027B680AC8B8596DA5A4AF8A19A0303FCA97FD7645309FA2A581485AF6263E313B79A2F5'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'05F939258DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B12053',
|
||||
'03676854FE24141CB98FE6D4B20D02B4516FF702350EDDB0826779C813F0DF45BE8112F4'
|
||||
);
|
||||
$this->setOrder(new BigInteger('03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF90399660FC938A90165B042A7CEFADB307', 16));
|
||||
}
|
||||
}
|
||||
40
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect409k1.php
Normal file
40
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect409k1.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect409k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect409k1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(409, 87, 0);
|
||||
$this->setCoefficients(
|
||||
'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
|
||||
'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'0060F05F658F49C1AD3AB1890F7184210EFD0987E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE9023746',
|
||||
'01E369050B7C4E42ACBA1DACBF04299C3460782F918EA427E6325165E9EA10E3DA5F6C42E9C55215AA9CA27A5863EC48D8E0286B'
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5F' .
|
||||
'83B2D4EA20400EC4557D5ED3E3E7CA5B4B5C83B8E01E5FCF',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
40
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect409r1.php
Normal file
40
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect409r1.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect409r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect409r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(409, 87, 0);
|
||||
$this->setCoefficients(
|
||||
'00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001',
|
||||
'0021A5C2C8EE9FEB5C4B9A753B7B476B7FD6422EF1F3DD674761FA99D6AC27C8A9A197B272822F6CD57A55AA4F50AE317B13545F'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'015D4860D088DDB3496B0C6064756260441CDE4AF1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A7',
|
||||
'0061B1CFAB6BE5F32BBFA78324ED106A7636B9C5A7BD198D0158AA4F5488D08F38514F1FDF4B4F40D2181B3681C364BA0273C706'
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'010000000000000000000000000000000000000000000000000001E2' .
|
||||
'AAD6A612F33307BE5FA47C3C9E052F838164CD37D9A21173',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
44
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect571k1.php
Normal file
44
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect571k1.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect571k1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect571k1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(571, 10, 5, 2, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000000' .
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000000',
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000000' .
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000001'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'026EB7A859923FBC82189631F8103FE4AC9CA2970012D5D46024804801841CA443709584' .
|
||||
'93B205E647DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C8972',
|
||||
'0349DC807F4FBF374F4AEADE3BCA95314DD58CEC9F307A54FFC61EFC006D8A2C9D4979C0' .
|
||||
'AC44AEA74FBEBBB9F772AEDCB620B01A7BA7AF1B320430C8591984F601CD4C143EF1C7A3'
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'020000000000000000000000000000000000000000000000000000000000000000000000' .
|
||||
'131850E1F19A63E4B391A8DB917F4138B630D84BE5D639381E91DEB45CFE778F637C1001',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
44
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect571r1.php
Normal file
44
qa-tool/htdocs/oidc/phpseclib/Crypt/EC/Curves/sect571r1.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* sect571r1
|
||||
*
|
||||
* PHP version 5 and 7
|
||||
*
|
||||
* @author Jim Wiggint on <terrafrost@php.net>
|
||||
* @copyright 2017 Jim Wigginton
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @link http://pear.php.net/package/Math_BigInteger
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpseclib3\Crypt\EC\Curves;
|
||||
|
||||
use phpseclib3\Crypt\EC\BaseCurves\Binary;
|
||||
use phpseclib3\Math\BigInteger;
|
||||
|
||||
class sect571r1 extends Binary
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->setModulo(571, 10, 5, 2, 0);
|
||||
$this->setCoefficients(
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000000' .
|
||||
'000000000000000000000000000000000000000000000000000000000000000000000001',
|
||||
'02F40E7E2221F295DE297117B7F3D62F5C6A97FFCB8CEFF1CD6BA8CE4A9A18AD84FFABBD' .
|
||||
'8EFA59332BE7AD6756A66E294AFD185A78FF12AA520E4DE739BACA0C7FFEFF7F2955727A'
|
||||
);
|
||||
$this->setBasePoint(
|
||||
'0303001D34B856296C16C0D40D3CD7750A93D1D2955FA80AA5F40FC8DB7B2ABDBDE53950' .
|
||||
'F4C0D293CDD711A35B67FB1499AE60038614F1394ABFA3B4C850D927E1E7769C8EEC2D19',
|
||||
'037BF27342DA639B6DCCFFFEB73D69D78C6C27A6009CBBCA1980F8533921E8A684423E43' .
|
||||
'BAB08A576291AF8F461BB2A8B3531D2F0485C19B16E2F1516E23DD3C1A4827AF1B8AC15B'
|
||||
);
|
||||
$this->setOrder(new BigInteger(
|
||||
'03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' .
|
||||
'E661CE18FF55987308059B186823851EC7DD9CA1161DE93D5174D66E8382E9BB2FE84E47',
|
||||
16
|
||||
));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user