Crate digest
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][std::io::Write]. The latter is
feature-gated behind std feature, which is usually enabled by default
by hash implementation crates.
Modules
- block_buffer
- consts
- core_api Low-level traits operating on blocks and wrappers around them.
- crypto_common
- generic_array
- typenum
Structs
-
CtOutput
Fixed size output value which provides a safe
Eqimplementation that runs in constant time. - InvalidBufferSize Buffer length is not equal to hash output size.
- InvalidLength
- InvalidOutputSize 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. - ExtendableOutput Trait for hash functions with extendable-output (XOF).
- ExtendableOutputReset Trait for hash functions with extendable-output (XOF) able to reset themselves.
- FixedOutput Trait for hash functions with fixed-size output.
- FixedOutputReset Trait for hash functions with fixed-size output able to reset themselves.
- HashMarker Marker trait for cryptographic hash functions.
- InnerInit
- KeyInit
- Mac Convenience wrapper trait covering functionality of Message Authentication algorithms.
- MacMarker Marker trait for Message Authentication algorithms.
- OutputSizeUser
- Reset
- Update Types which consume data with byte granularity.
- VariableOutput Trait for hash functions with variable-size output.
- VariableOutputReset 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
Macros
-
impl_oid_carrier
Implement dummy type with hidden docs which is used to "carry" hasher
OID for
CtVariableCoreWrapper.