Skip to content

Commit a202dff

Browse files
authored
Merge pull request #543 from web-token/3.3.x-merge-up-into-4.0.x_JT8er826
Merge release 3.3.3 into 4.0.x
2 parents 5268df5 + baeb621 commit a202dff

File tree

81 files changed

+348
-1572
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+348
-1572
lines changed

ecs.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
declare(strict_types=1);
44

5-
use PhpCsFixer\Fixer\Alias\MbStrFunctionsFixer;
65
use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer;
76
use PhpCsFixer\Fixer\ClassNotation\ProtectedToPrivateFixer;
87
use PhpCsFixer\Fixer\Comment\HeaderCommentFixer;
@@ -30,6 +29,8 @@
3029
use Symplify\EasyCodingStandard\Config\ECSConfig;
3130
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
3231

32+
//use PhpCsFixer\Fixer\Alias\MbStrFunctionsFixer;
33+
3334
return static function (ECSConfig $config): void {
3435
$header = '';
3536
$config->import(SetList::PSR_12);
@@ -53,7 +54,7 @@
5354
$config->rule(ProtectedToPrivateFixer::class);
5455
$config->rule(DeclareStrictTypesFixer::class);
5556
$config->rule(NativeConstantInvocationFixer::class);
56-
$config->rule(MbStrFunctionsFixer::class);
57+
//$config->rule(MbStrFunctionsFixer::class);
5758
$config->rule(LinebreakAfterOpeningTagFixer::class);
5859
$config->rule(CombineConsecutiveIssetsFixer::class);
5960
$config->rule(CombineConsecutiveUnsetsFixer::class);

performance/JWE/EncryptionBench.php

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,14 @@
4646
*/
4747
abstract class EncryptionBench
4848
{
49-
private AlgorithmManager $contentEncryptionAlgorithmsManager;
50-
51-
private AlgorithmManager $keyEncryptionAlgorithmsManager;
52-
53-
private CompressionMethodManager $compressionMethodsManager;
49+
private AlgorithmManager $algorithmsManager;
5450

5551
private JWESerializerManager $serializerManager;
5652

5753
public function init(): void
5854
{
59-
$this->keyEncryptionAlgorithmsManager = new AlgorithmManager([
55+
$this->algorithmsManager = new AlgorithmManager([
56+
// Key Encryption
6057
new A128KW(),
6158
new A192KW(),
6259
new A256KW(),
@@ -74,8 +71,8 @@ public function init(): void
7471
new RSA15(),
7572
new RSAOAEP(),
7673
new RSAOAEP256(),
77-
]);
78-
$this->contentEncryptionAlgorithmsManager = new AlgorithmManager([
74+
75+
// Content Encryption
7976
new A128CBCHS256(),
8077
new A192CBCHS384(),
8178
new A256CBCHS512(),
@@ -97,11 +94,7 @@ public function init(): void
9794
*/
9895
public function encryption(array $params): void
9996
{
100-
$jweBuilder = new JWEBuilder(
101-
$this->getKeyEncryptionAlgorithmsManager(),
102-
$this->getContentEncryptionAlgorithmsManager(),
103-
$this->getCompressionMethodsManager()
104-
);
97+
$jweBuilder = new JWEBuilder($this->getAlgorithmsManager());
10598
$jweBuilder
10699
->withPayload($params['payload'])
107100
->withAAD($this->getAAD())
@@ -118,11 +111,7 @@ public function encryption(array $params): void
118111
*/
119112
public function decryption(array $params): void
120113
{
121-
$jweLoader = new JWEDecrypter(
122-
$this->getKeyEncryptionAlgorithmsManager(),
123-
$this->getContentEncryptionAlgorithmsManager(),
124-
$this->getCompressionMethodsManager()
125-
);
114+
$jweLoader = new JWEDecrypter($this->getAlgorithmsManager());
126115
$jwe = $this->serializerManager->unserialize($params['input']);
127116
$keyset = JWKSet::createFromKeyData($params['recipient_keys']);
128117
$jweLoader->decryptUsingKeySet($jwe, $keyset, 0);
@@ -143,18 +132,8 @@ abstract public function dataRecipientPublicKeys(): array;
143132

144133
abstract protected function getAAD(): ?string;
145134

146-
private function getKeyEncryptionAlgorithmsManager(): AlgorithmManager
147-
{
148-
return $this->keyEncryptionAlgorithmsManager;
149-
}
150-
151-
private function getContentEncryptionAlgorithmsManager(): AlgorithmManager
152-
{
153-
return $this->contentEncryptionAlgorithmsManager;
154-
}
155-
156-
private function getCompressionMethodsManager(): CompressionMethodManager
135+
private function getAlgorithmsManager(): AlgorithmManager
157136
{
158-
return $this->compressionMethodsManager;
137+
return $this->algorithmsManager;
159138
}
160139
}

phpstan-baseline.neon

Lines changed: 68 additions & 98 deletions
Large diffs are not rendered by default.

src/Bundle/DataCollector/JWECollector.php

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use Jose\Bundle\JoseFramework\Event\JWEBuiltSuccessEvent;
99
use Jose\Bundle\JoseFramework\Event\JWEDecryptionFailureEvent;
1010
use Jose\Bundle\JoseFramework\Event\JWEDecryptionSuccessEvent;
11-
use Jose\Component\Encryption\Compression\CompressionMethodManagerFactory;
1211
use Jose\Component\Encryption\JWEBuilder;
1312
use Jose\Component\Encryption\JWEDecrypter;
1413
use Jose\Component\Encryption\JWELoader;
@@ -59,7 +58,6 @@ final class JWECollector implements Collector, EventSubscriberInterface
5958
private array $jweLoaders = [];
6059

6160
public function __construct(
62-
private readonly ?CompressionMethodManagerFactory $compressionMethodManagerFactory = null,
6361
private readonly ?JWESerializerManagerFactory $jweSerializerManagerFactory = null
6462
) {
6563
}
@@ -70,7 +68,6 @@ public function __construct(
7068
#[Override]
7169
public function collect(array &$data, Request $request, Response $response, ?Throwable $exception = null): void
7270
{
73-
$this->collectSupportedCompressionMethods($data);
7471
$this->collectSupportedJWESerializations($data);
7572
$this->collectSupportedJWEBuilders($data);
7673
$this->collectSupportedJWEDecrypters($data);
@@ -128,21 +125,6 @@ public function catchJweBuiltFailure(JWEBuiltFailureEvent $event): void
128125
$this->jweBuiltFailures[] = $cloner->cloneVar($event);
129126
}
130127

131-
/**
132-
* @param array<string, array<string, mixed>> $data
133-
*/
134-
private function collectSupportedCompressionMethods(array &$data): void
135-
{
136-
$data['jwe']['compression_methods'] = [];
137-
if ($this->compressionMethodManagerFactory === null) {
138-
return;
139-
}
140-
$compressionMethods = $this->compressionMethodManagerFactory->all();
141-
foreach ($compressionMethods as $alias => $compressionMethod) {
142-
$data['jwe']['compression_methods'][$alias] = $compressionMethod->name();
143-
}
144-
}
145-
146128
/**
147129
* @param array<string, array<string, mixed>> $data
148130
*/
@@ -166,11 +148,7 @@ private function collectSupportedJWEBuilders(array &$data): void
166148
$data['jwe']['jwe_builders'] = [];
167149
foreach ($this->jweBuilders as $id => $jweBuilder) {
168150
$data['jwe']['jwe_builders'][$id] = [
169-
'key_encryption_algorithms' => $jweBuilder->getKeyEncryptionAlgorithmManager()
170-
->list(),
171-
'content_encryption_algorithms' => $jweBuilder->getContentEncryptionAlgorithmManager()
172-
->list(),
173-
'compression_methods' => $jweBuilder->getCompressionMethodManager()
151+
'encryption_algorithms' => $jweBuilder->getKeyEncryptionAlgorithmManager()
174152
->list(),
175153
];
176154
}
@@ -184,11 +162,7 @@ private function collectSupportedJWEDecrypters(array &$data): void
184162
$data['jwe']['jwe_decrypters'] = [];
185163
foreach ($this->jweDecrypters as $id => $jweDecrypter) {
186164
$data['jwe']['jwe_decrypters'][$id] = [
187-
'key_encryption_algorithms' => $jweDecrypter->getKeyEncryptionAlgorithmManager()
188-
->list(),
189-
'content_encryption_algorithms' => $jweDecrypter->getContentEncryptionAlgorithmManager()
190-
->list(),
191-
'compression_methods' => $jweDecrypter->getCompressionMethodManager()
165+
'encryption_algorithms' => $jweDecrypter->getKeyEncryptionAlgorithmManager()
192166
->list(),
193167
];
194168
}
@@ -204,15 +178,9 @@ private function collectSupportedJWELoaders(array &$data): void
204178
$data['jwe']['jwe_loaders'][$id] = [
205179
'serializers' => $jweLoader->getSerializerManager()
206180
->names(),
207-
'key_encryption_algorithms' => $jweLoader->getJweDecrypter()
181+
'encryption_algorithms' => $jweLoader->getJweDecrypter()
208182
->getKeyEncryptionAlgorithmManager()
209183
->list(),
210-
'content_encryption_algorithms' => $jweLoader->getJweDecrypter()
211-
->getContentEncryptionAlgorithmManager()
212-
->list(),
213-
'compression_methods' => $jweLoader->getJweDecrypter()
214-
->getCompressionMethodManager()
215-
->list(),
216184
];
217185
}
218186
}

src/Bundle/DependencyInjection/Compiler/CompressionMethodCompilerPass.php

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/Bundle/DependencyInjection/Source/Encryption/AbstractEncryptionSource.php

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,14 @@ public function getNodeDefinition(NodeDefinition $node): void
2424
->info('If true, the service will be public, else private.')
2525
->defaultTrue()
2626
->end()
27-
->arrayNode('key_encryption_algorithms')
27+
->arrayNode('encryption_algorithms')
2828
->info('A list of supported key encryption algorithms.')
2929
->useAttributeAsKey('name')
3030
->isRequired()
3131
->requiresAtLeastOneElement()
3232
->scalarPrototype()
3333
->end()
3434
->end()
35-
->arrayNode('content_encryption_algorithms')
36-
->info('A list of supported content encryption algorithms.')
37-
->useAttributeAsKey('name')
38-
->isRequired()
39-
->requiresAtLeastOneElement()
40-
->scalarPrototype()
41-
->end()
42-
->end()
43-
->arrayNode('compression_methods')
44-
->info('A list of supported compression methods.')
45-
->useAttributeAsKey('name')
46-
->defaultValue(['DEF'])
47-
->scalarPrototype()
48-
->end()
49-
->end()
5035
->arrayNode('tags')
5136
->info('A list of tags to be associated to the service.')
5237
->useAttributeAsKey('name')

src/Bundle/DependencyInjection/Source/Encryption/EncryptionSource.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Jose\Bundle\JoseFramework\DependencyInjection\Source\Encryption;
66

7-
use Jose\Bundle\JoseFramework\DependencyInjection\Compiler\CompressionMethodCompilerPass;
87
use Jose\Bundle\JoseFramework\DependencyInjection\Compiler\EncryptionSerializerCompilerPass;
98
use Jose\Bundle\JoseFramework\DependencyInjection\Source\Source;
109
use Jose\Bundle\JoseFramework\DependencyInjection\Source\SourceWithCompilerPasses;
@@ -54,7 +53,6 @@ public function load(array $configs, ContainerBuilder $container): void
5453
$loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../../Resources/config'));
5554
$loader->load('jwe_services.php');
5655
$loader->load('jwe_serializers.php');
57-
$loader->load('compression_methods.php');
5856

5957
$loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../../Resources/config/Algorithms/'));
6058
foreach ($this->getAlgorithmsFiles() as $class => $file) {
@@ -104,7 +102,7 @@ public function prepend(ContainerBuilder $container, array $config): array
104102
#[Override]
105103
public function getCompilerPasses(): array
106104
{
107-
return [new EncryptionSerializerCompilerPass(), new CompressionMethodCompilerPass()];
105+
return [new EncryptionSerializerCompilerPass()];
108106
}
109107

110108
private function getAlgorithmsFiles(): array

src/Bundle/DependencyInjection/Source/Encryption/JWEBuilder.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,7 @@ public function load(array $configs, ContainerBuilder $container): void
2727
$definition = new Definition(JWEBuilderService::class);
2828
$definition
2929
->setFactory([new Reference(JWEBuilderFactory::class), 'create'])
30-
->setArguments([
31-
$itemConfig['key_encryption_algorithms'],
32-
$itemConfig['content_encryption_algorithms'],
33-
$itemConfig['compression_methods'],
34-
])
30+
->setArguments([$itemConfig['encryption_algorithms']])
3531
->addTag('jose.jwe_builder')
3632
->setPublic($itemConfig['is_public']);
3733
foreach ($itemConfig['tags'] as $id => $attributes) {

src/Bundle/DependencyInjection/Source/Encryption/JWEDecrypter.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,7 @@ public function load(array $configs, ContainerBuilder $container): void
2727
$definition = new Definition(JWEDecrypterService::class);
2828
$definition
2929
->setFactory([new Reference(JWEDecrypterFactory::class), 'create'])
30-
->setArguments([
31-
$itemConfig['key_encryption_algorithms'],
32-
$itemConfig['content_encryption_algorithms'],
33-
$itemConfig['compression_methods'],
34-
])
30+
->setArguments([$itemConfig['encryption_algorithms']])
3531
->addTag('jose.jwe_decrypter')
3632
->setPublic($itemConfig['is_public']);
3733
foreach ($itemConfig['tags'] as $id => $attributes) {

src/Bundle/DependencyInjection/Source/Encryption/JWELoader.php

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ public function load(array $configs, ContainerBuilder $container): void
3131
->setFactory([new Reference(JWELoaderFactory::class), 'create'])
3232
->setArguments([
3333
$itemConfig['serializers'],
34-
$itemConfig['key_encryption_algorithms'],
35-
$itemConfig['content_encryption_algorithms'],
36-
$itemConfig['compression_methods'],
34+
$itemConfig['encryption_algorithms'],
3735
$itemConfig['header_checkers'],
3836
])
3937
->addTag('jose.jwe_loader')
@@ -61,27 +59,13 @@ public function getNodeDefinition(NodeDefinition $node): void
6159
->info('If true, the service will be public, else private.')
6260
->defaultTrue()
6361
->end()
64-
->arrayNode('key_encryption_algorithms')
62+
->arrayNode('encryption_algorithms')
6563
->info('A list of key encryption algorithm aliases.')
6664
->useAttributeAsKey('name')
6765
->isRequired()
6866
->scalarPrototype()
6967
->end()
7068
->end()
71-
->arrayNode('content_encryption_algorithms')
72-
->info('A list of key encryption algorithm aliases.')
73-
->useAttributeAsKey('name')
74-
->isRequired()
75-
->scalarPrototype()
76-
->end()
77-
->end()
78-
->arrayNode('compression_methods')
79-
->info('A list of compression method aliases.')
80-
->useAttributeAsKey('name')
81-
->defaultValue(['DEF'])
82-
->scalarPrototype()
83-
->end()
84-
->end()
8569
->arrayNode('serializers')
8670
->info('A list of signature serializer aliases.')
8771
->useAttributeAsKey('name')

0 commit comments

Comments
 (0)