コード例 #1
0
ファイル: PointTest.php プロジェクト: fpoirotte/pssht
 /**
  * @dataProvider vectorsP521
  * @group large
  */
 public function testP521($k, $x, $y)
 {
     $base = new \fpoirotte\Pssht\ECC\Point('0x00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66', '0x011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650');
     $expected = new \fpoirotte\Pssht\ECC\Point($x, $y);
     $actual = $base->multiply(\fpoirotte\Pssht\ECC\Curve::getCurve('nistp521'), $k);
     $this->assertSame(gmp_strval($expected->x, 16), gmp_strval($actual->x, 16));
     $this->assertSame(gmp_strval($expected->y, 16), gmp_strval($actual->y, 16));
 }
コード例 #2
0
ファイル: RFC5656.php プロジェクト: fpoirotte/pssht
 protected function createResponse(\fpoirotte\Pssht\Wire\Decoder $decoder, \fpoirotte\Pssht\Transport $transport, array &$context, $hostAlgo)
 {
     $kexAlgo = $context['kexAlgo'];
     $kexAlgo = new $kexAlgo();
     $curveName = str_replace('ecdh-sha2-', '', $kexAlgo::getName());
     $cls = str_replace('nist', 'NIST', $curveName);
     $cls = "\\fpoirotte\\Pssht\\Messages\\KEX\\ECDH\\INIT\\{$cls}";
     $message = $cls::unserialize($decoder);
     $curve = \fpoirotte\Pssht\ECC\Curve::getCurve($curveName);
     return new \fpoirotte\Pssht\Messages\KEX\ECDH\REPLY\RFC5656($curve, $message, $context['serverKeys'][$hostAlgo], $transport->getEncryptor(), $kexAlgo, $context['kex']['server'], $context['kex']['client'], $context['identity']['server'], $context['identity']['client']);
 }
コード例 #3
0
ファイル: NISTp521.php プロジェクト: fpoirotte/pssht
 public static function getCurve()
 {
     return \fpoirotte\Pssht\ECC\Curve::getCurve('nistp521');
 }