mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-29 04:23:34 +00:00
28 lines
816 B
PHP
28 lines
816 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace phpseclib3\Tests\Unit\Crypt\EC;
|
|
|
|
use phpseclib3\Common\Functions\Strings;
|
|
use phpseclib3\Crypt\EC\Curves\Ed448;
|
|
use phpseclib3\Exception\UnexpectedValueException;
|
|
|
|
class Ed448PrivateKey
|
|
{
|
|
public static function load($key, ?string $password = null): array
|
|
{
|
|
if (!Strings::is_stringable($key)) {
|
|
throw new UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
|
}
|
|
|
|
$components = ['curve' => new Ed448()];
|
|
$arr = $components['curve']->extractSecret($key);
|
|
$components['dA'] = $arr['dA'];
|
|
$components['secret'] = $arr['secret'];
|
|
$components['QA'] = $components['curve']->multiplyPoint($components['curve']->getBasePoint(), $components['dA']);
|
|
|
|
return $components;
|
|
}
|
|
}
|