1 | <?php |
||
30 | class RSAPrivateKeyJWK extends PrivateKeyJWK |
||
31 | { |
||
32 | /** |
||
33 | * Parameter names managed by this class. |
||
34 | * |
||
35 | * @internal |
||
36 | * |
||
37 | * @var string[] |
||
38 | */ |
||
39 | const MANAGED_PARAMS = [ |
||
40 | JWKParameter::PARAM_KEY_TYPE, |
||
41 | JWKParameter::PARAM_MODULUS, |
||
42 | JWKParameter::PARAM_EXPONENT, |
||
43 | JWKParameter::PARAM_PRIVATE_EXPONENT, |
||
44 | JWKParameter::PARAM_FIRST_PRIME_FACTOR, |
||
45 | JWKParameter::PARAM_SECOND_PRIME_FACTOR, |
||
46 | JWKParameter::PARAM_FIRST_FACTOR_CRT_EXPONENT, |
||
47 | JWKParameter::PARAM_SECOND_FACTOR_CRT_EXPONENT, |
||
48 | JWKParameter::PARAM_FIRST_CRT_COEFFICIENT, |
||
49 | ]; |
||
50 | |||
51 | /** |
||
52 | * Constructor. |
||
53 | * |
||
54 | * @param JWKParameter ...$params |
||
55 | * |
||
56 | * @throws \UnexpectedValueException If missing required parameter |
||
57 | */ |
||
58 | 13 | public function __construct(JWKParameter ...$params) |
|
74 | 11 | } |
|
75 | |||
76 | /** |
||
77 | * Initialize from RSAPrivateKey. |
||
78 | * |
||
79 | * @param RSAPrivateKey $pk |
||
80 | * |
||
81 | * @return self |
||
82 | */ |
||
83 | 3 | public static function fromRSAPrivateKey(RSAPrivateKey $pk): self |
|
95 | } |
||
96 | |||
97 | /** |
||
98 | * Initialize from PEM. |
||
99 | * |
||
100 | * @param PEM $pem |
||
101 | * |
||
102 | * @return self |
||
103 | */ |
||
104 | 1 | public static function fromPEM(PEM $pem): self |
|
105 | { |
||
106 | 1 | return self::fromRSAPrivateKey(RSAPrivateKey::fromPEM($pem)); |
|
107 | } |
||
108 | |||
109 | /** |
||
110 | * Get public key component. |
||
111 | * |
||
112 | * @return RSAPublicKeyJWK |
||
113 | */ |
||
114 | 26 | public function publicKey(): PublicKeyJWK |
|
115 | { |
||
116 | 26 | $kty = $this->keyTypeParameter(); |
|
117 | 26 | $n = $this->modulusParameter(); |
|
118 | 26 | $e = $this->exponentParameter(); |
|
119 | 26 | return new RSAPublicKeyJWK($kty, $n, $e); |
|
120 | } |
||
121 | |||
122 | /** |
||
123 | * Convert JWK to PEM. |
||
124 | * |
||
125 | * @return PEM |
||
126 | */ |
||
127 | 16 | public function toPEM(): PEM |
|
139 | } |
||
140 | } |
||
141 |