JWE decryption¶
JWE decrypter factory service¶
A JWEDecrypterFactory is available as a service in your application container:
<?php
use Jose\Component\Encryption\JWEDecrypterFactory;
$jweDecrypterFactory = $container->get(JWEDecrypterFactory::class);
With this factory, you will be able to create the JWEDecrypter you need:
You can now use the JWEDecrypter as explained in the JWE Creation section.
Info
Reminder: it is important to check the token headers. See the checker section of this documentation.
JWE decrypter as service¶
There is also another way to create a JWEDecrypter object: using the bundle configuration.
jose:
jwe:
decrypters:
decrypter1:
encryption_algorithms: ['A256GCMKW', 'A256CBC-HS256']
is_public: true
With the previous configuration, the bundle will create a public JWE Decrypter service named jose.jwe_decrypter.decrypter1 with selected encryption algorithms.
Custom tags¶
You can add custom tags and attributes to the services you create.
jose:
jwe:
decrypters:
decrypter1:
encryption_algorithms: ['A256GCMKW', 'A256CBC-HS256']
tags:
tag_name1: ~
tag_name2: {attribute1: 'foo'}
JWE loader service¶
The JWELoaderFactory is available as a public service. You can retrieve it using the container or inject it into your services. It will help you to create JWELoader objects on demand.
<?php
use Jose\Component\Encryption\JWELoaderFactory;
$jweLoaderFactory = $container->get(JWELoaderFactory::class);
You can also create JWELoader objects as services using the configuration of the bundle.
jose:
jwe:
loaders:
jwe_loader1:
encryption_algorithms: ['A256GCMKW', 'A256CBC-HS256']
header_checkers: ['alg', 'enc']
is_public: true
Or using the ConfigurationHelper.