Commit graph

45 commits

Author SHA1 Message Date
Jonas Schäfer
1e695d8923 sasl: remove ignore from toml snippet
Those aren't run anyway, so we don't need it there.
2024-06-25 07:30:33 +02:00
Jonas Schäfer
8bc1f32218 sasl: remove ignore from scram-requiring doctest
We can make that conditional on the feature flag, thus always doing the
right thing depending on how the sasl crate is being built.
2024-06-25 07:30:33 +02:00
Emmanuel Gil Peyrot
002c2803d4 Fix typos across the codebase (thanks codespell!) 2024-05-14 05:46:02 +00:00
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 2024-05-13 16:03:48 +00:00
Lucas Kent
a291ab2e83 Remove an allocation in client::mechanisms::scram::Scram::initial 2024-05-06 08:25:24 +10: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
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
Raman Hafiyatulin
fd26d04635 macro impl_validator_using_provider!: use $crate::server::ValidatorError instead of ValidatorError 2023-07-30 17:17:26 +03: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
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
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
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
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
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
a8fe78704b remove println!() introduced in 7b52210d 2017-05-06 13:21:58 +01:00
lumi
b0e72d586b add derive methods to Pbkdf2 secrets 2017-04-04 18:04:23 +02:00
lumi
09a71b6e0a how did this get there? 2017-03-28 15:55:07 +02:00
lumi
ac21b1544e redundant line 2017-03-28 15:48:49 +02:00
lumi
f999429df8 derp 2017-03-25 23:50:58 +01:00
lumi
97f597d89d more API simplifications 2017-03-25 23:45:30 +01:00
lumi
35fc26f378 lower rust versions really don't like this 2017-03-25 23:25:28 +01:00
lumi
6c11716926 clean up lots of things, server-side API improved 2017-03-25 23:15:34 +01:00
Geoffroy Couprie
a8f8744e21 isolate scram behind a compilation feature 2017-03-25 14:44:22 +01:00
lumi
4b9f2376af initial work towards server-side support 2017-03-16 20:04:22 +01:00
lumi
2d8fffdbfc clean up naming, add advertising that the client thinks channel binding is unsupported 2017-03-07 17:02:57 +01:00
lumi
88ea00baa7 cleaned up channel binding logic, cleaned up SaslCredentials, updated documentation 2017-03-07 15:02:38 +01:00
lumi
c56676a601 #![deny(missing_docs)] and lots of documentation 2017-02-28 13:05:17 +01:00
lumi
353b2579ea initial commit 2017-02-27 16:08:09 +01:00