Ben Collins
8ac420048a
One compiler's warning is another's error
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-08 02:40:30 +00:00
Ben Collins
bdbed377a6
Fix typo
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-07 22:01:02 +00:00
Ben Collins
5f2c45ec2b
kcapi: Enable offloading HS algs to kcapi
...
Linux Kernel Crypto API
At some point I'd like to make use of kcapi to store keys for persistent
crypto ops.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-07 21:32:39 +00:00
Ben Collins
e5f00796c7
jwks_load_strn: Don't toy around with pointer expectations
...
Remove use of __FLAG_EMPTY as indirect way of signaling that NULL was ok
to pass to this function.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-07 09:31:15 +00:00
Ben Collins
f31983dfef
tests/jwt_builder: Increase test time outs more
...
Signed-off-by: Ben Collins <bcollins@swissdisk.com>
2025-03-04 14:52:00 +00:00
Ben Collins
e58c61a416
tests/jwt_builder: Increase timeouts for memcheck
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-04 11:13:53 +00:00
Ben Collins
035958164b
jwt_set_json(): fix leaks in two cases
...
We need to make sure to call json_decref() in cases where the json_t ref is
not taken by the underlying header/payload json_t object.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-04 10:23:30 +00:00
Ben Collins
3b735a8d49
openssl: fix leak on ec_sig path
...
openssl_verify_sha_pem() was allocating a new buffer when doing ec_sig
and was not freeing it.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-04 10:22:07 +00:00
Ben Collins
04a6320073
gnutls: fix double call of gnutls_pubkey_init()
...
Causing a leak on every verify.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-04 10:21:26 +00:00
Ben Collins
3f79001527
tests: Fix some memory leaks in the testing
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-04 10:20:59 +00:00
Ben Collins
528ffe6438
memcheck: Force valgrind to follow exec*()
...
Well damn, the MemCheck has only ever been testing bash, not the test
programs. Fixed, and found some leaks.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-04 10:19:38 +00:00
Ben Collins
84101b13d9
jwt_verify_sig: Remove extraneous call to jwt_base64uri_decode()
...
This is only used on the non-HMAC case.
Fixes #212
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-03-03 12:03:16 +00:00
Ben Collins
96dbe9a2b2
tests/jwt_jwks: CUrl error strings vary
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-21 15:49:06 +00:00
Ben Collins
d7f494b2de
tests/jwt_builder: Set timeout to 30 on stress test
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-21 02:27:08 +00:00
Ben Collins
ef87e5be17
jwks_load_fromurl: Correct usage of SSL verify in libcurl
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-14 07:24:54 -05:00
Ben Collins
2d90a2a81d
tests: Stress test ES256
...
We do this in the hopes of hitting a few lines of code in GnuTLS that
are arbitrarily hit based on EC improbability.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-14 06:58:57 -05:00
Ben Collins
a46a08c4b4
workflow: Install bats for test builds
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-14 06:51:33 -05:00
Ben Collins
89727aae38
codecov: Complete coverage
...
- Added some test cases
- Cleaned up some code
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-14 06:48:02 -05:00
Ben Collins
b76a984d0a
v3.2.0
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 22:19:20 -05:00
Ben Collins
b7462435dd
Updates to builds for curl
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 22:01:41 -05:00
Ben Collins
0eb5c8c44b
jwks_load_fromurl(): Add verify param
...
Meant for enabling or disabling SSL certificate verification.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 21:52:45 -05:00
Ben Collins
c7fbb4d5e8
jwks_load_fromurl(): New function to load JWKS from a URL
...
e.g. https://example.com/.well-known/jwks.json
Requires libcurl
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 21:36:02 -05:00
Ben Collins
cc305d2945
base64: Rework to cover lines in base64 that were excluded
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 16:01:17 -05:00
Ben Collins
62a6f564eb
jwks_find_bykid: New function to find keys by "kid"
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 15:47:31 -05:00
Ben Collins
99cd27d258
setcb: Allow setting a new ctx for existing cb setup
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 15:04:12 -05:00
Ben Collins
40b28567b1
doxygen: Allow 1.9.8 version so it produces output on debian/unstable
...
These Linux distros really need to catch up on this package
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 13:25:39 -05:00
Ben Collins
b9eff948ce
jwt-common: Make jwt-builder and jwt-checker truly generated at build time
...
Still keeps the code coverage and mingw builds working.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 11:45:20 -05:00
Ben Collins
032b0d2fa1
cmake: Call sed directly and remove Makefile for jwt-common.c gen
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 11:21:54 -05:00
Ben Collins
615f5b333b
jwt-common: Ensure builder and checker get generated on changes
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 11:06:48 -05:00
Ben Collins
6f8bcdbdb8
codecov: jwt-common => gen
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 10:46:25 -05:00
Ben Collins
519abb6f0f
codecov: More codecoverage, more tests
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 10:43:43 -05:00
Ben Collins
e9e8a5a20a
v3.1.0
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 08:25:31 -05:00
Ben Collins
2b8c1fce86
mingw: Add cmake snippet for easier setup
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 08:12:36 -05:00
Ben Collins
4ea993a23f
win32: Compile working
...
Closes #208
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 08:06:42 -05:00
Ben Collins
db9f17c42e
example.sh: Show jwk during example output
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 07:39:13 -05:00
Ben Collins
546ce331b5
tools: Hopefully some capitability for win32
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 07:31:06 -05:00
Ben Collins
ea9cc324c2
key2jwk: win32 fixes
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 07:10:50 -05:00
Ben Collins
ec04179348
codecov: Covering more corner cases
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 06:59:04 -05:00
Ben Collins
4278a6eee6
coverage: Cannot force json errors
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 21:25:03 -05:00
Ben Collins
c19aef6805
jwt_strdup: No more users of this, remove
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 21:20:34 -05:00
Ben Collins
70b92e338f
jwt-memory: Last user of realloc is gone
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 21:02:12 -05:00
Ben Collins
2ea11b126a
openssl/verify_sha: Fix double free on EC sigs
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-13 01:56:06 +00:00
Ben Collins
d0d464e1e0
verify_sha: Move base64 decode out of crypto backends
...
No reason to put that in there.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 20:08:27 -05:00
Ben Collins
5001ad7148
hmac_verify: Move to common code
...
This basically just does a hmac_sign and compare. The crypto backends
all did the same thing.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 19:42:32 -05:00
Ben Collins
0d15d75fb3
jwks: Implement jwks_error_any(), jwks_item_free_bad(), and jwks_item_count()
...
Closes #209
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 17:09:58 -05:00
Ben Collins
b494699781
jwt-cli.bats: Delete output files before running test
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 15:33:46 -05:00
Ben Collins
734c0c5840
jwt-common: Generate jwt-builder and jwt-checker
...
The way I was build this was causing some off issues, especially for
windows builds. The dll* attributes don't like playing these games.
In retrospect, autoconf/make would have handled this nicely. I could
have done a %.c:%.i make rule and built off of there, but cmake does not
appear to have anything that easy.
Oh well, builder and checker have way too much code in commong to split
them, so for now this is still the easier option.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 15:30:52 -05:00
Ben Collins
444ea08d0e
jwt-cli: Add more tests and connect in with unit testing
...
The tools/*.c files are not part of coverage, yet.
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 13:27:02 -05:00
Ben Collins
e976cdbe3b
jwt-common: Call __setkey_check directly
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 12:49:33 -05:00
Ben Collins
67cb474de0
key2jwt: Fix unchecked buffer length
...
Signed-off-by: Ben Collins <bcollins@libjwt.io>
2025-02-12 12:49:00 -05:00