Commit Graph

76 Commits

Author SHA1 Message Date
Vincent Prouillet 1a46cfa7c9 Add default feature use_pem 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
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
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 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
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
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
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 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 51dacd9bc4 Update docs 2019-11-14 19:43:43 +01:00
Vincent Prouillet 1f6d0ffb2c Refactor decoding 2019-11-11 20:16:34 +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 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 06bebeaae3 cargo fmt 2019-11-03 12:55:36 +00:00
Levi 571898252f Add PEM decoding support (#106)
* Add PEM support with pem and simple_asn1. Documentation TODO

* Make pkcs1 and pkcs8 versions of the RSA key, confirm they pass tests.

* Add documentation, simplify

* Update readme

* Bump pem version

* Remove extra print
2019-11-03 12:22:51 +00:00
Brian Smith f7423d075a Use *ring* 0.16.5. 2019-08-10 11:38:54 -10:00
Vincent Prouillet b8627260b2 Update to edition 2018 2019-07-06 20:36:32 +02:00
Vincent Prouillet 84ee604e88 trait -> enum 2019-06-16 17:51:43 +02:00
Jake Shadle 6cfb5c7c0e Add Key trait and the supported formats 2019-05-15 16:19:38 +02:00
Vincent Prouillet 8f0809318d rustfmt 2018-10-28 19:58:35 +01:00
Vincent Prouillet d63af8d6e0 clippy 2018-10-28 19:58:06 +01:00
Vincent Prouillet 5528497f5a Fix validation not working properly
Close #51
2018-07-25 15:42:02 +02:00
Vincent Prouillet 109978ab6b Remove error-chain
Fix #52, #56, #57
2018-07-25 14:46:30 +02:00
Mike Engel d30a7599a8
Add a method to decode a token without signature validation
- Solves #48
- `dangerous_unsafe_decode`
- No docs (aside from cargo) since people probably shouldn't use it
2018-03-13 20:47:43 -06:00
Vincent Prouillet eae3743017 Make it mandatory to specify algorithm 2017-10-22 13:23:46 +02:00
Vincent Prouillet b30a2cc5e5 v3.0 2017-09-08 16:23:15 +09:00
Vincent Prouillet 43a20030ee Update docs 2017-08-25 17:54:19 +09:00
Vincent Prouillet d213fb8a62 Remove validate_signature option and add decode_header 2017-08-25 17:48:53 +09:00
Mike Engel 5758c0008c
Make the `TokenData` struct public 2017-07-02 15:49:14 -06:00
Vincent Prouillet fc9f83b837 No need to pass an algorithm to decode 2017-04-22 15:21:44 +09:00
Mike Engel 0932f14bc2
Migrate `Deserialize` trait to `DeserializeOwned` for Serde 1.0 2017-04-21 23:21:04 -06:00
Vincent Prouillet 57c513c757 Actually take a ref to Validation
Seems like I updated the docs but not the code...
2017-04-14 20:32:40 +09:00
Vincent Prouillet d144227256 Reorganise a bit and add more docs 2017-04-13 16:36:32 +09:00
Vincent Prouillet 35fd9d63cc Add some docs 2017-04-13 10:08:07 +09:00
Vincent Prouillet 50d676865f Add test for decode without validating signature 2017-04-12 18:03:28 +09:00
Vincent Prouillet 410499e6b6 Add validation 2017-04-12 17:51:05 +09:00
Vincent Prouillet f7d0a7a002 Work on RSA 2017-04-11 12:40:55 +09:00
Vincent Prouillet e3a4294e85 Move to serde + base64
Remove Part trait
Move tests to tests directory
Reorganise code
2017-04-11 12:40:40 +09:00
Vincent Prouillet 634d75e8fa to_owned -> to_string 2016-12-26 13:24:18 +09:00
Vincent Prouillet 257218bc14 Remove silly match 2016-08-23 18:03:33 +01:00
Vincent Prouillet 3f986f54a8 rust-crypto -> ring 2016-08-23 17:39:18 +01:00
Félix Saparelli 1b7ec1057a Expose sign() and verify() 2016-04-24 19:18:26 +12:00
Warts Werdna 6d50f5bcd1 test if header.alg matches algorithm passed to decode() 2016-04-02 12:44:34 +02:00
Warts Werdna 58b617bbcb add a test for completely normal decoding 2016-04-02 12:44:34 +02:00
Vincent Prouillet 92bc6b8dd4 Release 1.1.1 2016-03-29 16:28:57 +01:00
Warts Werdna 412ed97389 custom json encoder omits None when serializing 2016-03-19 20:21:11 +01:00
Vincent Prouillet 002f8a8c7f Change order of encode method args + make alg field public 2015-12-21 19:24:13 +00:00
Vincent Prouillet f7e87663e2 More examples + fix header struct access 2015-12-20 01:17:10 +00:00
Vincent Prouillet 3930338105 Move macro out of decode + some docstring changes 2015-12-20 01:03:20 +00:00
Vincent Prouillet 275c95281f Use bytes for secret on encode as well for symmetry 2015-12-20 00:41:22 +00:00
Vincent Prouillet 1179eb8b55 Add all params of header from RFC 2015-12-18 21:07:48 +00:00
Markus Unterwaditzer d6d0ce058b Allow non-UTF8 keys for decoding too 2015-12-16 18:40:28 +01:00
Kevin Butler 3dc9295a54 Allow custom encoded types for Part 2015-11-06 22:45:47 +00:00
Kevin Butler 0f41c31687 Precompute headers 2015-11-06 22:45:47 +00:00
Kevin Butler 4ebcfca049 Rewrite decode 2015-11-06 22:45:47 +00:00
Kevin Butler 486c4a87f9 Use constant time comparison for hmacs, see MacResult::code for warning 2015-11-06 17:23:29 +00:00
Kevin Butler 6138bf3dce Minor test cleanup 2015-11-06 17:23:29 +00:00
Kevin Butler 09c4d14609 Weaken parameter requirements for encode 2015-11-06 17:23:29 +00:00
Kevin Butler b1c10c7085 Weaken parameter requirements for Part::from_base64 2015-11-05 17:11:48 +00:00
Vincent Prouillet 6ae77c0b06 Make Algorithm encodable/decodable rather than using String 2015-11-02 23:12:01 +00:00
Vincent Prouillet 61bbe889f2 Add sha384 and sha512
Thanks to irc user durka42
2015-11-02 23:09:09 +00:00
Vincent Prouillet b3663e90c6 Uncomment alg comparison 2015-11-02 21:22:21 +00:00
Vincent Prouillet 96acf8f143 Move benches to a folder + add license 2015-11-02 21:15:45 +00:00
Vincent Prouillet d29f670989 Add mini docs 2015-11-01 22:59:42 +00:00
Vincent Prouillet 3452ba26d1 Add basic working code 2015-11-01 22:31:46 +00:00
Vincent Prouillet 2253cdec4f wip crypto 2015-11-01 19:32:43 +00:00
Vincent Prouillet 7585a7f0f9 Initial commit 2015-10-31 15:37:15 +00:00