Commit graph

69 commits

Author SHA1 Message Date
Lucas Kent
8bdd19b0ff Add SCRAM client extensions support
The SCRAM RFC describes extensions that can be used to add extra
data into the protocol.

This commit adds support for the client scram mechanism to insert extension
data into the client messages at the locations specified by the SCRAM RFC.

Kafka utilizes these extensions when authenticating delegation tokens
over scram. Since I am writing a kafka client I would like access to
these extensions so I can support delegation tokens.

I've only added them to Scram::new not Mechanism::from_credentials
since they do not apply to other mechanisms. For my purposes this is
fine since I only need to work with scram. However it would be
limiting for other use cases, so I'm quite happy to add the extension
fields into Credentials if that was desired. For now I've left it out
since the fields would be scram exclusive and everything else in
Credentials is currently generic.
2024-05-13 23:42:22 +00:00
Lucas Kent
1449d300dd Fix clippy lints for sasl crate
Some checks are pending
Build / lint (push) Waiting to run
Build / test-stable (push) Blocked by required conditions
Build / test-nightly (push) Blocked by required conditions
2024-05-13 16:03:48 +00:00
Lucas Kent
f4c3238798 Swap sasl crate from sha-1 crate -> sha1 crate
sha-1 has been deprecated in favor of sha1 and has an identical API.
2024-05-13 13:03:33 +10:00
Lucas Kent
a291ab2e83 Remove an allocation in client::mechanisms::scram::Scram::initial 2024-05-06 08:25:24 +10:00
Emmanuel Gil Peyrot
f725994fe0 Bump all dependencies but rustls and webpki-roots
The latter have changed their API a bit, while everything else is still
compatible.
2024-05-04 12:42:53 +02:00
Jonas Schäfer
13be111de1 sasl: make docs.rs emit nice feature tags on feature-gated items 2024-04-23 19:22:04 +02:00
Emmanuel Gil Peyrot
1bab5c3cd9 Remove redundant imports
These became warnings in a recent nightly.

The TryFrom/TryInto imports were missed in
4089891f6c, but the rest are truly
redundant.
2024-02-27 22:57:18 +01:00
4089891f6c Update edition to 2021
- Remove TryFrom/Into and FromIterator imports
- Prevent impl_validator_using_provider macro in sasl crate from
  constructing trait object

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-12-15 19:40:09 +00:00
Emmanuel Gil Peyrot
b94d1b5222 sasl: Use the right name for SCRAM with channel binding
It is SCRAM-SHA-1-PLUS, not SCRAM-SHA-1.
2023-10-25 20:03:11 +02:00
Emmanuel Gil Peyrot
b5aa36b72c sasl: Add tls-exporter channel binding
This channel binding type is defined in RFC 9266 and is required to
support channel binding on TLS 1.3.
2023-10-25 19:20:02 +02:00
5c312476c2
sasl: 0.5.1 release
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:29:51 +02:00
75bcd51026
sasl: Update LICENSE file to reflect changes for 0.5.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:28:59 +02:00
0100909a28 sasl: Update pbkdf2 dep to 0.12
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:24:04 +02:00
6efc67a198 sasl: Update base64 to 0.21
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:24:04 +02:00
34467dd4a6 sasl: update crate metadata
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-17 23:45:57 +02:00
Raman Hafiyatulin
fd26d04635 macro impl_validator_using_provider!: use $crate::server::ValidatorError instead of ValidatorError 2023-07-30 17:17:26 +03:00
Emmanuel Gil Peyrot
372e37b31f Bump base64 dependency to 0.20 2022-12-21 09:40:58 +00:00
Gustav Palmqvist
be42dac792 Update crate information 2022-12-21 09:34:04 +00:00
Gustav Palmqvist
14dddf4aaa Check build without default features in ci-cd. 2022-05-20 18:54:50 +02:00
Gustav Palmqvist
c9931f12a9 Fixed not building when default-features = false 2022-05-20 18:54:50 +02:00
Emmanuel Gil Peyrot
259231bfcc Bump pbkdf2 dependency to 0.11 2022-04-09 21:39:45 +02:00
Emmanuel Gil Peyrot
3a802eb193 Implement SASL ANONYMOUS on the server side
Fixes #11.
2021-12-25 16:24:00 +01:00
Emmanuel Gil Peyrot
6e22c0fcb4 Bump all hash crates 2021-12-25 15:57:41 +01:00
Emmanuel Gil Peyrot
5316d5aa4b Release version 0.5.0 2021-01-12 18:25:15 +01:00
Emmanuel Gil Peyrot
6c1667e17a Relicense to MPL-2.0 (from LGPL)
2020-06-07T14:29:21+0200 lumi> well i personally don't care anymore, but if someone wants it to be relicensed to MPL-2.0 i'm fine with it
2020-12-26 19:11:40 +01:00
Emmanuel Gil Peyrot
90bbbd2393 Write a ChangeLog entry 2020-12-26 15:46:14 +01:00
Emmanuel Gil Peyrot
4463f64385 Bump the version 2020-12-26 15:46:04 +01:00
Emmanuel Gil Peyrot
8d0a4230b0 Bump dependencies again 2020-12-26 15:44:39 +01:00
Emmanuel Gil Peyrot
af1d3c924a Bump RustCrypto crates 2020-06-22 01:20:16 +02:00
lumi
5550148149 Merge branch 'no-string-error' into 'master'
Use structs for errors instead of plain strings

