| Conditions | 1 |
| Paths | 1 |
| Total Lines | 82 |
| Code Lines | 62 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 38 | public function testPBES2_HS512_A256KWAndA128CBC_HS256Encryption() |
||
| 39 | { |
||
| 40 | $expected_payload = ['keys' => [ |
||
| 41 | [ |
||
| 42 | 'kty' => 'oct', |
||
| 43 | 'kid' => '77c7e2b8-6e13-45cf-8672-617b5b45243a', |
||
| 44 | 'use' => 'enc', |
||
| 45 | 'alg' => 'A128GCM', |
||
| 46 | 'k' => 'XctOhJAkA-pD9Lh7ZgW_2A', |
||
| 47 | ], [ |
||
| 48 | 'kty' => 'oct', |
||
| 49 | 'kid' => '81b20965-8332-43d9-a468-82160ad91ac8', |
||
| 50 | 'use' => 'enc', |
||
| 51 | 'alg' => 'A128KW', |
||
| 52 | 'k' => 'GZy6sIZ6wl9NJOKB-jnmVQ', |
||
| 53 | ], [ |
||
| 54 | 'kty' => 'oct', |
||
| 55 | 'kid' => '18ec08e1-bfa9-4d95-b205-2b4dd1d4321d', |
||
| 56 | 'use' => 'enc', |
||
| 57 | 'alg' => 'A256GCMKW', |
||
| 58 | 'k' => 'qC57l_uxcm7Nm3K-ct4GFjx8tM1U8CZ0NLBvdQstiS8', |
||
| 59 | ], |
||
| 60 | ]]; |
||
| 61 | |||
| 62 | $private_key = JWK::create([ |
||
| 63 | 'kty' => 'oct', |
||
| 64 | 'use' => 'enc', |
||
| 65 | 'k' => Base64Url::encode("entrap_o\xe2\x80\x93peter_long\xe2\x80\x93credit_tun"), |
||
| 66 | ]); |
||
| 67 | |||
| 68 | $protected_headers = [ |
||
| 69 | 'alg' => 'PBES2-HS512+A256KW', |
||
| 70 | 'p2s' => '8Q1SzinasR3xchYz6ZZcHA', |
||
| 71 | 'p2c' => 8192, |
||
| 72 | 'cty' => 'jwk-set+json', |
||
| 73 | 'enc' => 'A128CBC-HS256', |
||
| 74 | ]; |
||
| 75 | |||
| 76 | $expected_compact_json = 'eyJhbGciOiJQQkVTMi1IUzUxMitBMjU2S1ciLCJwMnMiOiI4UTFTemluYXNSM3hjaFl6NlpaY0hBIiwicDJjIjo4MTkyLCJjdHkiOiJqd2stc2V0K2pzb24iLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0.d3qNhUWfqheyPp4H8sjOWsDYajoej4c5Je6rlUtFPWdgtURtmeDV1g.VBiCzVHNoLiR3F4V82uoTQ.23i-Tb1AV4n0WKVSSgcQrdg6GRqsUKxjruHXYsTHAJLZ2nsnGIX86vMXqIi6IRsfywCRFzLxEcZBRnTvG3nhzPk0GDD7FMyXhUHpDjEYCNA_XOmzg8yZR9oyjo6lTF6si4q9FZ2EhzgFQCLO_6h5EVg3vR75_hkBsnuoqoM3dwejXBtIodN84PeqMb6asmas_dpSsz7H10fC5ni9xIz424givB1YLldF6exVmL93R3fOoOJbmk2GBQZL_SEGllv2cQsBgeprARsaQ7Bq99tT80coH8ItBjgV08AtzXFFsx9qKvC982KLKdPQMTlVJKkqtV4Ru5LEVpBZXBnZrtViSOgyg6AiuwaS-rCrcD_ePOGSuxvgtrokAKYPqmXUeRdjFJwafkYEkiuDCV9vWGAi1DH2xTafhJwcmywIyzi4BqRpmdn_N-zl5tuJYyuvKhjKv6ihbsV_k1hJGPGAxJ6wUpmwC4PTQ2izEm0TuSE8oMKdTw8V3kobXZ77ulMwDs4p.0HlwodAhOCILG5SQ2LQ9dg'; |
||
| 77 | $expected_flattened_json = '{"protected":"eyJhbGciOiJQQkVTMi1IUzUxMitBMjU2S1ciLCJwMnMiOiI4UTFTemluYXNSM3hjaFl6NlpaY0hBIiwicDJjIjo4MTkyLCJjdHkiOiJqd2stc2V0K2pzb24iLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0","encrypted_key":"d3qNhUWfqheyPp4H8sjOWsDYajoej4c5Je6rlUtFPWdgtURtmeDV1g","iv":"VBiCzVHNoLiR3F4V82uoTQ","ciphertext":"23i-Tb1AV4n0WKVSSgcQrdg6GRqsUKxjruHXYsTHAJLZ2nsnGIX86vMXqIi6IRsfywCRFzLxEcZBRnTvG3nhzPk0GDD7FMyXhUHpDjEYCNA_XOmzg8yZR9oyjo6lTF6si4q9FZ2EhzgFQCLO_6h5EVg3vR75_hkBsnuoqoM3dwejXBtIodN84PeqMb6asmas_dpSsz7H10fC5ni9xIz424givB1YLldF6exVmL93R3fOoOJbmk2GBQZL_SEGllv2cQsBgeprARsaQ7Bq99tT80coH8ItBjgV08AtzXFFsx9qKvC982KLKdPQMTlVJKkqtV4Ru5LEVpBZXBnZrtViSOgyg6AiuwaS-rCrcD_ePOGSuxvgtrokAKYPqmXUeRdjFJwafkYEkiuDCV9vWGAi1DH2xTafhJwcmywIyzi4BqRpmdn_N-zl5tuJYyuvKhjKv6ihbsV_k1hJGPGAxJ6wUpmwC4PTQ2izEm0TuSE8oMKdTw8V3kobXZ77ulMwDs4p","tag":"0HlwodAhOCILG5SQ2LQ9dg"}'; |
||
| 78 | $expected_json = '{"recipients":[{"encrypted_key":"d3qNhUWfqheyPp4H8sjOWsDYajoej4c5Je6rlUtFPWdgtURtmeDV1g"}],"protected":"eyJhbGciOiJQQkVTMi1IUzUxMitBMjU2S1ciLCJwMnMiOiI4UTFTemluYXNSM3hjaFl6NlpaY0hBIiwicDJjIjo4MTkyLCJjdHkiOiJqd2stc2V0K2pzb24iLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0","iv":"VBiCzVHNoLiR3F4V82uoTQ","ciphertext":"23i-Tb1AV4n0WKVSSgcQrdg6GRqsUKxjruHXYsTHAJLZ2nsnGIX86vMXqIi6IRsfywCRFzLxEcZBRnTvG3nhzPk0GDD7FMyXhUHpDjEYCNA_XOmzg8yZR9oyjo6lTF6si4q9FZ2EhzgFQCLO_6h5EVg3vR75_hkBsnuoqoM3dwejXBtIodN84PeqMb6asmas_dpSsz7H10fC5ni9xIz424givB1YLldF6exVmL93R3fOoOJbmk2GBQZL_SEGllv2cQsBgeprARsaQ7Bq99tT80coH8ItBjgV08AtzXFFsx9qKvC982KLKdPQMTlVJKkqtV4Ru5LEVpBZXBnZrtViSOgyg6AiuwaS-rCrcD_ePOGSuxvgtrokAKYPqmXUeRdjFJwafkYEkiuDCV9vWGAi1DH2xTafhJwcmywIyzi4BqRpmdn_N-zl5tuJYyuvKhjKv6ihbsV_k1hJGPGAxJ6wUpmwC4PTQ2izEm0TuSE8oMKdTw8V3kobXZ77ulMwDs4p","tag":"0HlwodAhOCILG5SQ2LQ9dg"}'; |
||
| 79 | $expected_iv = 'VBiCzVHNoLiR3F4V82uoTQ'; |
||
| 80 | $expected_encrypted_key = 'd3qNhUWfqheyPp4H8sjOWsDYajoej4c5Je6rlUtFPWdgtURtmeDV1g'; |
||
| 81 | $expected_ciphertext = '23i-Tb1AV4n0WKVSSgcQrdg6GRqsUKxjruHXYsTHAJLZ2nsnGIX86vMXqIi6IRsfywCRFzLxEcZBRnTvG3nhzPk0GDD7FMyXhUHpDjEYCNA_XOmzg8yZR9oyjo6lTF6si4q9FZ2EhzgFQCLO_6h5EVg3vR75_hkBsnuoqoM3dwejXBtIodN84PeqMb6asmas_dpSsz7H10fC5ni9xIz424givB1YLldF6exVmL93R3fOoOJbmk2GBQZL_SEGllv2cQsBgeprARsaQ7Bq99tT80coH8ItBjgV08AtzXFFsx9qKvC982KLKdPQMTlVJKkqtV4Ru5LEVpBZXBnZrtViSOgyg6AiuwaS-rCrcD_ePOGSuxvgtrokAKYPqmXUeRdjFJwafkYEkiuDCV9vWGAi1DH2xTafhJwcmywIyzi4BqRpmdn_N-zl5tuJYyuvKhjKv6ihbsV_k1hJGPGAxJ6wUpmwC4PTQ2izEm0TuSE8oMKdTw8V3kobXZ77ulMwDs4p'; |
||
| 82 | $expected_tag = '0HlwodAhOCILG5SQ2LQ9dg'; |
||
| 83 | |||
| 84 | $keyEncryptionAlgorithmManager = JWAManager::create([new PBES2HS512A256KW()]); |
||
| 85 | $contentEncryptionAlgorithmManager = JWAManager::create([new A128CBCHS256()]); |
||
| 86 | $compressionManager = CompressionMethodsManager::create([new Deflate()]); |
||
| 87 | $decrypter = new Decrypter($keyEncryptionAlgorithmManager, $contentEncryptionAlgorithmManager, $compressionManager); |
||
| 88 | |||
| 89 | $loaded_compact_json = JWELoader::load($expected_compact_json); |
||
| 90 | $loaded_compact_json = $decrypter->decryptUsingKey($loaded_compact_json, $private_key); |
||
| 91 | |||
| 92 | $loaded_flattened_json = JWELoader::load($expected_flattened_json); |
||
| 93 | $loaded_flattened_json = $decrypter->decryptUsingKey($loaded_flattened_json, $private_key); |
||
| 94 | |||
| 95 | $loaded_json = JWELoader::load($expected_json); |
||
| 96 | $loaded_json = $decrypter->decryptUsingKey($loaded_json, $private_key); |
||
| 97 | |||
| 98 | $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); |
||
| 99 | $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); |
||
| 100 | $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); |
||
| 101 | $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); |
||
| 102 | $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); |
||
| 103 | |||
| 104 | $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); |
||
| 105 | $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); |
||
| 106 | $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); |
||
| 107 | $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); |
||
| 108 | $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); |
||
| 109 | |||
| 110 | $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); |
||
| 111 | $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); |
||
| 112 | $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); |
||
| 113 | $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); |
||
| 114 | $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); |
||
| 115 | |||
| 116 | $this->assertEquals($expected_payload, json_decode($loaded_compact_json->getPayload(), true)); |
||
| 117 | $this->assertEquals($expected_payload, json_decode($loaded_flattened_json->getPayload(), true)); |
||
| 118 | $this->assertEquals($expected_payload, json_decode($loaded_json->getPayload(), true)); |
||
| 119 | } |
||
| 120 | |||
| 188 |