)]}'
{
  "log": [
    {
      "commit": "602118d99d46ca5df71bda60d3df642135417f29",
      "tree": "a0d170b69f6b5a0bc285c286684f0141ea981469",
      "parents": [
        "49c730a4036c5ae67a4a97e4e55101e445fda694"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon May 04 10:00:27 2026 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon May 04 10:00:27 2026 -0400"
      },
      "message": "v3.3.3\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "49c730a4036c5ae67a4a97e4e55101e445fda694",
      "tree": "a7d6d62b5f6b21df837674617589572aeb5e8419",
      "parents": [
        "64a4f448657a209e2735ae4e2377ca43d16cbcf2"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon May 04 08:49:20 2026 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Mon May 04 09:57:58 2026 -0400"
      },
      "message": "Fix algorithm confusion that allows JWT forgery via RSA JWK as HMAC key\n\nGHSA-q843-6q5f-w55g: an RSA JWK without an \"alg\" parameter was accepted\nas the verification key for HS256/384/512 tokens. Because the jwk_item_t\nunion shares storage between provider_data (RSA EVP_PKEY *) and\noct.{key,len} (HMAC bytes/length), the OpenSSL HMAC path read a\nzero-length key and produced a successful verification for any token\nsigned as HMAC(\"\", header.payload). This let an attacker forge tokens\nusing only the public JWKS.\n\nBind algorithm acceptance to the JWK\u0027s actual \"kty\" rather than its\noptional \"alg\" hint, in three layered places:\n\n* jwt-private.h: new jwt_alg_required_kty() helper providing the\n  authoritative JWA-algorithm to JWK-kty mapping.\n* jwt-common.c: __setkey_check() now rejects any setkey() / verify\n  callback that pairs a non-none algorithm with an incompatible kty.\n  This is the primary fix and runs at both setkey and post-callback.\n* jwt-verify.c: __verify_config_post() re-checks kty once jwt-\u003ealg is\n  bound from the token, blocking malformed JWKs whose own alg hint\n  disagrees with their kty.\n* jwt.c: __check_hmac() defensive backstop in the single chokepoint\n  used by all three crypto backends; refuses any non-oct key for HMAC.\n\nTests added in jwt_security.c cover the original PoC, the realistic\nJWKS callback exploit pattern, all three HS sizes, RSA/EC/OKP keys\nmis-targeted at HS256, and the malformed-JWK defensive verify path.\nA few existing tests (hs256_token_failed, verify_es256_bad_sig,\nsign_es256_bad_sig, rsa_ec_short) were updated; they previously\ndocumented the vulnerable behavior under the guise of \"different ways\"\nof failing and now assert the correct earlier rejection.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "64a4f448657a209e2735ae4e2377ca43d16cbcf2",
      "tree": "227e24339bdedb6df603546c1dc0be64974d0db7",
      "parents": [
        "6cf52a89c3a7b48e0da34cab3d964e2aff3f34fc"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Mar 25 08:50:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 08:50:50 2026 -0400"
      },
      "message": "Potential fix for code scanning alert no. 4: Workflow does not contain permissions\n\nCo-authored-by: Copilot Autofix powered by AI \u003c62310815+github-advanced-security[bot]@users.noreply.github.com\u003e\nSigned-off-by: Ben Collins \u003cbenmcollins13@gmail.com\u003e"
    },
    {
      "commit": "6cf52a89c3a7b48e0da34cab3d964e2aff3f34fc",
      "tree": "73d0e09a1e481877260aacca40c8119374fe048b",
      "parents": [
        "5593a0accfa014a6a32c72cd2682d7deb411eb86"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Mar 25 08:49:37 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 08:49:37 2026 -0400"
      },
      "message": "Update security policy with new versions and reporting\n\nAdded new supported versions and updated reporting guidelines for vulnerabilities.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e"
    },
    {
      "commit": "5593a0accfa014a6a32c72cd2682d7deb411eb86",
      "tree": "0e277676f6126b86afce6b6b8dd5dafcabd0853e",
      "parents": [
        "79dfd7dcff669e4cb272e882502aee215db40ee7"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Mar 25 08:43:58 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 08:43:58 2026 -0400"
      },
      "message": "Potential fix for code scanning alert no. 1: Workflow does not contain permissions\n\nCo-authored-by: Copilot Autofix powered by AI \u003c62310815+github-advanced-security[bot]@users.noreply.github.com\u003e\nSigned-off-by: Ben Collins \u003cbenmcollins13@gmail.com\u003e"
    },
    {
      "commit": "79dfd7dcff669e4cb272e882502aee215db40ee7",
      "tree": "cf4ae14cbcd517b9cbc462cf0ba3c4e6a5ac0087",
      "parents": [
        "4132db4362c45f2a441c5b585f5bcc3fbedff50d"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Mar 25 08:39:09 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 25 08:39:09 2026 -0400"
      },
      "message": "Update CodeQL workflow to remove languages\n\nRemoved unsupported languages from CodeQL configuration.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e"
    },
    {
      "commit": "4132db4362c45f2a441c5b585f5bcc3fbedff50d",
      "tree": "20efd9e2b682c94d1518b99ccd77ff13b9b936cc",
      "parents": [
        "377db5c9c05e976d4d63c32659a8e801da921a50"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 20:20:59 2026 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 20:20:59 2026 -0500"
      },
      "message": "v3.3.2\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "377db5c9c05e976d4d63c32659a8e801da921a50",
      "tree": "a1b5b25661675bcd5b898dc04f7d6eff584cfd98",
      "parents": [
        "f0bbbd93940861e5ba6c66d03bf8cbb230dccdbb"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 20:20:14 2026 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 20:20:14 2026 -0500"
      },
      "message": "build: Use JWT_NO_EXPORT for json abstraction functions\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "f0bbbd93940861e5ba6c66d03bf8cbb230dccdbb",
      "tree": "ee35bf0e012824439673b5afe6b435011acd96ec",
      "parents": [
        "aca2229ecf56f6f64a1a2d505f48aaca15907628"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 19:48:03 2026 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 19:48:03 2026 -0500"
      },
      "message": "v3.3.1\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "aca2229ecf56f6f64a1a2d505f48aaca15907628",
      "tree": "40aa4cf6383e1d714d0089e0bfded151a0b831c6",
      "parents": [
        "b3e52859ca3c14307b861e824c956fd1d59f1be8"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 17:45:50 2026 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 17:45:50 2026 -0500"
      },
      "message": "v3.3.0\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "b3e52859ca3c14307b861e824c956fd1d59f1be8",
      "tree": "0c68d974086581b6ca84dfb51891288597b619d7",
      "parents": [
        "cfd890286fa49ae61b534c937c9f0428b5c6034c"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 17:42:23 2026 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 17:44:36 2026 -0500"
      },
      "message": "Update CLAUDE.md\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "cfd890286fa49ae61b534c937c9f0428b5c6034c",
      "tree": "3edf0d479f1f1f3809bf6cd9bb4d16012f4193b7",
      "parents": [
        "d21f66beb3f935e5d72dd71ac97e0eee23908ed7"
      ],
      "author": {
        "name": "bcollins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 17:35:44 2026 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 02 17:44:16 2026 -0500"
      },
      "message": "Fix security vulnerabilities and add security test suite\n\nAddress multiple security issues across the library:\n- Add volatile qualifier to timing-safe comparison to prevent optimization\n- Scrub sensitive key material (HMAC keys, PEM data) before freeing\n- Add NULL/bounds validation in JWK octet and RSA PSS parsing\n- Replace atol() with strtol() and add Content-Length bounds in JWKS curl\n- Use secure_getenv() on glibc systems for JWT_CRYPTO provider selection\n- Fix memory leak in builder/checker when JSON allocation fails\n- Add missing error message for invalid/missing alg header\n- Sanitize kid and curve name in jwk2key to prevent path traversal\n- Add return value checks in key2jwk tool\n- Fix strcpy to strncpy in error copy macro\n- Initialize adj variable and add else clause in GnuTLS EC signing\n- Add NULL safety to jwks_item_get, jwks_error, and related functions\n\nNew jwt_security test suite with 76 test cases covering malformed JWK/JWT\ninput, type confusion, partial keys, and NULL safety.\n\nReported-By: Akshay Jain \u003cakshaythe@gmail.com\u003e\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "d21f66beb3f935e5d72dd71ac97e0eee23908ed7",
      "tree": "aaf4337df50daf02ea36a296cffef22d3bb045d1",
      "parents": [
        "106f6f2884c189630012391bea673ac457089312"
      ],
      "author": {
        "name": "Ramin Moussavi",
        "email": "lordrasmus@gmail.com",
        "time": "Fri Feb 06 22:29:01 2026 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Sat Feb 07 10:24:11 2026 -0500"
      },
      "message": "Fix allocator mismatch in key2jwk\n\nUse jwt_freemem() instead of free() for the string returned by\njwt_json_serialize(), which may be allocated via custom allocators\nset with jwt_set_alloc().\n"
    },
    {
      "commit": "106f6f2884c189630012391bea673ac457089312",
      "tree": "2306b25d7b1d6af6ad0919e7c200302ad403c623",
      "parents": [
        "2452f5520ef622961dfead7c79eb40ae7effda7a"
      ],
      "author": {
        "name": "Ramin Moussavi",
        "email": "lordrasmus@gmail.com",
        "time": "Fri Feb 06 22:24:11 2026 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Sat Feb 07 10:24:11 2026 -0500"
      },
      "message": "Remove unused functions, add json-c CI job\n\nRemove jwt_json_retain() and jwt_json_is_object() which are not\nused anywhere in the codebase.\n\nAdd build-linux-json-c job to GitHub Actions workflow to test\nthe json-c backend in CI.\n"
    },
    {
      "commit": "2452f5520ef622961dfead7c79eb40ae7effda7a",
      "tree": "075bd203ccea0f7a8476e91e72775d1805c22039",
      "parents": [
        "fc6ac870cc65fbd7cafaa27bf97fd716cb433d1a"
      ],
      "author": {
        "name": "Ramin Moussavi",
        "email": "lordrasmus@gmail.com",
        "time": "Fri Feb 06 16:59:00 2026 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Sat Feb 07 10:24:11 2026 -0500"
      },
      "message": "Add json-c as alternative JSON backend\n\nIntroduce a JSON abstraction layer (jwt-json-ops.h) with jwt_json_*\nAPI that decouples libjwt from any specific JSON library. Provide two\nbackend implementations:\n\n- libjwt/jansson/jwt-jansson.c: thin wrapper around jansson (default)\n- libjwt/json-c/jwt-json-c.c: full json-c implementation\n\nSelect json-c at build time with: cmake -DWITH_JSON_C\u003dON\n\nAll library source files, crypto backends (openssl, gnutls, mbedtls,\nwincrypt) and tools are converted to the new abstraction.\n"
    },
    {
      "commit": "fc6ac870cc65fbd7cafaa27bf97fd716cb433d1a",
      "tree": "ef9fb5b258e98ca0636f156259ef8650c9d4ef78",
      "parents": [
        "91fa41ad05e71fd03c3156372cd0ef1bd52b2261"
      ],
      "author": {
        "name": "Saúl Ibarra Corretgé",
        "email": "s@saghul.net",
        "time": "Tue Dec 02 17:13:14 2025 +0100"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Fri Dec 12 08:44:08 2025 -0500"
      },
      "message": "Avoid symbol collision with aklomp/base64\n\nIn static builds, symbol collisions are possible since the functions are\nnamed the same.\n\nEmbed the base64 library in the only file where it\u0027s used and make all\nits functions static.\n"
    },
    {
      "commit": "91fa41ad05e71fd03c3156372cd0ef1bd52b2261",
      "tree": "25745738fc0d86a73f5c068bf814a203e12c55d5",
      "parents": [
        "15499b02c9ac0455997595807a6e78038bf35068"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Nov 11 11:31:07 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Nov 11 11:31:07 2025 +0000"
      },
      "message": "v3.2.3\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "15499b02c9ac0455997595807a6e78038bf35068",
      "tree": "32a61b6ca2e2ee8e2a5a9584b8e83a78c56db5f5",
      "parents": [
        "5af2b7359e2a1eb56ca7198420ef5c66b2ba872c"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Nov 11 11:25:14 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Nov 11 11:25:14 2025 +0000"
      },
      "message": "tests: Increase timeout for jbuilder::ec_stress\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "5af2b7359e2a1eb56ca7198420ef5c66b2ba872c",
      "tree": "75f0bca21f7c1428072829cd228a924e2351cd66",
      "parents": [
        "af9b7eee4e56b7aed7f2b0716020f347f48394c7"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Sep 17 18:13:41 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Wed Sep 17 14:27:08 2025 -0400"
      },
      "message": "doxygen: Updates for cleaner gen of docs\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "af9b7eee4e56b7aed7f2b0716020f347f48394c7",
      "tree": "88a651cd175ff7bd789e7b8370281912bf8b55e0",
      "parents": [
        "94c9c0536a6e48806d58899a2427d1541eee8798"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Sep 17 13:36:16 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Wed Sep 17 13:52:48 2025 -0400"
      },
      "message": "jwt-cli.bats: Better comparison for all.json\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "94c9c0536a6e48806d58899a2427d1541eee8798",
      "tree": "72eed23aeddd58904a1df32c80741b1332183f54",
      "parents": [
        "f0d9c635356c92fb65a73f0e72ff8bce0246c821"
      ],
      "author": {
        "name": "Glenn O. Larsen",
        "email": "glenn.larsen@gmail.com",
        "time": "Wed Sep 17 00:34:12 2025 +0200"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "benmcollins13@gmail.com",
        "time": "Tue Sep 16 21:54:13 2025 -0400"
      },
      "message": "Fix case-sensitive check for Content-Length\n"
    },
    {
      "commit": "f0d9c635356c92fb65a73f0e72ff8bce0246c821",
      "tree": "84cb9ea83c1dbeb8d888fcce3792d080cef6a217",
      "parents": [
        "71f80efcf67f005d29e7b80677a3d0b5e865cf30"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Aug 27 07:43:42 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Aug 27 07:43:42 2025 -0400"
      },
      "message": "v3.2.2\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "71f80efcf67f005d29e7b80677a3d0b5e865cf30",
      "tree": "e6732062c91cf962d09d82d0019eb68c4727e40b",
      "parents": [
        "109d72aa55a81040e003f2792d16adb5ebc2c790"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Aug 27 07:38:58 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Aug 27 07:38:58 2025 -0400"
      },
      "message": "cmake: Make sure to add CMAKE_C_FLAGS to generated files\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "109d72aa55a81040e003f2792d16adb5ebc2c790",
      "tree": "f93e4dc9b8bb779e6861f5cc420222de7da511c8",
      "parents": [
        "707d5ed85e713246f16822a767b2412cb5b3a615"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Aug 27 07:37:48 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Aug 27 07:37:48 2025 -0400"
      },
      "message": "cmake: Install tool man pages always\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "707d5ed85e713246f16822a767b2412cb5b3a615",
      "tree": "41e1bf68b709a4548280918b3d41f8efff7f407c",
      "parents": [
        "7363e617457f83d46186b3ae56407aa7ca1a02e5"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Aug 23 20:25:10 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@watter.com",
        "time": "Sat Aug 23 20:26:38 2025 -0400"
      },
      "message": "jwt_strcmp(): This function is only needed one place\n\nThis got over-used where it didn\u0027t need to be. It\u0027s meant to be\ncryptographically safe for hash comparison. Not a general strcmp\nfunction.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "7363e617457f83d46186b3ae56407aa7ca1a02e5",
      "tree": "2f49fa9e3d67a2fe555916ea60eee3898e26e081",
      "parents": [
        "375e539835e16a35e642caae6ffab34179f36ec1"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Aug 11 08:25:45 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Aug 11 08:25:45 2025 -0400"
      },
      "message": "docs: Fix typos in man pages\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "375e539835e16a35e642caae6ffab34179f36ec1",
      "tree": "c2890affd8c180939d62630b41604206ee82b5f7",
      "parents": [
        "b1258a772847f6b1d4b058169d8a9c8deed3dc2a"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Jun 04 09:59:18 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Jun 04 10:09:00 2025 -0400"
      },
      "message": "jwt: Use \"long long\" for json integers if jansson supports it\n\nOn win64 (of course), a long is only 4-bytes, which could lead to\noverflows for things like \"exp\" claims.\n\nWe key off of JSON_INTEGER_IS_LONG_LONG in jansson_config.h to sync\nwith that library. We still avoid exposing jansson.h in jwt.h, so\nthat\u0027s good.\n\nThis might break ABI on win64. I\u0027m not sure. It almost certainly\nbreaks ABI on 32-bit systems where the anonymous union in jwt_value_t\nwould only have been 4-bytes.\n\nOn win64 the union was 8-bytes anyway because of the pointers. Now,\nhowever, we wont be casting claims to 32-bits in this case.\n\nSo...bump the SO_VERSION, or not? Time will tell.\n\nFixes #220\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "b1258a772847f6b1d4b058169d8a9c8deed3dc2a",
      "tree": "958fef6a4b17fc1e79512886c00a2025d7f88c02",
      "parents": [
        "8a368df8387c2929d70d36ab0e877a9a93016dfd"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@watter.com",
        "time": "Thu May 29 08:00:39 2025 -0400"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@watter.com",
        "time": "Thu May 29 08:00:39 2025 -0400"
      },
      "message": "curl: Lower version dep to 7.8.8 (from 8.0.0)\n\nSigned-off-by: Ben Collins \u003cbcollins@watter.com\u003e\n"
    },
    {
      "commit": "8a368df8387c2929d70d36ab0e877a9a93016dfd",
      "tree": "fd748488cfd7161b9d5cd4e56bf9cccd378b059c",
      "parents": [
        "21abca5c793d47c2d6ea740c19166f98e2d896d7"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Mar 27 10:58:13 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Mar 27 10:58:13 2025 +0000"
      },
      "message": "v3.2.1\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "21abca5c793d47c2d6ea740c19166f98e2d896d7",
      "tree": "1a170d9f11a8fb499a24774e3e7b19bd8fbc1303",
      "parents": [
        "8ac420048ac7cd8b04ffe1f6b8557daf4c7796c9"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Mar 27 09:22:25 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Mar 27 09:22:25 2025 +0000"
      },
      "message": "tests: Fixup some leaks in tests and curl test checks\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "8ac420048ac7cd8b04ffe1f6b8557daf4c7796c9",
      "tree": "d0da8dce3b17bafd0f5b54f168bfb5969b1b9b23",
      "parents": [
        "bdbed377a67268b675a6b3470589014f75c17864"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Mar 08 02:40:30 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Mar 08 02:40:30 2025 +0000"
      },
      "message": "One compiler\u0027s warning is another\u0027s error\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "bdbed377a67268b675a6b3470589014f75c17864",
      "tree": "aee9ad639efea685ff59b7480eddc4858d43af86",
      "parents": [
        "5f2c45ec2b3f893bd49d0f3e98a6ce018de48c46"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Mar 07 22:01:02 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Mar 07 22:01:02 2025 +0000"
      },
      "message": "Fix typo\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "5f2c45ec2b3f893bd49d0f3e98a6ce018de48c46",
      "tree": "f1b4697e4b424c739824ac7644642c1e445b0e77",
      "parents": [
        "e5f00796c736e05134ad53dec4e89663eaef4f74"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Mar 07 21:32:39 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Mar 07 21:32:39 2025 +0000"
      },
      "message": "kcapi: Enable offloading HS algs to kcapi\n\nLinux Kernel Crypto API\n\nAt some point I\u0027d like to make use of kcapi to store keys for persistent\ncrypto ops.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "e5f00796c736e05134ad53dec4e89663eaef4f74",
      "tree": "0a26f26fc68e1eacb5d071a2fd40cbf658a2b9b3",
      "parents": [
        "f31983dfef4414131d213244d06caa732f61db7c"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Mar 07 09:31:15 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Mar 07 09:31:15 2025 +0000"
      },
      "message": "jwks_load_strn: Don\u0027t toy around with pointer expectations\n\nRemove use of __FLAG_EMPTY as indirect way of signaling that NULL was ok\nto pass to this function.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "f31983dfef4414131d213244d06caa732f61db7c",
      "tree": "947457b364378a5236e1e3f117d7f6fe9a791804",
      "parents": [
        "e58c61a41647be84ec6bf5009be188a6995c6bf3"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@swissdisk.com",
        "time": "Tue Mar 04 14:52:00 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@swissdisk.com",
        "time": "Tue Mar 04 14:52:00 2025 +0000"
      },
      "message": "tests/jwt_builder: Increase test time outs more\n\nSigned-off-by: Ben Collins \u003cbcollins@swissdisk.com\u003e\n"
    },
    {
      "commit": "e58c61a41647be84ec6bf5009be188a6995c6bf3",
      "tree": "d2d65b2e8d765e36d2e8014c4e82eb25d1c32285",
      "parents": [
        "035958164b78933bca47260f3a43d8a823cd8f04"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 11:13:53 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 11:13:53 2025 +0000"
      },
      "message": "tests/jwt_builder: Increase timeouts for memcheck\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "035958164b78933bca47260f3a43d8a823cd8f04",
      "tree": "79f0e57b3b851d1e7b6ed841cfbd2a92c591e84c",
      "parents": [
        "3b735a8d49025048ae53f9edb70e0f4ab0e1df5b"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:23:30 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:23:30 2025 +0000"
      },
      "message": "jwt_set_json(): fix leaks in two cases\n\nWe need to make sure to call json_decref() in cases where the json_t ref is\nnot taken by the underlying header/payload json_t object.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "3b735a8d49025048ae53f9edb70e0f4ab0e1df5b",
      "tree": "0d04b27f6140a5b3b7a576e22a240c3c79b47ce7",
      "parents": [
        "04a632007346b857bd795b1420412681524da613"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:22:07 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:22:07 2025 +0000"
      },
      "message": "openssl: fix leak on ec_sig path\n\nopenssl_verify_sha_pem() was allocating a new buffer when doing ec_sig\nand was not freeing it.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "04a632007346b857bd795b1420412681524da613",
      "tree": "d3de97d828bd602d1cccd8fb18fa635fe9b0c676",
      "parents": [
        "3f790015277daca7ff5b4a61dc820fedaed4efc0"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:21:26 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:21:26 2025 +0000"
      },
      "message": "gnutls: fix double call of gnutls_pubkey_init()\n\nCausing a leak on every verify.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "3f790015277daca7ff5b4a61dc820fedaed4efc0",
      "tree": "aee48556b9e5f8b920b25aed5db6b79370220947",
      "parents": [
        "528ffe64389625cd9117d20e2d3a372296c20b85"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:20:59 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:20:59 2025 +0000"
      },
      "message": "tests: Fix some memory leaks in the testing\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "528ffe64389625cd9117d20e2d3a372296c20b85",
      "tree": "8ab81790cb4a9a21c2ff9a95a6a02972a5d6a05f",
      "parents": [
        "84101b13d944f894b445f584a9a36ab583239657"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:19:38 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Mar 04 10:19:38 2025 +0000"
      },
      "message": "memcheck: Force valgrind to follow exec*()\n\nWell damn, the MemCheck has only ever been testing bash, not the test\nprograms. Fixed, and found some leaks.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "84101b13d944f894b445f584a9a36ab583239657",
      "tree": "17342ba06dfb2026520ea1054fa8712ea2186d65",
      "parents": [
        "96dbe9a2b26238b7325187d7b54de7216f0b650b"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 03 12:03:16 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Mar 03 12:03:16 2025 +0000"
      },
      "message": "jwt_verify_sig: Remove extraneous call to jwt_base64uri_decode()\n\nThis is only used on the non-HMAC case.\n\nFixes #212\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "96dbe9a2b26238b7325187d7b54de7216f0b650b",
      "tree": "2519fc1edb00e3fa69b3d26fedd5d0e238860ce4",
      "parents": [
        "d7f494b2de24f5d12d81b47dfebd3485e619e255"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 21 15:49:06 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 21 15:49:06 2025 +0000"
      },
      "message": "tests/jwt_jwks: CUrl error strings vary\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "d7f494b2de24f5d12d81b47dfebd3485e619e255",
      "tree": "3976a7c1288ff22279846580e575759322d725bc",
      "parents": [
        "ef87e5be170c1da887d7afab0ef9c5c7609ddd88"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 21 02:27:08 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 21 02:27:08 2025 +0000"
      },
      "message": "tests/jwt_builder: Set timeout to 30 on stress test\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "ef87e5be170c1da887d7afab0ef9c5c7609ddd88",
      "tree": "f300873b336c592bd9cb427ffb31502de57cdd3e",
      "parents": [
        "2d90a2a81d9fbdd299a607453a6a253a70998eaf"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 07:20:48 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 07:24:54 2025 -0500"
      },
      "message": "jwks_load_fromurl: Correct usage of SSL verify in libcurl\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "2d90a2a81d9fbdd299a607453a6a253a70998eaf",
      "tree": "578917b17a538f825a502635b60dafdf6c2d1afe",
      "parents": [
        "a46a08c4b40e92f97a9fb57cc52f5251d50fb52e"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 06:58:57 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 06:58:57 2025 -0500"
      },
      "message": "tests: Stress test ES256\n\nWe do this in the hopes of hitting a few lines of code in GnuTLS that\nare arbitrarily hit based on EC improbability.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "a46a08c4b40e92f97a9fb57cc52f5251d50fb52e",
      "tree": "1ed0be2acac43ebe3db2b8487fdd0d547475aadf",
      "parents": [
        "89727aae38446d421ad6461395589dafba50dc09"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 06:51:33 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 06:51:33 2025 -0500"
      },
      "message": "workflow: Install bats for test builds\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "89727aae38446d421ad6461395589dafba50dc09",
      "tree": "29da3941eec12c68cdb8b88654b69c49fd86b61e",
      "parents": [
        "b76a984d0ac197a9b96e63dec049417dad2cadab"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 06:48:02 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Fri Feb 14 06:48:02 2025 -0500"
      },
      "message": "codecov: Complete coverage\n\n- Added some test cases\n- Cleaned up some code\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "b76a984d0ac197a9b96e63dec049417dad2cadab",
      "tree": "ad34487440bc3904b453e771b927d15bd8e95b1d",
      "parents": [
        "b7462435dd8b5d79886d27c270b456197eec1f1a"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 22:19:20 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 22:19:20 2025 -0500"
      },
      "message": "v3.2.0\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "b7462435dd8b5d79886d27c270b456197eec1f1a",
      "tree": "9340ef871a94c4e71dee3e1a6d01f665d059b3cb",
      "parents": [
        "0eb5c8c44b5d297b41acb1bb2f6775ef54519607"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 22:01:41 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 22:01:41 2025 -0500"
      },
      "message": "Updates to builds for curl\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "0eb5c8c44b5d297b41acb1bb2f6775ef54519607",
      "tree": "90231dd9c4e3f1d262f1de4c5cc297e4e0e291c1",
      "parents": [
        "c7fbb4d5e846f8bb9196806efc35b4ff5242ec80"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 21:52:45 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 21:52:45 2025 -0500"
      },
      "message": "jwks_load_fromurl(): Add verify param\n\nMeant for enabling or disabling SSL certificate verification.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "c7fbb4d5e846f8bb9196806efc35b4ff5242ec80",
      "tree": "d3ae06a7331fb13af5e7da170a0e0722b6a9747a",
      "parents": [
        "cc305d294523505929dcfd104e8af9f619c447bd"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 21:36:02 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 21:36:02 2025 -0500"
      },
      "message": "jwks_load_fromurl(): New function to load JWKS from a URL\n\ne.g. https://example.com/.well-known/jwks.json\n\nRequires libcurl\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "cc305d294523505929dcfd104e8af9f619c447bd",
      "tree": "a6d88c8d18ac94f9a15ec12a0b482e1669cc006e",
      "parents": [
        "62a6f564eb7228a2bfbd7652eedb002b92553b97"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 16:01:17 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 16:01:17 2025 -0500"
      },
      "message": "base64: Rework to cover lines in base64 that were excluded\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "62a6f564eb7228a2bfbd7652eedb002b92553b97",
      "tree": "86017b1fb586441c0649be1cbd782e99b892778d",
      "parents": [
        "99cd27d258c211dba7e52999e5d1658ec636a22d"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 15:47:31 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 15:47:31 2025 -0500"
      },
      "message": "jwks_find_bykid: New function to find keys by \"kid\"\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "99cd27d258c211dba7e52999e5d1658ec636a22d",
      "tree": "404d2e7c36baaece51db9f9e0424ca54d0fe4725",
      "parents": [
        "40b28567b15ef8399c61ae7dd438b93ab71ec9cc"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 15:04:12 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 15:04:12 2025 -0500"
      },
      "message": "setcb: Allow setting a new ctx for existing cb setup\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "40b28567b15ef8399c61ae7dd438b93ab71ec9cc",
      "tree": "d456f637ee73fed128040d05cb552c4939bf8e2b",
      "parents": [
        "b9eff948ce1c1c29483deda8ed64f6ddfadee8ef"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 13:25:39 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 13:25:39 2025 -0500"
      },
      "message": "doxygen: Allow 1.9.8 version so it produces output on debian/unstable\n\nThese Linux distros really need to catch up on this package\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "b9eff948ce1c1c29483deda8ed64f6ddfadee8ef",
      "tree": "e608a28dab6432a44a1c247ccfcb82d6c1be6971",
      "parents": [
        "032b0d2fa1626ffbd46fa2362f4ccadcdf631dd8"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 11:45:20 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 11:45:20 2025 -0500"
      },
      "message": "jwt-common: Make jwt-builder and jwt-checker truly generated at build time\n\nStill keeps the code coverage and mingw builds working.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "032b0d2fa1626ffbd46fa2362f4ccadcdf631dd8",
      "tree": "adcb0678cd97a455e45c23e7abe8ecab8354897f",
      "parents": [
        "615f5b333b76faa32609ba2190e63c13029539ff"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 11:21:54 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 11:21:54 2025 -0500"
      },
      "message": "cmake: Call sed directly and remove Makefile for jwt-common.c gen\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "615f5b333b76faa32609ba2190e63c13029539ff",
      "tree": "9fd75eb9e4dc74dddb324ed2590fd17b25fbd075",
      "parents": [
        "6f8bcdbdb8e2b30fd790fd7e66b6d0970715479e"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 11:06:48 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 11:06:48 2025 -0500"
      },
      "message": "jwt-common: Ensure builder and checker get generated on changes\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "6f8bcdbdb8e2b30fd790fd7e66b6d0970715479e",
      "tree": "5d2200faded782e44ed9ec5480bd92538526f883",
      "parents": [
        "519abb6f0f14b6c0fc01b07bfff4663f8b1bb14a"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 10:46:25 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 10:46:25 2025 -0500"
      },
      "message": "codecov: jwt-common \u003d\u003e gen\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "519abb6f0f14b6c0fc01b07bfff4663f8b1bb14a",
      "tree": "ddf17ead2a6ea9bc5f54da06d30259f1ebec7f36",
      "parents": [
        "e9e8a5a20afd1ed77410cf8150bedead7ac4ab90"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 10:43:43 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 10:43:43 2025 -0500"
      },
      "message": "codecov: More codecoverage, more tests\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "e9e8a5a20afd1ed77410cf8150bedead7ac4ab90",
      "tree": "18d6e700f72985b72acdf477c3b3566cb5549dac",
      "parents": [
        "2b8c1fce86e43fb5a41a0bdf7412ee9fb969f4dd"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 08:25:31 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 08:25:31 2025 -0500"
      },
      "message": "v3.1.0\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "2b8c1fce86e43fb5a41a0bdf7412ee9fb969f4dd",
      "tree": "de5a619c197d83ee94396ae885f4f765e8d46102",
      "parents": [
        "4ea993a23f589b2bc7de339863757af6c4a3cac5"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 08:12:36 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 08:12:36 2025 -0500"
      },
      "message": "mingw: Add cmake snippet for easier setup\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "4ea993a23f589b2bc7de339863757af6c4a3cac5",
      "tree": "ce4a933f517a45f990e44b42918057165bdc6b72",
      "parents": [
        "db9f17c42ea9bc15cc64b80e0e9b94571a4466f2"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 08:06:42 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 08:06:42 2025 -0500"
      },
      "message": "win32: Compile working\n\nCloses #208\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "db9f17c42ea9bc15cc64b80e0e9b94571a4466f2",
      "tree": "56e45469b8dee467c59be2793999222415c51ed9",
      "parents": [
        "546ce331b5870e11018398bcfc6ab7efda278c1e"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 07:39:13 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 07:39:13 2025 -0500"
      },
      "message": "example.sh: Show jwk during example output\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "546ce331b5870e11018398bcfc6ab7efda278c1e",
      "tree": "377a77de32b6a279197dfe6f1eb1acfe91a791fa",
      "parents": [
        "ea9cc324c2664eab78db17ca1ed1e5a7a5eeb7a9"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 07:31:06 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 07:31:06 2025 -0500"
      },
      "message": "tools: Hopefully some capitability for win32\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "ea9cc324c2664eab78db17ca1ed1e5a7a5eeb7a9",
      "tree": "561a58a26642d618f00c581cdf50783bb72c0bdf",
      "parents": [
        "ec04179348a1847029a08c2218adfc1c0df63b18"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 07:10:50 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 07:10:50 2025 -0500"
      },
      "message": "key2jwk: win32 fixes\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "ec04179348a1847029a08c2218adfc1c0df63b18",
      "tree": "d7602114b5a4ec4bd80f41b11f60e66bf06aef08",
      "parents": [
        "4278a6eee679bb38a62900955d72aeb1a31a23cf"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 06:59:04 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 06:59:04 2025 -0500"
      },
      "message": "codecov: Covering more corner cases\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "4278a6eee679bb38a62900955d72aeb1a31a23cf",
      "tree": "345d7e4dd18b51428f846d1930f6139bf8a09772",
      "parents": [
        "c19aef6805f1dc3210cec1212b29d3075ed72c1c"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 21:25:03 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 21:25:03 2025 -0500"
      },
      "message": "coverage: Cannot force json errors\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "c19aef6805f1dc3210cec1212b29d3075ed72c1c",
      "tree": "f728bba4c4f4c6f3c8a7549a3d6dc8fa14bb96ca",
      "parents": [
        "70b92e338fd84a22163b05471571718e24de697f"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 21:20:34 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 21:20:34 2025 -0500"
      },
      "message": "jwt_strdup: No more users of this, remove\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "70b92e338fd84a22163b05471571718e24de697f",
      "tree": "296d5a3483e1c0c64688b92cf8ba46f07029b17f",
      "parents": [
        "2ea11b126a63990eebfe2ebacc79a9d44d271c4f"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 21:00:11 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 21:02:12 2025 -0500"
      },
      "message": "jwt-memory: Last user of realloc is gone\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "2ea11b126a63990eebfe2ebacc79a9d44d271c4f",
      "tree": "98b94c40d4ce3510ce90bcdddc63839300426faf",
      "parents": [
        "d0d464e1e09886f48e3e09e2b53b88011f9aa67a"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 01:56:06 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 13 01:56:06 2025 +0000"
      },
      "message": "openssl/verify_sha: Fix double free on EC sigs\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "d0d464e1e09886f48e3e09e2b53b88011f9aa67a",
      "tree": "3df0ae7a71fd9d8720baadf4eb53fd52faf5f6ad",
      "parents": [
        "5001ad71488b18a32703d232addf5a296746bff1"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 20:08:27 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 20:08:27 2025 -0500"
      },
      "message": "verify_sha: Move base64 decode out of crypto backends\n\nNo reason to put that in there.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "5001ad71488b18a32703d232addf5a296746bff1",
      "tree": "c0a1048d5b4e01e41cfe3847766ac83f42a3e7bb",
      "parents": [
        "0d15d75fb3d24c96218ad5dca458cc0cc9d76a8a"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 19:42:32 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 19:42:32 2025 -0500"
      },
      "message": "hmac_verify: Move to common code\n\nThis basically just does a hmac_sign and compare. The crypto backends\nall did the same thing.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "0d15d75fb3d24c96218ad5dca458cc0cc9d76a8a",
      "tree": "737d36444534d224b4d1b556d73c3dacab8d1007",
      "parents": [
        "b4946997811b65618ef664f790fb28dc51119f96"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 17:09:21 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 17:09:58 2025 -0500"
      },
      "message": "jwks: Implement jwks_error_any(), jwks_item_free_bad(), and jwks_item_count()\n\nCloses #209\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "b4946997811b65618ef664f790fb28dc51119f96",
      "tree": "ed04b0c8a965a9d0baff687ea0577d8b7c90a29f",
      "parents": [
        "734c0c5840ca5ec3e38da595c880dd9b51d7624d"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 15:33:46 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 15:33:46 2025 -0500"
      },
      "message": "jwt-cli.bats: Delete output files before running test\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "734c0c5840ca5ec3e38da595c880dd9b51d7624d",
      "tree": "6a9c3cc81d7a27ecf0e07a9ff9e98eed7e202da4",
      "parents": [
        "444ea08d0e1ab543091f0f52ac96969cdf08c0fc"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 15:30:52 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 15:30:52 2025 -0500"
      },
      "message": "jwt-common: Generate jwt-builder and jwt-checker\n\nThe way I was build this was causing some off issues, especially for\nwindows builds. The dll* attributes don\u0027t like playing these games.\n\nIn retrospect, autoconf/make would have handled this nicely. I could\nhave done a %.c:%.i make rule and built off of there, but cmake does not\nappear to have anything that easy.\n\nOh well, builder and checker have way too much code in commong to split\nthem, so for now this is still the easier option.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "444ea08d0e1ab543091f0f52ac96969cdf08c0fc",
      "tree": "8f003cc3c5d751d61c6eabd7172326b3ac9b63d4",
      "parents": [
        "e976cdbe3b8ef683701567e974f29687694cdc79"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 13:27:02 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 13:27:02 2025 -0500"
      },
      "message": "jwt-cli: Add more tests and connect in with unit testing\n\nThe tools/*.c files are not part of coverage, yet.\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "e976cdbe3b8ef683701567e974f29687694cdc79",
      "tree": "f78959d243d866467c3c78e47eef259e8d3a1359",
      "parents": [
        "67cb474de0eb32adfed2e3d36096b7fd7e0e91f9"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 12:49:33 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 12:49:33 2025 -0500"
      },
      "message": "jwt-common: Call __setkey_check directly\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "67cb474de0eb32adfed2e3d36096b7fd7e0e91f9",
      "tree": "df7a04b8326020b94c116bdf298769e042bfe455",
      "parents": [
        "67e875af7136768485930dc6c0d1c2a74c91c522"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 12:49:00 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 12:49:00 2025 -0500"
      },
      "message": "key2jwt: Fix unchecked buffer length\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "67e875af7136768485930dc6c0d1c2a74c91c522",
      "tree": "dfce7d77b13d245a17950b7e047fdf6b7ec99d29",
      "parents": [
        "64a2f8205bfe301b2f722fc11683a864a38709c7"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 11:06:34 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 11:06:34 2025 -0500"
      },
      "message": "CLeanup jwt-common exports\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "64a2f8205bfe301b2f722fc11683a864a38709c7",
      "tree": "a51d0cf8787e4616372c972937ba816c0121255d",
      "parents": [
        "74c92673668a44962e537954e71987ebbcff14cc"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 06:02:32 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Wed Feb 12 06:02:32 2025 -0500"
      },
      "message": "cmake: enable CMAKE_POSITION_INDEPENDENT_CODE\n\nCloses #207\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "74c92673668a44962e537954e71987ebbcff14cc",
      "tree": "9797740a3fa81a9d64706b146581a89f0d385abb",
      "parents": [
        "c830d69671bc6ca5eed5f4fb1195510978e8bb38"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:52:24 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:52:24 2025 -0500"
      },
      "message": "jwt-cli.bats: 2 more tests with claims\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "c830d69671bc6ca5eed5f4fb1195510978e8bb38",
      "tree": "994087df364f12fd2470395d6340af71773ccc2f",
      "parents": [
        "58bac47a451cc158855ca47c26466735b9afd99b"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:52:05 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:52:05 2025 -0500"
      },
      "message": "tools/jwt-generate: Fix missing \u0027c\u0027 optarg\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "58bac47a451cc158855ca47c26466735b9afd99b",
      "tree": "ca15295beca5c58995fc3ab563258be3a0b6f67b",
      "parents": [
        "14a9d436a535df07ea7983aa87124bbccb0a18ea"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:39:44 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:39:44 2025 -0500"
      },
      "message": "tests/jwt-cli.bats: Start of new cli testing framework for tools\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "14a9d436a535df07ea7983aa87124bbccb0a18ea",
      "tree": "da98a6f9eb482a41939ddbb216a80334506d3a0f",
      "parents": [
        "ef5560ab5e6931cd997cd9ccc073a0007e4ca033"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:38:36 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 18:38:36 2025 -0500"
      },
      "message": "tools/jwt-generate: Add --no-iat cli option\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "ef5560ab5e6931cd997cd9ccc073a0007e4ca033",
      "tree": "df9ebdb5f859c04d5fb7f030023e199097299e6d",
      "parents": [
        "4b0816dd57ae172340493f9fd800ba2024350d6e"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 22:49:14 2025 +0000"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 22:49:14 2025 +0000"
      },
      "message": "tools/example.sh: Set expire based on current time\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "4b0816dd57ae172340493f9fd800ba2024350d6e",
      "tree": "d9282c7c84f1a6b6bf7b6e6acbda4f581efc929e",
      "parents": [
        "97bb1e5cdd0c47e3d60eb7c44c7214ff4ad7b4c4"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 13:52:32 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 13:52:32 2025 -0500"
      },
      "message": "Update docs descriptions\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "97bb1e5cdd0c47e3d60eb7c44c7214ff4ad7b4c4",
      "tree": "1e9846fba17111ceb80b2537fbda552d9fd2990e",
      "parents": [
        "32d599e6fcd924b9759d507de2f1785376c75e43"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 07:32:41 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 07:32:41 2025 -0500"
      },
      "message": "v3.0.0\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "32d599e6fcd924b9759d507de2f1785376c75e43",
      "tree": "9046bbdc867789c67232354e0356d3e8fb4edd43",
      "parents": [
        "da7dc6bce349851be16c0aea713ae0d70180ca58"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 06:55:26 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Tue Feb 11 06:55:26 2025 -0500"
      },
      "message": "Lots of docs updated...about ready for a v3.0.0 release\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "da7dc6bce349851be16c0aea713ae0d70180ca58",
      "tree": "f1bdc045b9097da41abf4a7e810b277055b8c9b7",
      "parents": [
        "213b107bed7b0e8e43d1d7f35283e506659b0a54"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 19:13:45 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 19:13:45 2025 -0500"
      },
      "message": "Move coverage\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "213b107bed7b0e8e43d1d7f35283e506659b0a54",
      "tree": "99ec17ee0e456afb23de1e2fa12d00fa92709b85",
      "parents": [
        "8154953e3d29ff83f6397a98f16a623b9086a742"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 09:08:03 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 09:08:03 2025 -0500"
      },
      "message": "Fix comparison example for handling nbf and exp\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "8154953e3d29ff83f6397a98f16a623b9086a742",
      "tree": "30f07222adacba8a80f7f860a8a4e23c176642d7",
      "parents": [
        "f1940fcb5f8ffd935bf5d7cd163a62bf498f3958"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 08:45:26 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 08:45:26 2025 -0500"
      },
      "message": "Rework doc building\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "f1940fcb5f8ffd935bf5d7cd163a62bf498f3958",
      "tree": "f12828a5f3b23c115a60fc3263d6358ea2817e0b",
      "parents": [
        "82383fe9bef16a2b4fdff68bc316ebc57f2320c4"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 08:42:02 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 08:42:02 2025 -0500"
      },
      "message": "We do not have examples anymore\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "82383fe9bef16a2b4fdff68bc316ebc57f2320c4",
      "tree": "dd34a97983e19e52e434d1c1e28b31fcc4495b6c",
      "parents": [
        "ca85718829e44a4dba75f34634221e7892ee02d3"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 08:31:39 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Mon Feb 10 08:31:39 2025 -0500"
      },
      "message": "ADD \u003d\u003e SET\n\nRework claims specific to builder and checker\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "ca85718829e44a4dba75f34634221e7892ee02d3",
      "tree": "3eabca8de4115566f83cc9ee5f16bff58d70c22b",
      "parents": [
        "d58ae7f4ac7d84fbab109967af878c2db1196093"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Feb 08 09:39:53 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Feb 08 09:39:53 2025 -0500"
      },
      "message": "Update Copyrights for 2025 code changes\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "d58ae7f4ac7d84fbab109967af878c2db1196093",
      "tree": "f16bb1425401301747ad15b4591c482485559597",
      "parents": [
        "af46f65897dba0062cf2cb0f07847df914ab0c9d"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Feb 08 06:45:28 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Feb 08 06:45:28 2025 -0500"
      },
      "message": "Fix setting of DEFINE_MICRO version\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "af46f65897dba0062cf2cb0f07847df914ab0c9d",
      "tree": "32abbe7abf99a0ee0636fca19c457d902f9a7e0d",
      "parents": [
        "06009901c29b5df54b21c6644c90772b377780ee"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Feb 08 05:21:22 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Sat Feb 08 05:21:22 2025 -0500"
      },
      "message": "coverage: Ignore more unreachable lines (malloc, etc)\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "06009901c29b5df54b21c6644c90772b377780ee",
      "tree": "72ea66fcdcc632da7d0c1eb4683767bf168215fe",
      "parents": [
        "f4cfdcff08106bdbd8b14426075b3086507a7a1e"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 06 22:09:03 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 06 22:09:03 2025 -0500"
      },
      "message": "Add tests for nbf and exp leeway usage\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    },
    {
      "commit": "f4cfdcff08106bdbd8b14426075b3086507a7a1e",
      "tree": "e37f6ed9092ac28583e25f4be604f7605d1d5874",
      "parents": [
        "3c0d4fac39529e028121ec393c142fa502280582"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 06 17:21:18 2025 -0500"
      },
      "committer": {
        "name": "Ben Collins",
        "email": "bcollins@libjwt.io",
        "time": "Thu Feb 06 17:21:18 2025 -0500"
      },
      "message": "More coverage\n\nSigned-off-by: Ben Collins \u003cbcollins@libjwt.io\u003e\n"
    }
  ],
  "next": "3c0d4fac39529e028121ec393c142fa502280582"
}
