PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.13.4
JetBackup – Backup, Restore & Migrate v3.1.13.4
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 / PublicKeyLoader.php
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt Last commit date
Common 9 months ago DH 9 months ago DSA 9 months ago EC 9 months ago RSA 9 months ago .htaccess 9 months ago AES.php 9 months ago Blowfish.php 9 months ago ChaCha20.php 9 months ago DES.php 9 months ago DH.php 9 months ago DSA.php 9 months ago EC.php 9 months ago Hash.php 9 months ago PublicKeyLoader.php 9 months ago RC2.php 9 months ago RC4.php 9 months ago RSA.php 9 months ago Random.php 9 months ago Rijndael.php 9 months ago Salsa20.php 9 months ago TripleDES.php 9 months ago Twofish.php 9 months ago index.html 9 months ago web.config 9 months ago
PublicKeyLoader.php
108 lines
1 <?php
2
3 /**
4 * PublicKeyLoader
5 *
6 * Returns a PublicKey or PrivateKey object.
7 *
8 * @author Jim Wigginton <terrafrost@php.net>
9 * @copyright 2009 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;
17
18 use phpseclib3\Crypt\Common\AsymmetricKey;
19 use phpseclib3\Crypt\Common\PrivateKey;
20 use phpseclib3\Crypt\Common\PublicKey;
21 use phpseclib3\Exception\NoKeyLoadedException;
22 use phpseclib3\File\X509;
23
24 /**
25 * PublicKeyLoader
26 *
27 * @author Jim Wigginton <terrafrost@php.net>
28 */
29 abstract class PublicKeyLoader
30 {
31 /**
32 * Loads a public or private key
33 *
34 * @param string|array $key
35 */
36 public static function load($key, ?string $password = null): AsymmetricKey
37 {
38 try {
39 return EC::load($key, $password);
40 } catch (NoKeyLoadedException $e) {
41 }
42
43 try {
44 return RSA::load($key, $password);
45 } catch (NoKeyLoadedException $e) {
46 }
47
48 try {
49 return DSA::load($key, $password);
50 } catch (NoKeyLoadedException $e) {
51 }
52
53 try {
54 $x509 = new X509();
55 $x509->loadX509($key);
56 $key = $x509->getPublicKey();
57 if ($key) {
58 return $key;
59 }
60 } catch (\Exception $e) {
61 }
62
63 throw new NoKeyLoadedException('Unable to read key');
64 }
65
66 /**
67 * Loads a private key
68 *
69 * @param string|array $key
70 */
71 public static function loadPrivateKey($key, ?string $password = null): PrivateKey
72 {
73 $key = self::load($key, $password);
74 if (!$key instanceof PrivateKey) {
75 throw new NoKeyLoadedException('The key that was loaded was not a private key');
76 }
77 return $key;
78 }
79
80 /**
81 * Loads a public key
82 *
83 * @param string|array $key
84 */
85 public static function loadPublicKey($key): PublicKey
86 {
87 $key = self::load($key);
88 if (!$key instanceof PublicKey) {
89 throw new NoKeyLoadedException('The key that was loaded was not a public key');
90 }
91 return $key;
92 }
93
94 /**
95 * Loads parameters
96 *
97 * @param string|array $key
98 */
99 public static function loadParameters($key): AsymmetricKey
100 {
101 $key = self::load($key);
102 if (!$key instanceof PrivateKey && !$key instanceof PublicKey) {
103 throw new NoKeyLoadedException('The key that was loaded was not a parameter');
104 }
105 return $key;
106 }
107 }
108