jwt: Use "long long" for json integers if jansson supports it On win64 (of course), a long is only 4-bytes, which could lead to overflows for things like "exp" claims. We key off of JSON_INTEGER_IS_LONG_LONG in jansson_config.h to sync with that library. We still avoid exposing jansson.h in jwt.h, so that's good. This might break ABI on win64. I'm not sure. It almost certainly breaks ABI on 32-bit systems where the anonymous union in jwt_value_t would only have been 4-bytes. On win64 the union was 8-bytes anyway because of the pointers. Now, however, we wont be casting claims to 32-bits in this case. So...bump the SO_VERSION, or not? Time will tell. Fixes #220 Signed-off-by: Ben Collins <bcollins@libjwt.io>
[!WARNING] Version 3 of LibJWT is a complete overhaul of the code. Please see documentation for usage.
| Standard | RFC | Description |
|---|---|---|
JWS | :page_facing_up: RFC-7515 | JSON Web Signature |
JWE | :page_facing_up: RFC-7516 | JSON Web Encryption |
JWK | :page_facing_up: RFC-7517 | JSON Web Keys and Sets |
JWA | :page_facing_up: RFC-7518 | JSON Web Algorithms |
JWT | :page_facing_up: RFC-7519 | JSON Web Token |
[!NOTE] Throughout this documentation you will see links such as the ones above to RFC documents. These are relevant to that particular part of the library and are helpful to understand some of the specific standards that shaped the development of LibJWT.
[!NOTE] OpenSSL is required and used for JWK(S) operations.
JWS Algorithm alg | OpenSSL | GnuTLS | MbedTLS |
|---|---|---|---|
HS256 HS384 HS512 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
ES256 ES384 ES512 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
RS256 RS384 RS512 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
EdDSA using ED25519 | :white_check_mark: | :white_check_mark: | :x: |
EdDSA using ED448 | :white_check_mark: | :white_check_mark: >= 3.8.8 | :x: |
PS256 PS384 PS512 | :white_check_mark: | :white_check_mark: | :white_check_mark:* |
ES256K | :white_check_mark: | :x: | :white_check_mark: |
* RSASSA-PSS support in MbedTLS depends on Mbed-TLS/TF-PSA-Crypto#154
:link: Current Docs
:link: Legacy Docs v2.1.1
:link: GitHub Repo
LibJWT is available in most Linux distributions as well as through Homebrew for Linux, macOS, and Windows.
$ mkdir build $ cd build $ cmake .. $ make