Expand description
§RustCrypto: Modular Crypt Format
Pure Rust implementation of the Modular Crypt Format (MCF), which is used to store password hashes.
§About
Modular Crypt Format is the name for a bespoke set of password hash formats associated with the
POSIX crypt(3)
function which take the form ${id}$...
, where {id}
is a short numeric or
lower case alphanumeric algorithm identifier optionally containing a hyphen character (-
),
followed by $
as a delimiter, further followed by an algorithm-specific serialization of a
password hash, typically using a variant (often an algorithm-specific variant) of Base64.
This algorithm-specific serialization contains one or more fields ${first}[${second}]...
, where
each field only uses characters in the regexp range [A-Za-z0-9./+=,\-]
. Usually, these include
a salt and the output of a password hashing function.
Note that MCF has no official specification describing it, and no central registry of identifiers exists, nor are there more specific rules for the format than outlined above. MCF is more of an ad hoc idea of how to serialize password hashes rather than a standard.
This crate provides types for working with Modular Crypt Format in as generic a manner as possible.
For more information and history on MCF, see the PassLib documentation.
§Example (SHA-crypt w\ SHA-512):
$6$rounds=100000$exn6tVc2j/MZD8uG$BI1Xh8qQSK9J4m14uwy7abn.ctj/TIAzlaVCto0MQrOFIeTXsc1iwzH16XEWo/a7c7Y9eVJvufVzYAs4EsPOy0
§Minimum Supported Rust Version (MSRV) Policy
MSRV increases are not considered breaking changes and can happen in patch releases.
The crate MSRV accounts for all supported targets and crate feature combinations, excluding explicitly unstable features.
§License
Licensed under either of:
at your option.
§Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Structs§
- Error
- Error type.
- Field
- Individual field of an MCF hash, delimited by
$
. - Fields
- Iterator over the
$
-delimited fields of an MCF hash. - Password
Hash alloc
- Password hash encoded in the Modular Crypt Format (MCF). Owned form with builder functionality.
- Password
Hash Ref - Password hash reference type for hashes encoded in the Modular Crypt Format (MCF),
e.g.
$<id>$...
.
Enums§
- Base64
base64
- Base64 encoding variants used in various MCF encodings.
Type Aliases§
- Result
- Result type for
mcf
.