PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
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 1 year ago DH 1 year ago DSA 1 year ago EC 1 year ago RSA 1 year ago .htaccess 1 year ago AES.php 1 year ago Blowfish.php 1 year ago ChaCha20.php 1 year ago DES.php 1 year ago DH.php 1 year ago DSA.php 1 year ago EC.php 1 year ago Hash.php 1 year ago PublicKeyLoader.php 1 year ago RC2.php 1 year ago RC4.php 1 year ago RSA.php 1 year ago Random.php 1 year ago Rijndael.php 1 year ago Salsa20.php 1 year ago TripleDES.php 1 year ago Twofish.php 1 year ago index.html 1 year ago web.config 1 year 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