Commit graph

78 commits

Author SHA1 Message Date
Emmanuel Gil Peyrot
0267383803 sasl: Improve frame parsing
All keys only have a single char, so avoid allocating a whole String for
them.  Also move to a BTreeMap as this is more efficient on such keys.
2024-10-27 21:25:14 +01:00
Alvaro Parker
2ff89a9e42 fix typos 2024-09-16 18:29:44 -03:00
xmppftw
2103ef0191 Remove manual doc_cfg feature because we have doc_auto_cfg 2024-08-05 11:14:41 +02:00
xmppftw
fa99c09585 Indicate which feature flag for each module/type 2024-08-05 11:14:41 +02:00
77eadecea9 sasl: bump version to 0.5.2
Some checks failed
Build / lint (push) Has been cancelled
Build / test-stable (push) Has been cancelled
Build / test-nightly (push) Has been cancelled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-22 22:30:48 +02:00
25ee51f178 sasl: Update Changelog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-07-22 22:30:48 +02:00
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
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