Clone this repo:
  1. d21f66b Fix allocator mismatch in key2jwk by Ramin Moussavi · 2 weeks ago master
  2. 106f6f2 Remove unused functions, add json-c CI job by Ramin Moussavi · 2 weeks ago
  3. 2452f55 Add json-c as alternative JSON backend by Ramin Moussavi · 2 weeks ago
  4. fc6ac87 Avoid symbol collision with aklomp/base64 by Saúl Ibarra Corretgé · 3 months ago
  5. 91fa41a v3.2.3 by Ben Collins · 3 months ago v3.2.3

LibJWT - The C JWT Library

codecov

maClara

[!WARNING] Version 3 of LibJWT is a complete overhaul of the code. Please see documentation for usage.

:bulb: Supported Standards

StandardRFCDescription
JWS:page_facing_up: RFC-7515JSON Web Signature
JWE:page_facing_up: RFC-7516JSON Web Encryption
JWK:page_facing_up: RFC-7517JSON Web Keys and Sets
JWA:page_facing_up: RFC-7518JSON Web Algorithms
JWT:page_facing_up: RFC-7519JSON 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.

:construction: Build Prerequisites

Required

Crypto support

  • OpenSSL (>= 3.0.0)
  • GnuTLS (>= 3.6.0)
  • MbedTLS (>= 3.6.0)

[!NOTE] OpenSSL is required and used for JWK(S) operations.

Algorithm support matrix

JWS Algorithm algOpenSSLGnuTLSMbedTLS
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

Optional

:books: Docs and Source

:link: Current Docs

:link: Legacy Docs v2.1.1

:link: GitHub Repo

:package: Pre-built Packages

LibJWT is available in most Linux distributions as well as through Homebrew for Linux, macOS, and Windows.

:hammer: Build Instructions

With CMake:

$ mkdir build
$ cd build
$ cmake ..
$ make