Vincent Prouillet
c9c94c2b02
Change default leeway
2022-02-02 22:10:11 +01:00
Vincent Prouillet
bebeb5f222
Fix #220
2022-02-02 22:10:11 +01:00
Andrew Walbran
7301e928b0
Implement Clone, Eq and PartialEq for Error. ( #218 )
...
* Implement Eq and PartialEq for Error.
* Implement Clone for Error.
serde_json::Error doesn't implement Clone, so wrapped it in an Arc.
2022-02-02 22:10:11 +01:00
Vincent Prouillet
855793f6a9
Beta 5
2022-02-02 22:10:11 +01:00
Vincent Prouillet
ebef09e9ab
Update CI pinned version
2022-02-02 22:10:11 +01:00
Adam Gleave
369d1090bb
(`next`) Remove chrono ( #213 )
...
* Remove chrono from all dependencies
* Fix tests
* Fix tests and comments
2022-02-02 22:10:11 +01:00
emeryc
2cc95b9f37
Numeric type ( #214 )
...
* exp & nbf as float
In order to properly align with JWT NumericType wire protocol
allow for type on wire to either be u64 or f64. In either case we
convert in the most lossless way possible to a u64, so that nobody
needs to know that the spec is overly permissive.
* minimal cleanup
2022-02-02 22:10:11 +01:00
Vincent Prouillet
733d29aa87
Add back Validation::default()
...
Closes #208
2022-02-02 22:10:11 +01:00
Vincent Prouillet
2e8aa8d3f8
Beta 3
2022-02-02 22:10:11 +01:00
Ten0
f9771f7835
Improve deserialization performance around validation and its tests ( #202 )
...
* Improve deserialization performance around validation and its tests
The claims validation was done via deserializing into a Map, which
implies allocations/deallocations. This was done even if the map was not
used afterwards.
This commit improves performance of the validation by never
deserializing in a `Map`, and deserializing only when necessary, to
a struct that typically only borrows from the original b64-decoded
json string.
The validation function interface change required update to the tests,
which are also made easier to read by using the `serde_json::json!`
macro.
* unrelated: fix bench compilation
2022-02-02 22:10:11 +01:00
Vincent Prouillet
1dcfda92f0
Unify various decode into the validation struct ( #199 )
2022-02-02 22:10:11 +01:00
Ten0
6a7eec9030
Add support for x5t#S256 header ( #203 )
2022-02-02 22:10:11 +01:00
Vincent Prouillet
a11106faff
Add types for JWK/JWKS based on biscuit ( #195 )
...
* Add types for JWK/JWKS based on biscuit
* Address comments
* Fix issues
2022-02-02 22:10:11 +01:00
Matteo Bertucci
94fef12259
Docs: fix copy paste error in ErrorKind::InvalidSubject ( #196 )
...
The documentation for `ErrorKind::InvalidSubject` mentioned the `aud` claim instead of `sub`. This commit fixes it.
2022-02-02 22:10:11 +01:00
Vincent Prouillet
3e245e3e6b
Allow uppercase algorithms (too much breakage otherwise)
2022-02-02 22:10:11 +01:00
Vincent Prouillet
b6dafd63dd
Make Validation::algorithms an error if empty
2022-02-02 22:10:11 +01:00
Jarred Nicholls
fd2c314d3c
Add tests for Header::x5c_der(), and modify its return type to be fallible. ( #185 )
2022-02-02 22:10:11 +01:00
Jarred Nicholls
8bdc5215ea
Add an access method to decode the Header x5c field into DER PKIX format. ( #184 )
2022-02-02 22:10:11 +01:00
Saber Haj Rabiee
45fb43c1f7
removed unnecessary conversions ( #180 )
...
* removed unnecessary conversions
2022-02-02 22:10:11 +01:00
Oliver Thallmair
de5a1903b0
add x5c header ( #182 )
...
* add x5c header
* fix format
2022-02-02 22:10:11 +01:00
Saber Haj Rabiee
f3566ecd82
clone-free validate function ( #179 )
...
* clone-free validate function
It could save up to 300ns in my benches
2022-02-02 22:10:11 +01:00
Saber Haj Rabiee
d8cc36dd0c
clone-free serde Value deserialization ( #178 )
...
* clone-free serde Value deserialization
2022-02-02 22:10:11 +01:00
Saber Haj Rabiee
9fd9db55cd
Update validation.rs ( #176 )
2022-02-02 22:10:11 +01:00
Vincent Prouillet
6f05ec9a1a
v8 beta1
2022-02-02 22:10:11 +01:00
Saber Haj Rabiee
da761fe039
checking iss for multiple values ( #173 )
2022-02-02 22:10:11 +01:00
Vincent Prouillet
48770d4797
Prepare for v8
2022-02-02 22:10:11 +01:00
Vincent Prouillet
874952b7a5
More clippy
2022-02-02 22:10:11 +01:00
Vincent Prouillet
c9442834ed
Make DecodingKey own all the data
...
Closes #120
Supersedes #128
2022-02-02 22:10:11 +01:00
Vincent Prouillet
60c92f2882
Fix clippy
2022-02-02 22:10:11 +01:00
Vincent Prouillet
f50e4901cb
Avoid allocation
2022-02-02 22:10:11 +01:00
Adrian Black
2aad217087
add verify_sig fn ( #161 )
...
* add verify_sig fn
* fix missing comma
* fmt whitespace changes
2022-02-02 22:10:11 +01:00
Vincent Prouillet
d2c8ae3f11
Impl PartialEq for ErrorKind
...
Closes #125
2022-02-02 22:10:11 +01:00
Vincent Prouillet
5c706b005a
Remove deprecated fn
2022-02-02 22:10:11 +01:00
Vincent Prouillet
2c9c57fc4b
Expose get_current_timestamp
...
Closes #152
2022-02-02 22:10:11 +01:00
Vincent Prouillet
30571cafd2
Keep RSA key error message from ring
...
Closes #164
2022-02-02 22:10:11 +01:00
Vincent Prouillet
2662f6ad1f
fmt + clippy
2022-02-02 22:10:11 +01:00
Vincent Prouillet
ea4ed55551
Bytes everywhere for sign/verify
2022-02-02 22:10:11 +01:00
Charles Lehner
4aee8bc382
Add sign and verify on bytes ( #150 )
2022-02-02 22:10:11 +01:00
Charles Lehner
2178cc7506
Add EdDSA (Ed25519) ( #154 )
2022-02-02 22:10:11 +01:00
Vincent Prouillet
445dfe037e
Prepare for v8
2022-02-02 22:10:11 +01:00
Arniu Tseng
2f25cbed0a
Add note about encoding keys ( #163 )
...
* Add note about encoding keys
* Update encoding.rs
* Format code
2020-12-07 16:00:44 +01:00
Piotr Maks
90b9700748
Clippy ( #146 )
...
* Bump minimum required Rust version to 1.40
Motivation for this change is use of `#[non_exhaustive]` attribute that
was stabilized in Rust 1.40.0
* Migrate benchmarks to criterion
Remove use of unstable features in favour of criterion benchmarks
* Enable clippy in Github Actions
* Fix clippy::manual_non_exhaustive
Remove manual implementations of the non-exhaustive pattern. Instead
use the `#[non_exhaustive]` attribute.
* Allow reexport of deprecated function
Silence rustc `deprecated` working in function reexport
* Remove redundant clone
* Fix various clippy warnings
* Remove redundant pattern
* Use `unreachable!()` to fail test
* No need to add `&` to all patterns
2020-08-31 12:04:57 +02:00
Piotr Maks
29aad97739
Format code and check style in Github Actions ( #145 )
2020-08-07 18:10:26 +02:00
Vincent Prouillet
a2c259588a
Mention utc timestamps
2020-06-30 21:26:50 +02:00
Ivan Solovev
98efa500f9
Fix documentation ( #142 )
...
* Fix documentation
* Fix types in documentation
2020-06-30 21:25:41 +02:00
Vincent Prouillet
7a7367361f
Prepare for 7.2.0 ( #143 )
2020-06-30 21:25:25 +02:00
Craig Colegrove
64f276c814
Add new function and tests ( #138 )
...
Co-authored-by: Vincent Prouillet <balthek@gmail.com>
2020-06-30 20:03:53 +02:00
Vincent Prouillet
6262b4700b
Slight tweaks
2020-06-30 19:58:11 +02:00
Craig Colegrove
636c0dc203
Rename dangerous_unsafe_decode to dangerous_insecure_decode ( #139 )
...
* Rename dangerous_unsafe_decode to dangerous_insecure_decode
* Add back old function name with deprecation flag
2020-06-30 19:50:45 +02:00
Vincent Prouillet
952d34c139
v7.1.2
2020-06-16 12:07:08 +02:00
Craig Colegrove
693a100128
Derive Hash for Header and Algorithm ( #137 )
2020-06-16 12:04:22 +02:00
Vincent Prouillet
cf6ac78714
Update for 7.1.1 ( #134 )
2020-06-09 22:00:37 +02:00
Marc Mettke
3cae0df3dd
Updating base64 to 0.12 ( #133 )
2020-06-09 21:50:19 +02:00
Valentin Brandl
09aad3ca2f
Fix Broken chrono Example ( #126 )
...
* Add quickcheck as test dependencie
* Use timestamp nanos
* Add test property for en/decoding
* Fix existing test
* Remove quickcheck dependency
* Normalize `DateTime` values in claims
2020-04-24 19:57:51 +02:00
Vincent Prouillet
fa05ece73c
Prepare for 7.1.0
2020-03-01 19:58:18 +01:00
Vincent Prouillet
d00d2f4e4b
Merge pull request #123 from Hexilee/master
...
fix issue 120: DecodingKey can be converted to static
2020-03-01 19:55:01 +01:00
Hexilee
946aef1b57
revert breaking change of DecodingKey
2020-02-28 15:20:41 +08:00
Hexilee
a750d5586f
fix issue 120: DecodingKey can be converted to static
2020-02-28 01:26:58 +08:00
Vincent Prouillet
cecc353f02
Merge pull request #121 from jareddlc/readme-update
...
Update readme
2020-02-21 09:19:06 +01:00
Jared De La Cruz
179f72155f
Add claims and validation to the readme
2020-02-20 22:56:09 -08:00
Vincent Prouillet
2484d47f7d
v7.0.1
2020-01-30 21:28:00 -08:00
Vincent Prouillet
aae977651c
Merge pull request #117 from fujiapple852/hotfix-display-stack-overflow
...
Fix recursive Display::fmt implementation on Error to avoid stack overflow
2020-01-30 21:26:06 -08:00
FujiApple
2f359b515c
- Fix recursive `Display::fmt` implementation on `Error` to avoid stack overflow
...
- Added unit test to cover a sample case
2020-01-31 13:11:40 +08:00
Vincent Prouillet
e89fa41b7a
Merge pull request #91 from Keats/next
...
7.0.0
2020-01-28 23:00:26 -08:00
Vincent Prouillet
b9989d14cf
Prepare for release
2020-01-28 18:18:21 -08:00
Vincent Prouillet
c2f6093309
Get rid of deprecrated std error description
2020-01-27 20:52:46 -08:00
Vincent Prouillet
1cc14b04eb
Beta 1
2020-01-21 07:41:55 -08:00
Vincent Prouillet
e46f8f9d58
Merge pull request #113 from Keats/keys_struct
...
Add EncodingKey & DecodingKey
2020-01-17 20:18:30 +01:00
Vincent Prouillet
689cc6d32e
Validate key type with algo in encode/decode
2020-01-13 19:41:06 +01:00
Vincent Prouillet
4dd2f12c6d
Remove EncodingKey lifetime
2020-01-02 19:40:53 +01:00
Vincent Prouillet
77ae0effc8
Add DecodingKey
2019-12-29 21:50:06 +01:00
Vincent Prouillet
0abeeac25f
Add EncodingKey
2019-12-29 19:33:17 +01:00
Vincent Prouillet
771f955690
Better GH workflow
2019-11-28 19:28:59 +01:00
Vincent Prouillet
bfcfc1d341
Handle aud not being a sequence
...
Closes #110
2019-11-28 19:27:33 +01:00
Vincent Prouillet
499b439cb0
Wrong badge
2019-11-15 20:39:19 +01:00
Vincent Prouillet
8d678086eb
v7 alpha 1
2019-11-15 20:37:47 +01:00
Vincent Prouillet
1a727f7095
Merge pull request #107 from Keats/pem-handling
...
Add PEM decoding support (#106 )
2019-11-15 20:29:59 +01:00
Vincent Prouillet
d550c5f318
Add more tests and document SEC1 lack of support
2019-11-15 20:16:38 +01:00
Vincent Prouillet
6121db3d07
Min version is 1.36?
2019-11-14 20:35:20 +01:00
Vincent Prouillet
b35719b555
Point to validation example
2019-11-14 20:32:03 +01:00
Vincent Prouillet
3fe0bc1f83
Update README
2019-11-14 20:24:38 +01:00
Vincent Prouillet
dd642bed1d
Use GH actions
2019-11-14 20:02:59 +01:00
Vincent Prouillet
6e8d4a4be6
Remove pem encoding for now
2019-11-14 19:48:38 +01:00
Vincent Prouillet
51dacd9bc4
Update docs
2019-11-14 19:43:43 +01:00
Vincent Prouillet
8e4757cb1d
More refactoring in the crypto mod
2019-11-11 20:29:57 +01:00
Vincent Prouillet
1f6d0ffb2c
Refactor decoding
2019-11-11 20:16:34 +01:00
Vincent Prouillet
8169ee3d9f
Remove chrono from deps
2019-11-11 19:47:35 +01:00
Vincent Prouillet
614f3610a7
Fix stupid bug
2019-11-11 12:08:11 +01:00
Vincent Prouillet
b27981549f
Not working yet jwk decoding
2019-11-09 11:42:40 +00:00
Vincent Prouillet
34ea194179
Move crypto to a dir
2019-11-08 19:00:19 +00:00
Vincent Prouillet
e3632b3a2c
Remove Key approach in favour of &[u8] with pem
2019-11-06 22:32:13 +00:00
Vincent Prouillet
a6ea8c2c1a
clippy + fmt
2019-11-06 18:41:51 +00:00
Vincent Prouillet
382e4478cf
Move pem encoding tests
2019-11-06 18:30:59 +00:00
Levi
53188e1f40
Add functions to create pems and ders of the public keys ( #108 )
2019-11-06 13:58:49 +00:00
Vincent Prouillet
73d96357c3
Simplify header decoding
2019-11-03 16:13:22 +00:00
Vincent Prouillet
417e00780d
Use serde with derive feature
2019-11-03 15:46:08 +00:00
Vincent Prouillet
210e96063d
Reorganise tests
2019-11-03 15:36:19 +00:00
Vincent Prouillet
caef740ad4
Refactoring + more idiomatic enum names
2019-11-03 13:17:04 +00:00
Vincent Prouillet
06bebeaae3
cargo fmt
2019-11-03 12:55:36 +00:00
Vincent Prouillet
b9a3e3086f
Fix Option handling
2019-11-03 12:36:52 +00:00