Closes #3

See merge request lumi/sasl-rs!8
2020-06-07 12:26:12 +00:00
Emmanuel Gil Peyrot
7fd6923464 Use error structs for errors instead of plain strings. 2020-05-15 13:56:09 +02:00
Emmanuel Gil Peyrot
492e35b4be Update base64 to 0.12. 2020-05-15 13:49:25 +02:00
Emmanuel Gil Peyrot
09745829f1 client: Remove Result from Mechanism::initial(). 2020-02-25 23:31:29 +01:00
Emmanuel Gil Peyrot
21e9c8e660 Switch from the deprecated rand-os crate to getrandom. 2020-02-25 22:32:03 +01:00
Emmanuel Gil Peyrot
72e91043cc Make all dependencies for SCRAM optional when it is disabled. 2019-02-22 03:45:39 +01:00
Emmanuel Gil Peyrot
4bc768c016 Bump version to 0.4.3. 2019-01-18 00:26:48 +01:00
Emmanuel Gil Peyrot
0c426b4d17 Remove .unwrap() in SCRAM code. 2019-01-18 00:26:48 +01:00
Emmanuel Gil Peyrot
5337a0a149 Remove the openssl dependency, fixes #4. 2019-01-18 00:08:48 +01:00
Emmanuel Gil Peyrot
5892caa4a8 Switch to RustCrypto for pbkdf2. 2019-01-18 00:08:48 +01:00
Emmanuel Gil Peyrot
506d0b17fc Switch to rand_os for random bytes. 2019-01-18 00:08:48 +01:00
Emmanuel Gil Peyrot
392b1c66b1 Switch to RustCrypto for Hmac. 2019-01-18 00:08:48 +01:00
Emmanuel Gil Peyrot
13d6340298 Switch to RustCrypto for hashes. 2019-01-18 00:08:48 +01:00
Emmanuel Gil Peyrot
9e9f09a9a5 Update to Edition 2018. 2019-01-17 22:54:32 +01:00
Emmanuel Gil Peyrot
b1708823de Update base64. 2019-01-17 22:44:22 +01:00
lumi
0842e044d2 Add a change log. Vitally important to the success of the mission! 2018-05-19 13:12:24 +02:00
lumi
28dca0c369 Bump version to 0.4.2. 2018-05-19 12:49:19 +02:00
lumi
a626e96dfe Update dependencies further. 2018-05-19 12:42:51 +02:00
Marc-Antoine Perennou
a7f460f900 update base64 and openssl deps
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2018-02-27 11:44:41 +01:00
Emmanuel Gil Peyrot
4c212d2768 update base64 and openssl dependencies 2017-06-12 22:27:29 +01:00
Emmanuel Gil Peyrot
6d9202eba8 make a new patch release 2017-05-06 13:29:42 +01:00