PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
3.1.22.4 3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt / EC / Formats / Keys / MontgomeryPublic.php
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt / EC / Formats / Keys Last commit date
.htaccess 1 year ago Common.php 1 year ago JWK.php 1 year ago MontgomeryPrivate.php 1 year ago MontgomeryPublic.php 1 year ago OpenSSH.php 1 year ago PKCS1.php 1 year ago PKCS8.php 1 year ago PuTTY.php 1 year ago XML.php 1 year ago index.html 1 year ago libsodium.php 1 year ago web.config 1 year ago
MontgomeryPublic.php
69 lines
1 <?php
2
3 /**
4 * Montgomery Public Key Handler
5 *
6 * PHP version 5
7 *
8 * @author Jim Wigginton <terrafrost@php.net>
9 * @copyright 2015 Jim Wigginton
10 * @license http://www.opensource.org/licenses/mit-license.html MIT License
11 * @link http://phpseclib.sourceforge.net
12 */
13
14 declare(strict_types=1);
15
16 namespace phpseclib3\Crypt\EC\Formats\Keys;
17
18 use phpseclib3\Crypt\EC\BaseCurves\Montgomery as MontgomeryCurve;
19 use phpseclib3\Crypt\EC\Curves\Curve25519;
20 use phpseclib3\Crypt\EC\Curves\Curve448;
21 use phpseclib3\Exception\LengthException;
22 use phpseclib3\Math\BigInteger;
23 use phpseclib3\Math\Common\FiniteField\Integer;
24
25 /**
26 * Montgomery Public Key Handler
27 *
28 * @author Jim Wigginton <terrafrost@php.net>
29 */
30 abstract class MontgomeryPublic
31 {
32 /**
33 * Is invisible flag
34 */
35 public const IS_INVISIBLE = true;
36
37 /**
38 * Break a public or private key down into its constituent components
39 */
40 public static function load(string $key, ?string $password = null): array
41 {
42 switch (strlen($key)) {
43 case 32:
44 $curve = new Curve25519();
45 break;
46 case 56:
47 $curve = new Curve448();
48 break;
49 default:
50 throw new LengthException('The only supported lengths are 32 and 56');
51 }
52
53 $components = ['curve' => $curve];
54 $components['QA'] = [$components['curve']->convertInteger(new BigInteger(strrev($key), 256))];
55
56 return $components;
57 }
58
59 /**
60 * Convert an EC public key to the appropriate format
61 *
62 * @param Integer[] $publicKey
63 */
64 public static function savePublicKey(MontgomeryCurve $curve, array $publicKey): string
65 {
66 return strrev($publicKey[0]->toBytes());
67 }
68 }
69