PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.23.3
JetBackup – Backup, Restore & Migrate v3.1.23.3
3.1.23.3 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 / DH / Formats / Keys / PKCS1.php
backup / src / JetBackup / 3rdparty / phpseclib3 / Crypt / DH / Formats / Keys Last commit date
.htaccess 1 year ago PKCS1.php 1 year ago PKCS8.php 1 year ago index.html 1 year ago web.config 1 year ago
PKCS1.php
77 lines
1 <?php
2
3 /**
4 * "PKCS1" Formatted EC Key Handler
5 *
6 * PHP version 5
7 *
8 * Processes keys with the following headers:
9 *
10 * -----BEGIN DH PARAMETERS-----
11 *
12 * Technically, PKCS1 is for RSA keys, only, but we're using PKCS1 to describe
13 * DSA, whose format isn't really formally described anywhere, so might as well
14 * use it to describe this, too.
15 *
16 * @author Jim Wigginton <terrafrost@php.net>
17 * @copyright 2015 Jim Wigginton
18 * @license http://www.opensource.org/licenses/mit-license.html MIT License
19 * @link http://phpseclib.sourceforge.net
20 */
21
22 declare(strict_types=1);
23
24 namespace phpseclib3\Crypt\DH\Formats\Keys;
25
26 use phpseclib3\Crypt\Common\Formats\Keys\PKCS1 as Progenitor;
27 use phpseclib3\Exception\RuntimeException;
28 use phpseclib3\File\ASN1;
29 use phpseclib3\File\ASN1\Maps;
30 use phpseclib3\Math\BigInteger;
31
32 /**
33 * "PKCS1" Formatted DH Key Handler
34 *
35 * @author Jim Wigginton <terrafrost@php.net>
36 */
37 abstract class PKCS1 extends Progenitor
38 {
39 /**
40 * Break a public or private key down into its constituent components
41 *
42 * @param string|array $key
43 */
44 public static function load($key, ?string $password = null): array
45 {
46 $key = parent::load($key, $password);
47
48 $decoded = ASN1::decodeBER($key);
49 if (!$decoded) {
50 throw new RuntimeException('Unable to decode BER');
51 }
52
53 $components = ASN1::asn1map($decoded[0], Maps\DHParameter::MAP);
54 if (!is_array($components)) {
55 throw new RuntimeException('Unable to perform ASN1 mapping on parameters');
56 }
57
58 return $components;
59 }
60
61 /**
62 * Convert EC parameters to the appropriate format
63 */
64 public static function saveParameters(BigInteger $prime, BigInteger $base, array $options = []): string
65 {
66 $params = [
67 'prime' => $prime,
68 'base' => $base,
69 ];
70 $params = ASN1::encodeDER($params, Maps\DHParameter::MAP);
71
72 return "-----BEGIN DH PARAMETERS-----\r\n" .
73 chunk_split(base64_encode($params), 64) .
74 "-----END DH PARAMETERS-----\r\n";
75 }
76 }
77