@@ -20,155 +20,13 @@ If you really love that project, then you can help me out for a couple of :beers
2020[ ![ Latest Unstable Version] ( https://poser.pugx.org/Spomky-Labs/JOSE/v/unstable.png )] ( https://packagist.org/packages/Spomky-Labs/JOSE )
2121[ ![ License] ( https://poser.pugx.org/Spomky-Labs/JOSE/license.png )] ( https://packagist.org/packages/Spomky-Labs/JOSE )
2222
23- This framework provides an implementation of:
24-
25- * JW** S** [ JSON Web Signature (RFC 7515)] ( https://tools.ietf.org/html/rfc7515 ) ,
26- * JW** T** [ JSON Web Token (RFC 7519)] ( https://tools.ietf.org/html/rfc7519 ) ,
27- * JW** E** [ JSON Web Encryption (RFC 7516)] ( http://tools.ietf.org/html/rfc7516 ) ,
28- * JW** A** [ JSON Web Algorithms (RFC 7518)] ( http://tools.ietf.org/html/rfc7518 ) .
29- * JW** K** [ JSON Web Key (RFC 7517)] ( http://tools.ietf.org/html/rfc7517 ) .
30- * JSON Web Key Thumbprint ([ RFC 7638] ( https://tools.ietf.org/html/rfc7638 ) ).
31- * Unencoded Payload Option [ RFC7797] ( https://tools.ietf.org/html/rfc7797 ) .
32-
33- This framework is not just a library, it contains also Symfony bundles for an easy integration into your application.
34- It also provides a standalone console command that will help you to manager your keys and key sets.
35-
36- # Provided Features
37-
38- ## Supported Input Types:
39-
40- JWS or JWE objects support every input that can be encoded into JSON:
41-
42- * [x] ` string ` , ` array ` , ` integer ` , ` float ` ...
43- * [x] Objects that implement the ` \JsonSerializable ` interface such as ` JWKInterface ` or ` JWKSetInterface `
44-
45- The [ detached content] ( https://tools.ietf.org/html/rfc7515#appendix-F ) is also supported.
46-
47- Unencoded payload is supported. This means you can sign and verify payload without base64 encoding operation.
48- As per the [ RFC7797] ( https://tools.ietf.org/html/rfc7797 ) , the ` b64 ` header MUST be protected.
49- When ` b64 ` header is set, the ` crit ` protected header with value ` b64 ` in its array of values is mandatory.
50-
51- ## Supported Serialization Modes
52-
53- * [x] Compact JSON Serialization Syntax (JWS/JWE creation and loading)
54- * [x] Flattened JSON Serialization Syntax (JWS/JWE creation and loading)
55- * [x] General JSON Serialization Syntax (JWS/JWE creation and loading)
56-
57- ## Supported Compression Methods
58-
59- | Compression Method | Supported | Comment |
60- | ------------------ | :---------:| --------------------------------------------------------------- |
61- | Deflate (` DEF ` ) | YES | |
62- | GZip (` GZ ` ) | YES | * This compression method is not described in the specification* |
63- | ZLib (` ZLIB ` ) | YES | * This compression method is not described in the specification* |
64-
65- ## Supported Key Types (JWK)
66-
67- | Key Type | Supported | Comment |
68- | -------- | :---------:| -------------------------------------------- |
69- | ` none ` | YES | None keys are for the ` none ` algorithm only |
70- | ` oct ` | YES | Symmetric keys |
71- | ` RSA ` | YES | RSA based asymmetric keys |
72- | ` EC ` | YES | Elliptic Curves based asymmetric keys |
73- | ` OKP ` | YES | Octet Key Pair based asymmetric keys |
74-
75- JWK objects support JSON Web Key Thumbprint ([ RFC 7638] ( https://tools.ietf.org/html/rfc7638 ) ).
76-
77- ## Key Sets (JWKSet)
78-
79- JWKSet is fully supported.
80-
81- ## Supported Signature Algorithms
82-
83- | Signature Algorithm | Supported | Comment |
84- | ------------------------------ | :---------:| -------------------------------------------------------------------------------------------------- |
85- | ` HS256 ` , ` HS384 ` and ` HS512 ` | YES | |
86- | ` HS256 ` , ` ES384 ` and ` ES512 ` | YES | |
87- | ` RS256 ` , ` RS384 ` and ` RS512 ` | YES | |
88- | ` PS256 ` , ` PS384 ` and ` PS512 ` | YES | |
89- | ` none ` | YES | ** Please note that this is not a secured algorithm. USE IT WITH CAUTION!** |
90- | * ` EdDSA ` with ` Ed25519 ` curve* | YES | [ For PHP 7.1, third party extension highly recommended] ( https://github.com/jedisct1/libsodium-php ) |
91- | * ` EdDSA ` with ` Ed448 ` curve* | ** NO** | |
92-
93- ## Supported Key Encryption Algorithms
94-
95- | Key Encryption Algorithm | Supported | Comment |
96- | ------------------------------------------------------------------- | :---------:| -------------------------------------------------------------------------------------------------- |
97- | ` dir ` | YES | |
98- | ` RSA1_5 ` , ` RSA-OAEP ` and ` RSA-OAEP-256 ` | YES | |
99- | ` ECDH-ES ` , ` ECDH-ES+A128KW ` , ` ECDH-ES+A192KW ` and ` ECDH-ES+A256KW ` | YES | |
100- | ` A128KW ` , ` A128KW ` and ` A128KW ` | YES | |
101- | ` PBES2-HS256+A128KW ` , ` PBES2-HS384+A192KW ` and ` PBES2-HS512+A256KW ` | YES | |
102- | ` A128GCMKW ` , ` A192GCMKW ` and ` A256GCMKW ` | YES | |
103- | ` EdDSA ` with ` X25519 ` curve | YES | [ For PHP 7.1, third party extension highly recommended] ( https://github.com/jedisct1/libsodium-php ) |
104- | ` EdDSA ` with ` X448 ` curve | ** NO** | |
105-
106- ## Supported Content Encryption Algorithms
107-
108- | Content Encryption Algorithm | Supported | Comment |
109- | ---------------------------------------------------- | :---------:| ------- |
110- | ` A128CBC-HS256 ` , ` A192CBC-HS384 ` and ` A256CBC-HS512 ` | YES | |
111- | ` A128GCM ` , ` A192GCM ` and ` A256GCM ` | YES | |
112-
11323# The Release Process
11424
11525The release process [ is described here] ( https://github.com/web-token/jwt-doc/Release.md ) .
11626
117- # Prerequisites
118-
119- This framework needs at least:
120- * ![ PHP 7.1+] ( https://img.shields.io/badge/PHP-7.1%2B-ff69b4.svg ) ,
121- * OpenSSL extension.
122- * GMP extension.
123- * MBString extension.
124-
125- Please consider the following optional requirements:
126- * If you intent to use ` EdDSA ` or ` ECDH-ES ` algorithm with ` Ed25519 ` /` X25519 ` curves on PHP 7.1, please install this [ third party extension] ( https://github.com/jedisct1/libsodium-php )
127-
128- # Continuous Integration
129-
130- It has been successfully tested using ` PHP 7.1 ` with all algorithms.
131-
132- Tests vectors from the [ RFC 7520] ( http://tools.ietf.org/html/rfc7520 ) are fully implemented and all tests pass.
133-
134- We also track bugs and code quality using [ Scrutinizer-CI] ( https://scrutinizer-ci.com/g/Spomky-Labs/JOSE ) and [ Sensio Insight] ( https://insight.sensiolabs.com/projects/9123fbfc-7ae1-4d63-9fda-170b8ad794ee ) .
135-
136- Coding Standards are verified by [ StyleCI] ( https://styleci.io/repos/22874677 ) .
137-
138- Code coverage is analyzed by [ Coveralls.io] ( https://coveralls.io/github/web-token/jwt-framework ) .
139-
140- # Installation
141-
142- The preferred way to install this framework is to rely on Composer:
143-
144- ``` sh
145- composer require web-token/jwt-framework
146- ```
147-
148- # How to use
149-
150- * [ The components] ( https://github.com/web-token/jwt-doc/components.md )
151- * [ The bundles] ( https://github.com/web-token/jwt-doc/bundles.md )
152- * [ The console commands] ( https://github.com/web-token/jwt-doc/console.md )
153-
154- Examples:
155-
156- * Using the components:
157- * [ Create keys and key sets] ( https://github.com/web-token/jwt-doc/components/examples/jwk.md )
158- * [ Create and load a signed token] ( https://github.com/web-token/jwt-doc/components/examples/jws.md )
159- * [ Create and load an encrypted token] ( https://github.com/web-token/jwt-doc/components/examples/jwe.md )
160- * Using the bundles:
161- * [ Create keys and key sets] ( https://github.com/web-token/jwt-doc/bundles/examples/jwk.md )
162- * [ Create and load a signed token] ( https://github.com/web-token/jwt-doc/bundles/examples/jws.md )
163- * [ Create and load an encrypted token] ( https://github.com/web-token/jwt-doc/bundles/examples/jwe.md )
164-
165- # Performances
166-
167- Please read the [ performance page] ( https://github.com/web-token/jwt-doc/benchmarks/index.md ) to know how to test the algorithms of the framework.
168-
169- You can also see the [ last benchmarks] ( https://github.com/web-token/jwt-doc/benchmarks/results.md ) made with our development environment.
27+ # Documentation
17028
171- ** The use of the Algorithm ` ECDH-ES ` with curves ` P-256 ` , ` P-384 ` or ` P-521 ` is not recommended ** .
29+ The official documentation is available as https://web-token.spomky-labs.com/
17230
17331# Contributing
17432
0 commit comments