arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

JWE decryption

hashtag
JWE Decrypter Factory Service

A JWEDecrypterFactory is available as a service in your application container:

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.

circle-info

Reminder: it is important to check the token headers. See the checker section of this documentation.

hashtag
JWE Decrypter As Service

There is also another way to create a JWEDecrypter object: using the bundle configuration.

With the previous configuration, the bundle will create a public JWE Decrypter service named jose.jwe_decrypter.decrypter1 with selected encryption algorithms.

hashtag
Custom Tags

You can add custom tags and attributes to the services you create.

hashtag
JWE Loader Service

The 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.

You can also create JWELoader objects as services using the configuration of the bundle.

Or using the .

<?php
use Jose\Component\Encryption\JWEDecrypterFactory;

$jweDecrypterFactory = $container->get(JWEDecrypterFactory::class);
$jweDecrypter = $jweDecrypterFactory->create(['HS256']);
JWELoaderFactory
ConfigurationHelper
jose:
    jwe:
        decrypters:
            decrypter1:
                key_encryption_algorithms: ['A256GCMKW']
                content_encryption_algorithms: ['A256CBC-HS256']
                #compression_methods: ['DEF']
                is_public: true
<?php
$jweDecrypter = $container->get('jose.jwe_decrypter.decrypter1');
jose:
    jwe:
        decrypters:
            decrypter1:
                key_encryption_algorithms: ['A256GCMKW']
                content_encryption_algorithms: ['A256CBC-HS256']
                #compression_methods: ['DEF']
                tags:
                    tag_name1: ~
                    tag_name2: {attribute1: 'foo'}
<?php
use Jose\Component\Encryption\JWELoaderFactory;

$jweLoaderFactory = $container->get(JWELoaderFactory::class);
jose:
    jwe:
        loaders:
            jwe_loader1:
                key_encryption_algorithms: ['A256GCMKW']
                content_encryption_algorithms: ['A256CBC-HS256']
                #compression_methods: ['DEF']
                header_checkers: ['alg', 'enc']
                is_public: true
<?php
use Jose\Bundle\JoseFramework\Helper\ConfigurationHelper;

...
ConfigurationHelper::addJWELoader($container, 'jwe_loader1', ['jwe_compact'], ['A256GCMKW'], ['A256CBC-HS256'], ['DEF'], ['alg', 'enc'], true);