@@ -39,7 +39,6 @@ |
||
39 | 39 | use jwt\utils\JOSEHeaderSerializer; |
40 | 40 | use jwt\utils\JWTClaimSetSerializer; |
41 | 41 | use jwt\utils\JWTRawSerializer; |
42 | -use utils\json_types\JsonArray; |
|
43 | 42 | use utils\json_types\JsonValue; |
44 | 43 | use utils\json_types\StringOrURI; |
45 | 44 |
@@ -79,8 +79,9 @@ discard block |
||
79 | 79 | |
80 | 80 | parent::__construct($header, $claim_set); |
81 | 81 | |
82 | - if(!is_null($payload)) |
|
83 | - $this->setPayload($payload); |
|
82 | + if(!is_null($payload)) { |
|
83 | + $this->setPayload($payload); |
|
84 | + } |
|
84 | 85 | |
85 | 86 | $this->signature = $signature; |
86 | 87 | } |
@@ -100,8 +101,9 @@ discard block |
||
100 | 101 | */ |
101 | 102 | public function toCompactSerialization() |
102 | 103 | { |
103 | - if(!is_null($this->jwk->getId())) |
|
104 | - $this->header->addHeader(new JOSEHeaderParam(RegisteredJOSEHeaderNames::KeyID, $this->jwk->getId())); |
|
104 | + if(!is_null($this->jwk->getId())) { |
|
105 | + $this->header->addHeader(new JOSEHeaderParam(RegisteredJOSEHeaderNames::KeyID, $this->jwk->getId())); |
|
106 | + } |
|
105 | 107 | |
106 | 108 | if($this->jwk instanceof IAsymmetricJWK) |
107 | 109 | { |
@@ -134,16 +136,19 @@ discard block |
||
134 | 136 | public function sign() |
135 | 137 | { |
136 | 138 | |
137 | - if(is_null($this->jwk)) |
|
138 | - throw new JWSInvalidJWKException; |
|
139 | + if(is_null($this->jwk)) { |
|
140 | + throw new JWSInvalidJWKException; |
|
141 | + } |
|
139 | 142 | |
140 | - if($this->jwk->getKeyUse()->getString() !== JSONWebKeyPublicKeyUseValues::Signature) |
|
141 | - throw new JWSInvalidJWKException(sprintf('use %s not supported.', $this->jwk->getKeyUse()->getString())); |
|
143 | + if($this->jwk->getKeyUse()->getString() !== JSONWebKeyPublicKeyUseValues::Signature) { |
|
144 | + throw new JWSInvalidJWKException(sprintf('use %s not supported.', $this->jwk->getKeyUse()->getString())); |
|
145 | + } |
|
142 | 146 | |
143 | 147 | $alg = DigitalSignatures_MACs_Registry::getInstance()->get($this->header->getAlgorithm()->getString()); |
144 | 148 | |
145 | - if(is_null($alg)) |
|
146 | - throw new JWSNotSupportedAlgorithm(sprintf('alg %s.',$this->header->getAlgorithm()->getString())); |
|
149 | + if(is_null($alg)) { |
|
150 | + throw new JWSNotSupportedAlgorithm(sprintf('alg %s.',$this->header->getAlgorithm()->getString())); |
|
151 | + } |
|
147 | 152 | |
148 | 153 | $secured_input_bytes = JOSEHeaderSerializer::serialize($this->header) . IBasicJWT::SegmentSeparator .$this->getEncodedPayload(); |
149 | 154 | |
@@ -152,12 +157,10 @@ discard block |
||
152 | 157 | if($alg instanceof DigitalSignatureAlgorithm) |
153 | 158 | { |
154 | 159 | $this->signature = $alg->sign($key, $secured_input_bytes); |
155 | - } |
|
156 | - else if($alg instanceof MAC_Algorithm ) |
|
160 | + } else if($alg instanceof MAC_Algorithm ) |
|
157 | 161 | { |
158 | 162 | $this->signature = $alg->digest($key, $secured_input_bytes); |
159 | - } |
|
160 | - else |
|
163 | + } else |
|
161 | 164 | { |
162 | 165 | throw new JWSNotSupportedAlgorithm(sprintf('alg %s.',$this->header->getAlgorithm()->getString())); |
163 | 166 | } |
@@ -171,15 +174,15 @@ discard block |
||
171 | 174 | */ |
172 | 175 | public function getEncodedPayload() |
173 | 176 | { |
174 | - if(is_null($this->payload)) |
|
175 | - throw new JWSInvalidPayloadException('payload is not set!'); |
|
177 | + if(is_null($this->payload)) { |
|
178 | + throw new JWSInvalidPayloadException('payload is not set!'); |
|
179 | + } |
|
176 | 180 | |
177 | 181 | $enc_payload = ''; |
178 | 182 | if($this->payload->isClaimSet() && $this->payload instanceof IJWSPayloadClaimSetSpec) |
179 | 183 | { |
180 | 184 | $enc_payload = JWTClaimSetSerializer::serialize($this->payload->getClaimSet()); |
181 | - } |
|
182 | - else |
|
185 | + } else |
|
183 | 186 | { |
184 | 187 | $enc_payload = JWTRawSerializer::serialize($this->payload->getRaw()); |
185 | 188 | } |
@@ -233,11 +236,12 @@ discard block |
||
233 | 236 | */ |
234 | 237 | public function verify($original_alg) |
235 | 238 | { |
236 | - if(is_null($this->jwk)) |
|
237 | - throw new JWSInvalidJWKException; |
|
239 | + if(is_null($this->jwk)) { |
|
240 | + throw new JWSInvalidJWKException; |
|
241 | + } |
|
238 | 242 | |
239 | - if($this->jwk->getKeyUse()->getString() !== JSONWebKeyPublicKeyUseValues::Signature) |
|
240 | - throw new JWSInvalidJWKException |
|
243 | + if($this->jwk->getKeyUse()->getString() !== JSONWebKeyPublicKeyUseValues::Signature) { |
|
244 | + throw new JWSInvalidJWKException |
|
241 | 245 | ( |
242 | 246 | sprintf |
243 | 247 | ( |
@@ -245,12 +249,14 @@ discard block |
||
245 | 249 | $this->jwk->getKeyUse()->getString() |
246 | 250 | ) |
247 | 251 | ); |
252 | + } |
|
248 | 253 | |
249 | - if(is_null($this->jwk->getAlgorithm())) |
|
250 | - throw new InvalidJWKAlgorithm('algorithm intended for use with the key is not set! '); |
|
254 | + if(is_null($this->jwk->getAlgorithm())) { |
|
255 | + throw new InvalidJWKAlgorithm('algorithm intended for use with the key is not set! '); |
|
256 | + } |
|
251 | 257 | |
252 | - if(!is_null($this->jwk->getId()) && !is_null($this->header->getKeyID()) && $this->header->getKeyID()->getValue() != $this->jwk->getId()->getValue()) |
|
253 | - throw new JWSInvalidJWKException |
|
258 | + if(!is_null($this->jwk->getId()) && !is_null($this->header->getKeyID()) && $this->header->getKeyID()->getValue() != $this->jwk->getId()->getValue()) { |
|
259 | + throw new JWSInvalidJWKException |
|
254 | 260 | ( |
255 | 261 | sprintf |
256 | 262 | ( |
@@ -259,16 +265,18 @@ discard block |
||
259 | 265 | $this->jwk->getId()->getValue() |
260 | 266 | ) |
261 | 267 | ); |
268 | + } |
|
262 | 269 | |
263 | 270 | $alg = DigitalSignatures_MACs_Registry::getInstance()->get($original_alg); |
264 | 271 | |
265 | - if(is_null($alg)) |
|
266 | - throw new JWSNotSupportedAlgorithm(sprintf('algo %s', $original_alg)); |
|
272 | + if(is_null($alg)) { |
|
273 | + throw new JWSNotSupportedAlgorithm(sprintf('algo %s', $original_alg)); |
|
274 | + } |
|
267 | 275 | |
268 | 276 | $former_alg = $this->header->getAlgorithm()->getString(); |
269 | 277 | |
270 | - if($former_alg != $original_alg) |
|
271 | - throw new JWSNotSupportedAlgorithm |
|
278 | + if($former_alg != $original_alg) { |
|
279 | + throw new JWSNotSupportedAlgorithm |
|
272 | 280 | ( |
273 | 281 | sprintf |
274 | 282 | ( |
@@ -277,9 +285,10 @@ discard block |
||
277 | 285 | $original_alg |
278 | 286 | ) |
279 | 287 | ); |
288 | + } |
|
280 | 289 | |
281 | - if($this->jwk->getAlgorithm()->getValue() !== $original_alg) |
|
282 | - throw new InvalidJWKAlgorithm |
|
290 | + if($this->jwk->getAlgorithm()->getValue() !== $original_alg) { |
|
291 | + throw new InvalidJWKAlgorithm |
|
283 | 292 | ( |
284 | 293 | sprintf |
285 | 294 | ( |
@@ -288,6 +297,7 @@ discard block |
||
288 | 297 | $original_alg |
289 | 298 | ) |
290 | 299 | ); |
300 | + } |
|
291 | 301 | |
292 | 302 | $secured_input_bytes = JOSEHeaderSerializer::serialize($this->header) . IBasicJWT::SegmentSeparator .$this->getEncodedPayload(); |
293 | 303 |
@@ -37,8 +37,9 @@ discard block |
||
37 | 37 | */ |
38 | 38 | public function digest(SharedKey $key, $message){ |
39 | 39 | |
40 | - if($this->getMinKeyLen() > $key->getBitLength()) |
|
41 | - throw new InvalidKeyLengthAlgorithmException(sprintf('min len %s - cur len %s.',$this->getMinKeyLen(), $key->getBitLength())); |
|
40 | + if($this->getMinKeyLen() > $key->getBitLength()) { |
|
41 | + throw new InvalidKeyLengthAlgorithmException(sprintf('min len %s - cur len %s.',$this->getMinKeyLen(), $key->getBitLength())); |
|
42 | + } |
|
42 | 43 | |
43 | 44 | return hash_hmac($this->getHashingAlgorithm(), $message, $key->getSecret(), true); |
44 | 45 | } |
@@ -52,7 +53,9 @@ discard block |
||
52 | 53 | * @throws InvalidKeyTypeAlgorithmException |
53 | 54 | */ |
54 | 55 | public function verify(Key $key, $message, $digest){ |
55 | - if(!($key instanceof SharedKey)) throw new InvalidKeyTypeAlgorithmException; |
|
56 | + if(!($key instanceof SharedKey)) { |
|
57 | + throw new InvalidKeyTypeAlgorithmException; |
|
58 | + } |
|
56 | 59 | |
57 | 60 | return $digest === $this->digest($key, $message); |
58 | 61 | } |
@@ -68,7 +68,9 @@ |
||
68 | 68 | * @return null|ContentEncryptionAlgorithm |
69 | 69 | */ |
70 | 70 | public function get($alg) { |
71 | - if (!$this->isSupported($alg)) return null; |
|
71 | + if (!$this->isSupported($alg)) { |
|
72 | + return null; |
|
73 | + } |
|
72 | 74 | return $this->algorithms[$alg]; |
73 | 75 | } |
74 | 76 | } |
75 | 77 | \ No newline at end of file |
@@ -45,14 +45,19 @@ discard block |
||
45 | 45 | */ |
46 | 46 | public function sign(PrivateKey $private_key, $message) |
47 | 47 | { |
48 | - if(!($private_key instanceof RSAPrivateKey)) throw new InvalidKeyTypeAlgorithmException; |
|
48 | + if(!($private_key instanceof RSAPrivateKey)) { |
|
49 | + throw new InvalidKeyTypeAlgorithmException; |
|
50 | + } |
|
49 | 51 | |
50 | - if($this->getMinKeyLen() > $private_key->getBitLength()) |
|
51 | - throw new InvalidKeyLengthAlgorithmException(sprintf('min len %s - cur len %s.',$this->getMinKeyLen(), $private_key->getBitLength())); |
|
52 | + if($this->getMinKeyLen() > $private_key->getBitLength()) { |
|
53 | + throw new InvalidKeyLengthAlgorithmException(sprintf('min len %s - cur len %s.',$this->getMinKeyLen(), $private_key->getBitLength())); |
|
54 | + } |
|
52 | 55 | |
53 | 56 | $res = $this->rsa_impl->loadKey($private_key->getEncoded()); |
54 | 57 | |
55 | - if(!$res) throw new InvalidKeyTypeAlgorithmException; |
|
58 | + if(!$res) { |
|
59 | + throw new InvalidKeyTypeAlgorithmException; |
|
60 | + } |
|
56 | 61 | |
57 | 62 | $this->rsa_impl->setHash($this->getHashingAlgorithm()); |
58 | 63 | $this->rsa_impl->setMGFHash($this->getHashingAlgorithm()); |
@@ -70,14 +75,19 @@ discard block |
||
70 | 75 | */ |
71 | 76 | public function verify(Key $key, $message, $signature) |
72 | 77 | { |
73 | - if(!($key instanceof RSAPublicKey)) throw new InvalidKeyTypeAlgorithmException; |
|
78 | + if(!($key instanceof RSAPublicKey)) { |
|
79 | + throw new InvalidKeyTypeAlgorithmException; |
|
80 | + } |
|
74 | 81 | |
75 | - if($this->getMinKeyLen() > $key->getBitLength()) |
|
76 | - throw new InvalidKeyLengthAlgorithmException(sprintf('min len %s - cur len %s.',$this->getMinKeyLen(), $key->getBitLength())); |
|
82 | + if($this->getMinKeyLen() > $key->getBitLength()) { |
|
83 | + throw new InvalidKeyLengthAlgorithmException(sprintf('min len %s - cur len %s.',$this->getMinKeyLen(), $key->getBitLength())); |
|
84 | + } |
|
77 | 85 | |
78 | 86 | $res = $this->rsa_impl->loadKey($key->getEncoded()); |
79 | 87 | |
80 | - if(!$res) throw new InvalidKeyTypeAlgorithmException; |
|
88 | + if(!$res) { |
|
89 | + throw new InvalidKeyTypeAlgorithmException; |
|
90 | + } |
|
81 | 91 | |
82 | 92 | $this->rsa_impl->setHash($this->getHashingAlgorithm()); |
83 | 93 | $this->rsa_impl->setMGFHash($this->getHashingAlgorithm()); |
@@ -47,19 +47,23 @@ discard block |
||
47 | 47 | */ |
48 | 48 | public function encrypt(Key $key, $message) |
49 | 49 | { |
50 | - if(!($key instanceof RSAPublicKey)) |
|
51 | - throw new InvalidKeyTypeAlgorithmException('key is not public'); |
|
50 | + if(!($key instanceof RSAPublicKey)) { |
|
51 | + throw new InvalidKeyTypeAlgorithmException('key is not public'); |
|
52 | + } |
|
52 | 53 | |
53 | - if($key->getFormat() !== 'PKCS8') |
|
54 | - throw new InvalidKeyTypeAlgorithmException('keys is not on PKCS1 format'); |
|
54 | + if($key->getFormat() !== 'PKCS8') { |
|
55 | + throw new InvalidKeyTypeAlgorithmException('keys is not on PKCS1 format'); |
|
56 | + } |
|
55 | 57 | |
56 | 58 | $res = $this->rsa_impl->loadKey($key->getEncoded()); |
57 | 59 | |
58 | - if(!$res) |
|
59 | - throw new InvalidKeyTypeAlgorithmException('could not parse the key'); |
|
60 | + if(!$res) { |
|
61 | + throw new InvalidKeyTypeAlgorithmException('could not parse the key'); |
|
62 | + } |
|
60 | 63 | |
61 | - if($this->rsa_impl->getSize() < $this->getMinKeyLen()) |
|
62 | - throw new InvalidKeyTypeAlgorithmException('len is invalid'); |
|
64 | + if($this->rsa_impl->getSize() < $this->getMinKeyLen()) { |
|
65 | + throw new InvalidKeyTypeAlgorithmException('len is invalid'); |
|
66 | + } |
|
63 | 67 | |
64 | 68 | return $this->rsa_impl->encrypt($message); |
65 | 69 | } |
@@ -72,20 +76,24 @@ discard block |
||
72 | 76 | */ |
73 | 77 | public function decrypt(Key $key, $enc_message){ |
74 | 78 | |
75 | - if(!($key instanceof RSAPrivateKey)) |
|
76 | - throw new InvalidKeyTypeAlgorithmException('key is not private'); |
|
79 | + if(!($key instanceof RSAPrivateKey)) { |
|
80 | + throw new InvalidKeyTypeAlgorithmException('key is not private'); |
|
81 | + } |
|
77 | 82 | |
78 | 83 | |
79 | - if($key->getFormat() !== 'PKCS1') |
|
80 | - throw new InvalidKeyTypeAlgorithmException('keys is not on PKCS1 format'); |
|
84 | + if($key->getFormat() !== 'PKCS1') { |
|
85 | + throw new InvalidKeyTypeAlgorithmException('keys is not on PKCS1 format'); |
|
86 | + } |
|
81 | 87 | |
82 | 88 | $res = $this->rsa_impl->loadKey($key->getEncoded()); |
83 | 89 | |
84 | - if(!$res) |
|
85 | - throw new InvalidKeyTypeAlgorithmException('could not parse the key'); |
|
90 | + if(!$res) { |
|
91 | + throw new InvalidKeyTypeAlgorithmException('could not parse the key'); |
|
92 | + } |
|
86 | 93 | |
87 | - if($this->rsa_impl->getSize() < $this->getMinKeyLen()) |
|
88 | - throw new InvalidKeyTypeAlgorithmException('len is invalid'); |
|
94 | + if($this->rsa_impl->getSize() < $this->getMinKeyLen()) { |
|
95 | + throw new InvalidKeyTypeAlgorithmException('len is invalid'); |
|
96 | + } |
|
89 | 97 | |
90 | 98 | return $this->rsa_impl->decrypt($enc_message); |
91 | 99 | } |
@@ -60,8 +60,9 @@ discard block |
||
60 | 60 | { |
61 | 61 | $key_len = strlen($key); |
62 | 62 | |
63 | - if($this->getMinKeyLen() > ByteUtil::bitLength($key_len)) |
|
64 | - throw new InvalidKeyLengthAlgorithmException; |
|
63 | + if($this->getMinKeyLen() > ByteUtil::bitLength($key_len)) { |
|
64 | + throw new InvalidKeyLengthAlgorithmException; |
|
65 | + } |
|
65 | 66 | |
66 | 67 | $enc_key_len = $key_len / 2; |
67 | 68 | // ENC_KEY = final ENC_KEY_LEN octets of K |
@@ -133,8 +134,9 @@ discard block |
||
133 | 134 | */ |
134 | 135 | public function decrypt($cypher_text, $key, $iv, $aad, $tag) |
135 | 136 | { |
136 | - if(!$this->checkAuthenticationTag($cypher_text, $key, $iv, $aad, $tag)) |
|
137 | - throw new InvalidAuthenticationTagException; |
|
137 | + if(!$this->checkAuthenticationTag($cypher_text, $key, $iv, $aad, $tag)) { |
|
138 | + throw new InvalidAuthenticationTagException; |
|
139 | + } |
|
138 | 140 | |
139 | 141 | $enc_key_len = strlen($key) / 2; |
140 | 142 | // ENC_KEY = final ENC_KEY_LEN octets of K |
@@ -108,9 +108,13 @@ |
||
108 | 108 | { |
109 | 109 | $now = new \DateTime(); |
110 | 110 | $exp = $this->getClaimSet()->getExpirationTime()->getDateTime(); |
111 | - if($exp < $now) return true; |
|
111 | + if($exp < $now) { |
|
112 | + return true; |
|
113 | + } |
|
112 | 114 | $iat = $this->getClaimSet()->getIssuedAt()->getDateTime(); |
113 | - if($iat > $now) return true; |
|
115 | + if($iat > $now) { |
|
116 | + return true; |
|
117 | + } |
|
114 | 118 | $diff = $now->getTimestamp() - $iat->getTimestamp(); |
115 | 119 | return $diff > $tolerance; |
116 | 120 | } |
@@ -50,8 +50,9 @@ |
||
50 | 50 | |
51 | 51 | $e_parts = explode(IBasicJWT::SegmentSeparator, $input); |
52 | 52 | |
53 | - if(count($e_parts) < 2) |
|
54 | - throw new InvalidJWTException(sprintf('%s has only 2 or less encoded parts!')); |
|
53 | + if(count($e_parts) < 2) { |
|
54 | + throw new InvalidJWTException(sprintf('%s has only 2 or less encoded parts!')); |
|
55 | + } |
|
55 | 56 | $e_header = $e_parts[0]; |
56 | 57 | $e_payload = $e_parts[1]; |
57 | 58 | $e_signature = count($e_parts)>2 ? $e_parts[2] : ''; |
@@ -123,8 +123,9 @@ |
||
123 | 123 | */ |
124 | 124 | public function addClaim(JWTClaim $claim) |
125 | 125 | { |
126 | - if (isset($this->set[$claim->getName()])) |
|
127 | - throw new ClaimAlreadyExistsException($claim->getName()); |
|
126 | + if (isset($this->set[$claim->getName()])) { |
|
127 | + throw new ClaimAlreadyExistsException($claim->getName()); |
|
128 | + } |
|
128 | 129 | |
129 | 130 | $this->set[$claim->getName()] = $claim->getValue(); |
130 | 131 | } |