Expand description
This crate provides traits which describe functionality of cryptographic hash functions and Message Authentication algorithms.
Traits in this repository are organized into the following levels:
- High-level convenience traits: [
Digest], [DynDigest], [Mac]. Wrappers around lower-level traits for most common use-cases. Users should usually prefer using these traits. - Mid-level traits:
Update,FixedOutput,FixedOutputReset,ExtendableOutput,ExtendableOutputReset,XofReader,VariableOutput,Reset,KeyInit, andInnerInit. These traits atomically describe available functionality of an algorithm. - Marker traits: [
HashMarker], [MacMarker]. Used to distinguish different algorithm classes. - Low-level traits defined in the
core_apimodule. These traits operate at a block-level and do not contain any built-in buffering. They are intended to be implemented by low-level algorithm providers only. Usually they should not be used in application-level code.
Additionally hash functions implement traits from the standard library:
Default, Clone, Write. The latter is
feature-gated behind std feature, which is usually enabled by default
by hash implementation crates.
Re-exports§
pub use crate::digest::Digest;pub use crate::digest::DynDigest;pub use crate::digest::HashMarker;pub use mac::CtOutput;macpub use mac::Mac;macpub use mac::MacError;macpub use mac::MacMarker;macpub use block_buffer;core-apipub use crypto_common;pub use crypto_common::generic_array;pub use crypto_common::typenum;
Modules§
Macros§
- impl_
oid_ carrier - Implement dummy type with hidden docs which is used to “carry” hasher
OID for [
CtVariableCoreWrapper].
Structs§
- Invalid
Buffer Size - Buffer length is not equal to hash output size.
- Invalid
Length mac - The error type returned when key and/or IV used in the
KeyInit,KeyIvInit, andInnerIvInitslice-based methods had an invalid length. - Invalid
Output Size - The error type used in variable hash traits.
Traits§
- Extendable
Output - Trait for hash functions with extendable-output (XOF).
- Extendable
Output Reset - Trait for hash functions with extendable-output (XOF) able to reset themselves.
- Fixed
Output - Trait for hash functions with fixed-size output.
- Fixed
Output Reset - Trait for hash functions with fixed-size output able to reset themselves.
- Inner
Init mac - Types which can be initialized from another type (usually block ciphers).
- KeyInit
mac - Types which can be initialized from key.
- Output
Size User - Types which return data with the given size.
- Reset
- Resettable types.
- Update
- Types which consume data with byte granularity.
- Variable
Output - Trait for hash functions with variable-size output.
- Variable
Output Reset - Trait for hash functions with variable-size output able to reset themselves.
- XofReader
- Trait for reader types which are used to extract extendable output from a XOF (extendable-output function) result.
Type Aliases§
- Key
mac - Key used by
KeySizeUserimplementors. - Output
- Output array of
OutputSizeUserimplementors.