1*847dbab7SAndroid Build Coastguard Worker# Nimbus JOSE + JWT 2*847dbab7SAndroid Build Coastguard Worker 3*847dbab7SAndroid Build Coastguard Worker* The most popular and robust Java library for JSON Web Tokens (JWT) 4*847dbab7SAndroid Build Coastguard Worker* Supports all standard signature (JWS) and encryption (JWE) algorithms 5*847dbab7SAndroid Build Coastguard Worker* Open source Apache 2.0 licence 6*847dbab7SAndroid Build Coastguard Worker 7*847dbab7SAndroid Build Coastguard WorkerCheck out the [library homepage](http://connect2id.com/products/nimbus-jose-jwt) 8*847dbab7SAndroid Build Coastguard Workerfor more info and examples. 9*847dbab7SAndroid Build Coastguard Worker 10*847dbab7SAndroid Build Coastguard Worker 11*847dbab7SAndroid Build Coastguard Worker## Full compact JOSE and JWT support 12*847dbab7SAndroid Build Coastguard Worker 13*847dbab7SAndroid Build Coastguard WorkerCreate, serialise and process compact-encoded: 14*847dbab7SAndroid Build Coastguard Worker 15*847dbab7SAndroid Build Coastguard Worker* Plain (unsecured) JOSE objects 16*847dbab7SAndroid Build Coastguard Worker* JSON Web Signature (JWS) objects 17*847dbab7SAndroid Build Coastguard Worker* JSON Web Encryption (JWE) objects 18*847dbab7SAndroid Build Coastguard Worker* JSON Web Key (JWK) objects and JWK sets 19*847dbab7SAndroid Build Coastguard Worker* Plain, signed and encrypted JSON Web Tokens (JWTs) 20*847dbab7SAndroid Build Coastguard Worker 21*847dbab7SAndroid Build Coastguard WorkerThe less frequently used alternative JSON encoding is on the road map. 22*847dbab7SAndroid Build Coastguard Worker 23*847dbab7SAndroid Build Coastguard Worker 24*847dbab7SAndroid Build Coastguard Worker## Supported JOSE algorithms 25*847dbab7SAndroid Build Coastguard Worker 26*847dbab7SAndroid Build Coastguard WorkerThe library can handle all standard JOSE algorithms: 27*847dbab7SAndroid Build Coastguard Worker 28*847dbab7SAndroid Build Coastguard Worker* HMAC integrity protection: HS256, HS384 and HS512 29*847dbab7SAndroid Build Coastguard Worker* RSASSA-PKCS1-V1_5 signatures: RS256, RS384 and RS512 30*847dbab7SAndroid Build Coastguard Worker* RSASSA-PSS signatures: PS256, PS384 and PS512 31*847dbab7SAndroid Build Coastguard Worker* EC signatures: ES256, ES384 and ES512 32*847dbab7SAndroid Build Coastguard Worker* Key encryption with RSAES-PKCS1-V1_5: RSA1_5 (deprecated) 33*847dbab7SAndroid Build Coastguard Worker* Key encryption with RSAES OAEP: RSA-OAEP and RSA-OAEP-256 34*847dbab7SAndroid Build Coastguard Worker* Key encryption with AES key wrap: A128KW, A192KW and A256KW 35*847dbab7SAndroid Build Coastguard Worker* Key encryption with AES GCM: A128CGMKW, A192CGMKW and A256CGMKW 36*847dbab7SAndroid Build Coastguard Worker* Direct shared symmetric key encryption: dir 37*847dbab7SAndroid Build Coastguard Worker* Key Agreement with Elliptic Curve Diffie-Hellman Ephemeral Static: ECDH-ES, 38*847dbab7SAndroid Build Coastguard Worker ECDH-ES+A128KW, ECDH-ES+A192KW and ECDH-ES+A256KW 39*847dbab7SAndroid Build Coastguard Worker* Password-based encryption: PBES2-HS256+A128KW, PBES2-HS384+A192KW and 40*847dbab7SAndroid Build Coastguard Worker PBES2-HS512+A256KW 41*847dbab7SAndroid Build Coastguard Worker* Content encryption with AES_CBC_HMAC_SHA2: A128CBC-HS256, A192CBC-HS384, 42*847dbab7SAndroid Build Coastguard Worker A256CBC-HS512, the deprecated A128CBC+HS256 and A256CBC+HS512 are also 43*847dbab7SAndroid Build Coastguard Worker supported 44*847dbab7SAndroid Build Coastguard Worker* Content encryption with AES GCM: A128GCM, A192GCM and A256GCM 45*847dbab7SAndroid Build Coastguard Worker* JWE Compression with DEFLATE. 46*847dbab7SAndroid Build Coastguard Worker 47*847dbab7SAndroid Build Coastguard Worker 48*847dbab7SAndroid Build Coastguard Worker## Supported IETF standards 49*847dbab7SAndroid Build Coastguard Worker 50*847dbab7SAndroid Build Coastguard Worker* RFC 7515 - JSON Web Signature (JWS) 51*847dbab7SAndroid Build Coastguard Worker* RFC 7516 - JSON Web Encryption (JWE) 52*847dbab7SAndroid Build Coastguard Worker* RFC 7517 - JSON Web Key (JWK) 53*847dbab7SAndroid Build Coastguard Worker* RFC 7518 - JSON Web Algorithms (JWA) 54*847dbab7SAndroid Build Coastguard Worker* RFC 7519 - JSON Web Token (JWT) 55*847dbab7SAndroid Build Coastguard Worker* RFC 7520 - Examples of Protecting Content Using JSON Object Signing and 56*847dbab7SAndroid Build Coastguard Worker Encryption (JOSE) 57*847dbab7SAndroid Build Coastguard Worker* RFC 7165 - Use Cases and Requirements for JSON Object Signing and Encryption 58*847dbab7SAndroid Build Coastguard Worker (JOSE) 59*847dbab7SAndroid Build Coastguard Worker* RFC 8037 - CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON 60*847dbab7SAndroid Build Coastguard Worker Object Signing and Encryption (JOSE) 61*847dbab7SAndroid Build Coastguard Worker 62*847dbab7SAndroid Build Coastguard Worker 63*847dbab7SAndroid Build Coastguard Worker## System requirements and dependencies 64*847dbab7SAndroid Build Coastguard Worker 65*847dbab7SAndroid Build Coastguard WorkerThe Nimbus JOSE+JWT library requires Java 7+ and has minimal dependencies. 66*847dbab7SAndroid Build Coastguard Worker 67*847dbab7SAndroid Build Coastguard Worker* JSON Smart for highly efficient parsing and serialisation of JSON. 68*847dbab7SAndroid Build Coastguard Worker* JCIP for concurrency annotations. 69*847dbab7SAndroid Build Coastguard Worker* [optional] BouncyCastle as an alternative JCA provider. 70*847dbab7SAndroid Build Coastguard Worker 71*847dbab7SAndroid Build Coastguard Worker 72*847dbab7SAndroid Build Coastguard WorkerFor Maven add: 73*847dbab7SAndroid Build Coastguard Worker 74*847dbab7SAndroid Build Coastguard Worker``` 75*847dbab7SAndroid Build Coastguard Worker<dependency> 76*847dbab7SAndroid Build Coastguard Worker <groupId>com.nimbusds</groupId> 77*847dbab7SAndroid Build Coastguard Worker <artifactId>nimbus-jose-jwt</artifactId> 78*847dbab7SAndroid Build Coastguard Worker <version>[ version ]</version> 79*847dbab7SAndroid Build Coastguard Worker</dependency> 80*847dbab7SAndroid Build Coastguard Worker``` 81*847dbab7SAndroid Build Coastguard Worker 82*847dbab7SAndroid Build Coastguard Workerwhere `[ version ]` is the latest stable version. 83*847dbab7SAndroid Build Coastguard Worker 84*847dbab7SAndroid Build Coastguard WorkerTo post bug reports and suggestions: 85*847dbab7SAndroid Build Coastguard Worker 86*847dbab7SAndroid Build Coastguard Worker<https://bitbucket.org/connect2id/nimbus-jose-jwt/issues> 87*847dbab7SAndroid Build Coastguard Worker 88*847dbab7SAndroid Build Coastguard Worker 89*847dbab7SAndroid Build Coastguard WorkerFollow updates and new releases on Twitter: 90*847dbab7SAndroid Build Coastguard Worker 91*847dbab7SAndroid Build Coastguard Worker<https://twitter.com/connect2id> 92*847dbab7SAndroid Build Coastguard Worker 93