Completed
Push — master ( 16bc05...356550 )
by sebastian
03:03
created
src/jwe/impl/JWE.php 3 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -1,16 +1,16 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * Copyright 2015 OpenStack Foundation
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- * http://www.apache.org/licenses/LICENSE-2.0
8
- * Unless required by applicable law or agreed to in writing, software
9
- * distributed under the License is distributed on an "AS IS" BASIS,
10
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
- * See the License for the specific language governing permissions and
12
- * limitations under the License.
13
- **/
3
+     * Copyright 2015 OpenStack Foundation
4
+     * Licensed under the Apache License, Version 2.0 (the "License");
5
+     * you may not use this file except in compliance with the License.
6
+     * You may obtain a copy of the License at
7
+     * http://www.apache.org/licenses/LICENSE-2.0
8
+     * Unless required by applicable law or agreed to in writing, software
9
+     * distributed under the License is distributed on an "AS IS" BASIS,
10
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+     * See the License for the specific language governing permissions and
12
+     * limitations under the License.
13
+     **/
14 14
 
15 15
 namespace jwk;
16 16
 
Please login to merge, or discard this patch.
Spacing   +40 added lines, -60 removed lines patch added patch discarded remove patch
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
     protected function __construct(IJWEJOSEHeader $header, IJWSPayloadSpec $payload = null)
98 98
     {
99 99
         $this->header = $header;
100
-        if(!is_null($payload))
100
+        if (!is_null($payload))
101 101
             $this->setPayload($payload);
102 102
     }
103 103
 
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
         if (is_null($this->payload))
158 158
             $this->payload = JWSPayloadFactory::build('');
159 159
 
160
-        return ($this->payload instanceof IJWSPayloadRawSpec) ? $this->payload->getRaw():'';
160
+        return ($this->payload instanceof IJWSPayloadRawSpec) ? $this->payload->getRaw() : '';
161 161
     }
162 162
 
163 163
     /**
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
          * the result be the JWE Encrypted Key.
183 183
          */
184 184
          $key_management_mode = $this->getKeyManagementMode($alg);
