Commit graph

307 commits

Author SHA1 Message Date
4d8679a53b
cargo fmt 2022-03-06 12:27:27 -05:00
c562d2f22e
Use crosstime git instead of local 2022-03-06 12:17:15 -05:00
3948597cd9
Remove no_verify feature flag in favor of cfg(target_arch) 2022-03-06 12:11:22 -05:00
86ba5e1d6c
Support for WASM 2022-02-27 23:24:26 -05:00
Vincent Prouillet
d8a33def00 New minor version for docs 2022-02-03 20:50:31 +01:00
Vincent Prouillet
1a9ca38b76 Update leeway docs
Closes #234
2022-02-03 16:23:33 +01:00
Vivien Maisonneuve
0ed16a34ad Fix function name in doc comment 2022-02-03 13:08:21 +01:00
Vincent Prouillet
af684c146f Get ready for release 2022-02-02 22:10:11 +01:00
Pietro
03927bf319 reduced default double allocation to one (#232) 2022-02-02 22:10:11 +01:00
Vincent Prouillet
75b9f8ae00 More update to MSRV 2022-02-02 22:10:11 +01:00
Vincent Prouillet
5162b6391c Update pinned ci version 2022-02-02 22:10:11 +01:00
Vincent Prouillet
1a46cfa7c9 Add default feature use_pem 2022-02-02 22:10:11 +01:00
Vincent Prouillet
5486f96f52 Remove iat mention
Closes #228
2022-02-02 22:10:11 +01:00
Vincent Prouillet
4598ba0a8c Beta 7 2022-02-02 22:10:11 +01:00
Vincent Prouillet
255c740e47 Add required_spec_claims (#225) 2022-02-02 22:10:11 +01:00
Vincent Prouillet
356fac075d Fix validation for issuers 2022-02-02 22:10:11 +01:00
Vincent Prouillet
5ed8af440c Rename set_iss to be in line with set_audience 2022-02-02 22:10:11 +01:00
Vincent Prouillet
d73f3dd3a3 Beta 6 2022-02-02 22:10:11 +01:00
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