#sasl #gnu #mechanism #plain #layer #gsasl #rsasl

yanked vsmtp-rsasl

A SASL crate based on GNU gsasl

1.5.1-rc2 Jun 13, 2022
1.5.1-rc1 Jun 7, 2022
1.5.0 May 16, 2022
1.4.2 Sep 15, 2022

#8 in #sasl

MIT license

170KB
4K SLoC

SASL in Rust

Latest Version docs maintenance

rsasl is an implementation of the Simple Authentication and Security Layer — SASL.

Currently it uses gsasl-sys which are bindings to GNU gsasl, that however may change in the future.

Since it links to gsasl rsasl can provide a large number of mechanisms:

  • EXTERNAL
  • ANONYMOUS
  • PLAIN
  • LOGIN
  • CRAM-MD5
  • DIGEST-MD5
  • SCRAM-SHA-1
  • SCRAM-SHA-256
  • NTLM
  • SECURID
  • GSSAPI
  • GS2-KRB5
  • SAML20
  • OPENID20
  • KERBEROS_V5

Versions

Major version 1 of this crate uses gsasl-sys which are binding to GNU gsasl. This makes the use of unsafe code and FFI necessary. You can find the latest 1.X.Y version in the branch 1.X.X

Version 2.0.0-preview is a pure-Rust rewrite using sources transpiled using c2rust. Keep in mind that despite being Rust this code is as least as unsafe as the original C code. Most of this unsafe code will be removed before the first non-preview 2.0.0 release. You can find these versions on the default main branch.

Examples

You can find a few examples on GitHub.

Stability & Development

rsasl is currently in stable maintenance mode. While there are no plans to extend this crate with additional features or mechanism, issues and especially security-related bugs will be responded to and fixed quickly.

If you have need for additional features in this crate do open an issue on GitHub but be aware that we may not have time to implement it.

Dependencies

~155KB