185
-         switch($key_management_mode){
185
+         switch ($key_management_mode) {
186 186
              case KeyManagementModeValues::KeyEncryption:
187 187
              case KeyManagementModeValues::KeyWrapping:
188 188
              case KeyManagementModeValues::KeyAgreementWithKeyWrapping:
@@ -208,15 +208,15 @@  discard block
 block discarded – undo
208 208
      */
209 209
     private function getKeyManagementMode(EncryptionAlgorithm $alg)
210 210
     {
211
-        if($alg instanceof KeyEncryption)
211
+        if ($alg instanceof KeyEncryption)
212 212
             return KeyManagementModeValues::KeyEncryption;
213
-        if($alg instanceof KeyWrapping)
213
+        if ($alg instanceof KeyWrapping)
214 214
             return KeyManagementModeValues::KeyWrapping;
215
-        if($alg instanceof DirectKeyAgreement)
215
+        if ($alg instanceof DirectKeyAgreement)
216 216
             return KeyManagementModeValues::DirectKeyAgreement;
217
-        if($alg instanceof KeyAgreementWithKeyWrapping)
217
+        if ($alg instanceof KeyAgreementWithKeyWrapping)
218 218
             return KeyManagementModeValues::KeyAgreementWithKeyWrapping;
219
-        if($alg instanceof DirectEncryption)
219
+        if ($alg instanceof DirectEncryption)
220 220
             return KeyManagementModeValues::DirectEncryption;
221 221
     }
222 222
 
@@ -235,11 +235,9 @@  discard block
 block discarded – undo
235 235
         if (is_null($this->jwk))
236 236
             throw new JWEInvalidRecipientKeyException;
237 237
 
238
-        if($this->jwk->getAlgorithm()->getValue()!== $this->header->getAlgorithm()->getString())
239
-            throw new InvalidJWKAlgorithm
240
-            (
241
-                sprintf
242
-                (
238
+        if ($this->jwk->getAlgorithm()->getValue() !== $this->header->getAlgorithm()->getString())
239
+            throw new InvalidJWKAlgorithm(
240
+                sprintf(
243 241
                     'mismatch between algorithm intended for use with the key %s and the cryptographic algorithm used to encrypt or determine the value of the CEK %s',
244 242
                     $this->jwk->getAlgorithm()->getValue(),
245 243
                     $this->header->getAlgorithm()->getString()
@@ -253,27 +251,22 @@  discard block
 block discarded – undo
253 251
         if (is_null($key_management_algorithm))
254 252
             throw new JWEUnsupportedKeyManagementAlgorithmException(sprintf('alg %s', $this->header->getAlgorithm()->getString()));
255 253
 
256
-        if($key_management_algorithm->getKeyType() !== $recipient_public_key->getAlgorithm())
257
-            throw new InvalidKeyTypeAlgorithmException
258
-            (
259
-                sprintf
260
-                (
254
+        if ($key_management_algorithm->getKeyType() !== $recipient_public_key->getAlgorithm())
255
+            throw new InvalidKeyTypeAlgorithmException(
256
+                sprintf(
261 257
                     'key should be for alg %s, %s instead.',
262 258
                     $key_management_algorithm->getKeyType(),
263 259
                     $recipient_public_key->getAlgorithm()
264 260
                 )
265 261
             );
266 262
 
267
-        $content_encryption_algorithm = ContentEncryptionAlgorithms_Registry::getInstance()->get
268
-        (
263
+        $content_encryption_algorithm = ContentEncryptionAlgorithms_Registry::getInstance()->get(
269 264
             $this->header->getEncryptionAlgorithm()->getString()
270 265
         );
271 266
 
272 267
         if (is_null($content_encryption_algorithm))
273
-            throw new JWEUnsupportedContentEncryptionAlgorithmException
274
-            (
275
-                sprintf
276
-                (
268
+            throw new JWEUnsupportedContentEncryptionAlgorithmException(
269
+                sprintf(
277 270
                     'enc %s',
278 271
                     $this->header->getEncryptionAlgorithm()->getString()
279 272
                 )
@@ -281,8 +274,7 @@  discard block
 block discarded – undo
281 274
 
282 275
         $key_management_mode = $this->getKeyManagementMode($key_management_algorithm);
283 276
 
284
-        $this->cek     = ContentEncryptionKeyFactory::build
285
-        (
277
+        $this->cek = ContentEncryptionKeyFactory::build(
286 278
             $recipient_public_key,
287 279
             $key_management_mode,
288 280
             $content_encryption_algorithm
@@ -296,7 +288,7 @@  discard block
 block discarded – undo
296 288
          * algorithm); otherwise, let the JWE Initialization Vector be the
297 289
          * empty octet sequence.
298 290
          */
299
-        $this->iv      = '';
291
+        $this->iv = '';
300 292
 
301 293
         if (!is_null($iv_size = $content_encryption_algorithm->getIVSize()))
302 294
         {
@@ -305,7 +297,7 @@  discard block
 block discarded – undo
305 297
         // We encrypt the payload and get the tag
306 298
         $jwt_shared_protected_header = JOSEHeaderSerializer::serialize($this->header);
307 299
 
308
-        $payload = ($this->payload instanceof IJWSPayloadRawSpec) ? $this->payload->getRaw():'';
300
+        $payload = ($this->payload instanceof IJWSPayloadRawSpec) ? $this->payload->getRaw() : '';
309 301
         $zip     = $this->header->getCompressionAlgorithm();
310 302
         /**
311 303
          * If a "zip" parameter was included, compress the plaintext using
@@ -313,10 +305,10 @@  discard block
 block discarded – undo
313 305
          * sequence representing the compressed plaintext; otherwise, let M
314 306
          * be the octet sequence representing the plaintext.
315 307
          */
316
-        if(!is_null($zip))
308
+        if (!is_null($zip))
317 309
         {
318 310
             $compression__algorithm = CompressionAlgorithms_Registry::getInstance()->get($zip->getValue());
319
-            $payload  = $compression__algorithm->compress($payload);
311
+            $payload = $compression__algorithm->compress($payload);
320 312
         }
321 313
 
322 314
         /**
@@ -326,8 +318,7 @@  discard block
 block discarded – undo
326 318
          * JWE Authentication Tag (which is the Authentication Tag output
327 319
          * from the encryption operation).
328 320
          */
329
-        list($this->cipher_text, $this->tag) = $content_encryption_algorithm->encrypt
330
-        (
321
+        list($this->cipher_text, $this->tag) = $content_encryption_algorithm->encrypt(
331 322
             $payload,
332 323
             $this->cek->getEncoded(),
333 324
             $this->iv,
@@ -345,23 +336,21 @@  discard block
 block discarded – undo
345 336
      * @throws InvalidKeyTypeAlgorithmException
346 337
      * @throws \Exception
347 338
      */
348
-    private function decryptJWEEncryptedKey(EncryptionAlgorithm $alg){
339
+    private function decryptJWEEncryptedKey(EncryptionAlgorithm $alg) {
349 340
 
350 341
         $key_management_mode   = $this->getKeyManagementMode($alg);
351 342
         $recipient_private_key = $this->jwk->getKey(JSONWebKeyKeyOperationsValues::DecryptContentAndValidateDecryption);
352 343
 
353
-        if($alg->getKeyType() !== $recipient_private_key->getAlgorithm())
354
-            throw new InvalidKeyTypeAlgorithmException
355
-            (
356
-                sprintf
357
-                (
344
+        if ($alg->getKeyType() !== $recipient_private_key->getAlgorithm())
345
+            throw new InvalidKeyTypeAlgorithmException(
346
+                sprintf(
358 347
                     'key should be for alg %s, %s instead.',
359 348
                     $alg->getKeyType(),
360 349
                     $recipient_private_key->getAlgorithm()
361 350
                 )
362 351
             );
363 352
 
364
-        switch($key_management_mode){
353
+        switch ($key_management_mode) {
365 354
             /**
366 355
              * When Key Wrapping, Key Encryption, or Key Agreement with Key
367 356
              * Wrapping are employed, decrypt the JWE Encrypted Key to produce
@@ -414,42 +403,34 @@  discard block
 block discarded – undo
414 403
 
415 404
         if (!$this->should_decrypt) return $this;
416 405
 
417
-        if($this->jwk->getAlgorithm()->getValue()!== $this->header->getAlgorithm()->getString())
418
-            throw new InvalidJWKAlgorithm
419
-            (
420
-                sprintf
421
-                (
406
+        if ($this->jwk->getAlgorithm()->getValue() !== $this->header->getAlgorithm()->getString())
407
+            throw new InvalidJWKAlgorithm(
408
+                sprintf(
422 409
                     'mismatch between algorithm intended for use with the key %s and the cryptographic algorithm used to encrypt or determine the value of the CEK %s',
423 410
                     $this->jwk->getAlgorithm()->getValue(),
424 411
                     $this->header->getAlgorithm()->getString()
425 412
                 )
426 413
             );
427 414
 
428
-        $key_management_algorithm = KeyManagementAlgorithms_Registry::getInstance()->get
429
-        (
415
+        $key_management_algorithm = KeyManagementAlgorithms_Registry::getInstance()->get(
430 416
             $this->header->getAlgorithm()->getString()
431 417
         );
432 418
 
433 419
         if (is_null($key_management_algorithm))
434
-            throw new JWEUnsupportedKeyManagementAlgorithmException
435
-            (
436
-                sprintf
437
-                (
420
+            throw new JWEUnsupportedKeyManagementAlgorithmException(
421
+                sprintf(
438 422
                     'alg %s',
439 423
                     $this->header->getAlgorithm()->getString()
440 424
                 )
441 425
             );
442 426
 
443
-        $content_encryption_algorithm = ContentEncryptionAlgorithms_Registry::getInstance()->get
444
-        (
427
+        $content_encryption_algorithm = ContentEncryptionAlgorithms_Registry::getInstance()->get(
445 428
             $this->header->getEncryptionAlgorithm()->getString()
446 429
         );
447 430
 
448 431
         if (is_null($content_encryption_algorithm))
449
-            throw new JWEUnsupportedContentEncryptionAlgorithmException
450
-            (
451
-                sprintf
452
-                (
432
+            throw new JWEUnsupportedContentEncryptionAlgorithmException(
433
+                sprintf(
453 434
                     'enc %s',
454 435
                     $this->header->getEncryptionAlgorithm()->getString()
455 436
                 )
@@ -470,8 +451,7 @@  discard block
 block discarded – undo
470 451
          * rejecting the input without emitting any decrypted output if the
471 452
          * JWE Authentication Tag is incorrect.
472 453
          */
473
-        $plain_text = $content_encryption_algorithm->decrypt
474
-        (
454
+        $plain_text = $content_encryption_algorithm->decrypt(
475 455
             $this->cipher_text,
476 456
             $this->cek->getEncoded(),
477 457
             $this->iv,
@@ -479,12 +459,12 @@  discard block
 block discarded – undo
479 459
             $this->tag
480 460
         );
481 461
 
482
-        $zip     = $this->header->getCompressionAlgorithm();
462
+        $zip = $this->header->getCompressionAlgorithm();
483 463
         /**
484 464
          * If a "zip" parameter was included, uncompress the decrypted
485 465
          * plaintext using the specified compression algorithm.
486 466
          */
487
-        if(!is_null($zip))
467
+        if (!is_null($zip))
488 468
         {
489 469
             $compression__algorithm = CompressionAlgorithms_Registry::getInstance()->get($zip->getValue());
490 470
             $plain_text = $compression__algorithm->uncompress($plain_text);
Please login to merge, or discard this patch.
Braces   +60 added lines, -39 removed lines patch added patch discarded remove patch
@@ -97,8 +97,9 @@  discard block
 block discarded – undo
97 97
     protected function __construct(IJWEJOSEHeader $header, IJWSPayloadSpec $payload = null)
98 98
     {
99 99
         $this->header = $header;
100
-        if(!is_null($payload))
101
-            $this->setPayload($payload);
100
+        if(!is_null($payload)) {
101
+                    $this->setPayload($payload);
102
+        }
102 103
     }
103 104
 
104 105
     /**
@@ -154,8 +155,9 @@  discard block
 block discarded – undo
154 155
             $this->decrypt();
155 156
         }
156 157
 
157
-        if (is_null($this->payload))
158
-            $this->payload = JWSPayloadFactory::build('');
158
+        if (is_null($this->payload)) {
159
+                    $this->payload = JWSPayloadFactory::build('');
160
+        }
159 161
 
160 162
         return ($this->payload instanceof IJWSPayloadRawSpec) ? $this->payload->getRaw():'';
161 163
     }
@@ -208,16 +210,21 @@  discard block
 block discarded – undo
208 210
      */
209 211
     private function getKeyManagementMode(EncryptionAlgorithm $alg)
210 212
     {
211
-        if($alg instanceof KeyEncryption)
212
-            return KeyManagementModeValues::KeyEncryption;
213
-        if($alg instanceof KeyWrapping)
214
-            return KeyManagementModeValues::KeyWrapping;
215
-        if($alg instanceof DirectKeyAgreement)
216
-            return KeyManagementModeValues::DirectKeyAgreement;
217
-        if($alg instanceof KeyAgreementWithKeyWrapping)
218
-            return KeyManagementModeValues::KeyAgreementWithKeyWrapping;
219
-        if($alg instanceof DirectEncryption)
220
-            return KeyManagementModeValues::DirectEncryption;
213
+        if($alg instanceof KeyEncryption) {
214
+                    return KeyManagementModeValues::KeyEncryption;
215
+        }
216
+        if($alg instanceof KeyWrapping) {
217
+                    return KeyManagementModeValues::KeyWrapping;
218
+        }
219
+        if($alg instanceof DirectKeyAgreement) {
220
+                    return KeyManagementModeValues::DirectKeyAgreement;
221
+        }
222
+        if($alg instanceof KeyAgreementWithKeyWrapping) {
223
+                    return KeyManagementModeValues::KeyAgreementWithKeyWrapping;
224
+        }
225
+        if($alg instanceof DirectEncryption) {
226
+                    return KeyManagementModeValues::DirectEncryption;
227
+        }
221 228
     }
222 229
 
223 230
     /**
@@ -232,11 +239,12 @@  discard block
 block discarded – undo
232 239
     private function encrypt()
233 240
     {
234 241
 
235
-        if (is_null($this->jwk))
236
-            throw new JWEInvalidRecipientKeyException;
242
+        if (is_null($this->jwk)) {
243
+                    throw new JWEInvalidRecipientKeyException;
244
+        }
237 245
 
238
-        if($this->jwk->getAlgorithm()->getValue()!== $this->header->getAlgorithm()->getString())
239
-            throw new InvalidJWKAlgorithm
246
+        if($this->jwk->getAlgorithm()->getValue()!== $this->header->getAlgorithm()->getString()) {
247
+                    throw new InvalidJWKAlgorithm
240 248
             (
241 249
                 sprintf
242 250
                 (
@@ -245,16 +253,18 @@  discard block
 block discarded – undo
245 253
                     $this->header->getAlgorithm()->getString()
246 254
                 )
247 255
             );
256
+        }
248 257
 
249 258
         $recipient_public_key     = $this->jwk->getKey(JSONWebKeyKeyOperationsValues::EncryptContent);
250 259
 
251 260
         $key_management_algorithm = KeyManagementAlgorithms_Registry::getInstance()->get($this->header->getAlgorithm()->getString());
252 261
 
253
-        if (is_null($key_management_algorithm))
254
-            throw new JWEUnsupportedKeyManagementAlgorithmException(sprintf('alg %s', $this->header->getAlgorithm()->getString()));
262
+        if (is_null($key_management_algorithm)) {
263
+                    throw new JWEUnsupportedKeyManagementAlgorithmException(sprintf('alg %s', $this->header->getAlgorithm()->getString()));
264
+        }
255 265
 
256
-        if($key_management_algorithm->getKeyType() !== $recipient_public_key->getAlgorithm())
257
-            throw new InvalidKeyTypeAlgorithmException
266
+        if($key_management_algorithm->getKeyType() !== $recipient_public_key->getAlgorithm()) {
267
+                    throw new InvalidKeyTypeAlgorithmException
258 268
             (
259 269
                 sprintf
260 270
                 (
@@ -263,14 +273,15 @@  discard block
 block discarded – undo
263 273
                     $recipient_public_key->getAlgorithm()
264 274
                 )
265 275
             );
276
+        }
266 277
 
267 278
         $content_encryption_algorithm = ContentEncryptionAlgorithms_Registry::getInstance()->get
268 279
         (
269 280
             $this->header->getEncryptionAlgorithm()->getString()
270 281
         );
271 282
 
272
-        if (is_null($content_encryption_algorithm))
273
-            throw new JWEUnsupportedContentEncryptionAlgorithmException
283
+        if (is_null($content_encryption_algorithm)) {
284
+                    throw new JWEUnsupportedContentEncryptionAlgorithmException
274 285
             (
275 286
                 sprintf
276 287
                 (
@@ -278,6 +289,7 @@  discard block
 block discarded – undo
278 289
                     $this->header->getEncryptionAlgorithm()->getString()
279 290
                 )
280 291
             );
292
+        }
281 293
 
282 294
         $key_management_mode = $this->getKeyManagementMode($key_management_algorithm);
283 295
 
@@ -350,8 +362,8 @@  discard block
 block discarded – undo
350 362
         $key_management_mode   = $this->getKeyManagementMode($alg);
351 363
         $recipient_private_key = $this->jwk->getKey(JSONWebKeyKeyOperationsValues::DecryptContentAndValidateDecryption);
352 364
 
353
-        if($alg->getKeyType() !== $recipient_private_key->getAlgorithm())
354
-            throw new InvalidKeyTypeAlgorithmException
365
+        if($alg->getKeyType() !== $recipient_private_key->getAlgorithm()) {
366
+                    throw new InvalidKeyTypeAlgorithmException
355 367
             (
356 368
                 sprintf
357 369
                 (
@@ -360,6 +372,7 @@  discard block
 block discarded – undo
360 372
                     $recipient_private_key->getAlgorithm()
361 373
                 )
362 374
             );
375
+        }
363 376
 
364 377
         switch($key_management_mode){
365 378
             /**
@@ -383,14 +396,16 @@  discard block
 block discarded – undo
383 396
              */
384 397
             case KeyManagementModeValues::DirectEncryption:
385 398
             {
386
-                if (!empty($this->enc_cek))
387
-                    throw new JWEInvalidCompactFormatException('JWE Encrypted Key value is not an empty octetsequence.');
399
+                if (!empty($this->enc_cek)) {
400
+                                    throw new JWEInvalidCompactFormatException('JWE Encrypted Key value is not an empty octetsequence.');
401
+                }
388 402
                 return $recipient_private_key;
389 403
             }
390 404
             case KeyManagementModeValues::DirectKeyAgreement:
391 405
             {
392
-                if (!empty($this->enc_cek))
393
-                    throw new JWEInvalidCompactFormatException('JWE Encrypted Key value is not an empty octetsequence.');
406
+                if (!empty($this->enc_cek)) {
407
+                                    throw new JWEInvalidCompactFormatException('JWE Encrypted Key value is not an empty octetsequence.');
408
+                }
394 409
                 throw new \Exception('unsupported Key Management Mode!');
395 410
             }
396 411
         }
@@ -409,13 +424,16 @@  discard block
 block discarded – undo
409 424
      */
410 425
     private function decrypt()
411 426
     {
412
-        if (is_null($this->jwk))
413
-            throw new JWEInvalidRecipientKeyException();
427
+        if (is_null($this->jwk)) {
428
+                    throw new JWEInvalidRecipientKeyException();
429
+        }
414 430
 
415
-        if (!$this->should_decrypt) return $this;
431
+        if (!$this->should_decrypt) {
432
+         return $this;
433
+        }
416 434
 
417
-        if($this->jwk->getAlgorithm()->getValue()!== $this->header->getAlgorithm()->getString())
418
-            throw new InvalidJWKAlgorithm
435
+        if($this->jwk->getAlgorithm()->getValue()!== $this->header->getAlgorithm()->getString()) {
436
+                    throw new InvalidJWKAlgorithm
419 437
             (
420 438
                 sprintf
421 439
                 (
@@ -424,14 +442,15 @@  discard block
 block discarded – undo
424 442
                     $this->header->getAlgorithm()->getString()
425 443
                 )
426 444
             );
445
+        }
427 446
 
428 447
         $key_management_algorithm = KeyManagementAlgorithms_Registry::getInstance()->get
429 448
         (
430 449
             $this->header->getAlgorithm()->getString()
431 450
         );
432 451
 
433
-        if (is_null($key_management_algorithm))
434
-            throw new JWEUnsupportedKeyManagementAlgorithmException
452
+        if (is_null($key_management_algorithm)) {
453
+                    throw new JWEUnsupportedKeyManagementAlgorithmException
435 454
             (
436 455
                 sprintf
437 456
                 (
@@ -439,14 +458,15 @@  discard block
 block discarded – undo
439 458
                     $this->header->getAlgorithm()->getString()
440 459
                 )
441 460
             );
461
+        }
442 462
 
443 463
         $content_encryption_algorithm = ContentEncryptionAlgorithms_Registry::getInstance()->get
444 464
         (
445 465
             $this->header->getEncryptionAlgorithm()->getString()
446 466
         );
447 467
 
448
-        if (is_null($content_encryption_algorithm))
449
-            throw new JWEUnsupportedContentEncryptionAlgorithmException
468
+        if (is_null($content_encryption_algorithm)) {
469
+                    throw new JWEUnsupportedContentEncryptionAlgorithmException
450 470
             (
451 471
                 sprintf
452 472
                 (
@@ -454,6 +474,7 @@  discard block
 block discarded – undo
454 474
                     $this->header->getEncryptionAlgorithm()->getString()
455 475
                 )
456 476
             );
477
+        }
457 478
 
458 479
         $this->cek = $this->decryptJWEEncryptedKey($key_management_algorithm);
459 480
 
Please login to merge, or discard this patch.