# Trait crypto::digest::Digest [−] [src]

    pub trait Digest {
        fn input(&mut self, input: &[u8]);
        fn result(&mut self, out: &mut [u8]);
        fn reset(&mut self);
        fn output_bits(&self) -> usize;
        fn block_size(&self) -> usize;

        fn output_bytes(&self) -> usize { ... }
        fn input_str(&mut self, input: &str) { ... }
        fn result_str(&mut self) -> String { ... }
    }

The Digest trait specifies an interface common to digest functions, such as SHA-1 and the SHA-2 family of digest functions.

## Required Methods

### `fn input(&mut self, input: &[u8])`

Provide message data.

# Arguments

- input - A vector of message data

### `fn result(&mut self, out: &mut [u8])`

Retrieve the digest result. This method may be called multiple times.

# Arguments

- out - the vector to hold the result. Must be large enough to contain output_bits().

### `fn reset(&mut self)`

Reset the digest. This method must be called after result() and before supplying more data.

### `fn output_bits(&self) -> usize`

Get the output size in bits.

### `fn block_size(&self) -> usize`

Get the block size in bytes.

## Provided Methods

### `fn output_bytes(&self) -> usize`

Get the output size in bytes.

### `fn input_str(&mut self, input: &str)`

Convenience function that feeds a string into a digest.

# Arguments

- `input` The string to feed into the digest

### `fn result_str(&mut self) -> String`

Convenience function that retrieves the result of a digest as a String in hexadecimal format.

## Implementors

- `impl Digest for Blake2b`
- `impl Digest for Blake2s`
- `impl Digest for Md5`
- `impl Digest for Ripemd160`
- `impl Digest for Sha1`
- `impl Digest for Sha512`
- `impl Digest for Sha384`
- `impl Digest for Sha512Trunc256`
- `impl Digest for Sha512Trunc224`
- `impl Digest for Sha256`
- `impl Digest for Sha224`
- `impl Digest for Sha3`
- `impl Digest for Whirlpool`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)