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 block_buffer;pub use const_oid;pub 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§
- CtOutput
 - Fixed size output value which provides a safe 
Eqimplementation that runs in constant time. - Invalid
Buffer Size  - Buffer length is not equal to hash output size.
 - Invalid
Length  - 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.
 - MacError
 - Error type for when the 
Outputof aMacis not equal to the expected value. 
Traits§
- Digest
 - Convenience wrapper trait covering functionality of cryptographic hash functions with fixed output size.
 - DynDigest
 - Modification of the 
Digesttrait suitable for trait objects. - 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.
 - Hash
Marker  - Marker trait for cryptographic hash functions.
 - Inner
Init  - Types which can be initialized from another type (usually block ciphers).
 - KeyInit
 - Types which can be initialized from key.
 - Mac
 - Convenience wrapper trait covering functionality of Message Authentication algorithms.
 - MacMarker
 - Marker trait for Message Authentication algorithms.
 - 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
 - Key used by 
KeySizeUserimplementors. - Output
 - Output array of 
OutputSizeUserimplementors.