logo
Expand description

An implementation of the GOST R 34.11-94 cryptographic hash algorithm.

Usage

use gost94::{Gost94CryptoPro, Digest};
use hex_literal::hex;

// create Gost94 hasher instance with CryptoPro params
let mut hasher = Gost94CryptoPro::new();

// process input message
hasher.update("The quick brown fox jumps over the lazy dog");

// acquire hash digest in the form of GenericArray,
// which in this case is equivalent to [u8; 32]
let result = hasher.finalize();
assert_eq!(result[..], hex!("
    9004294a361a508c586fe53d1f1b02746765e71b765472786e4770d565830a76
"));

Also see RustCrypto/hashes readme.

Associated OIDs.

There can be a confusion regarding OIDs associated with declared types. According to the RFC 4357, the OIDs 1.2.643.2.2.30.1 and 1.2.643.2.2.30.0 are used to identify the hash function parameter sets (CryptoPro vs Test ones). According to RFC 4490 the OID 1.2.643.2.2.9 identifies the GOST 34.311-95 (former GOST R 34.11-94) function, but then it continues that this function MUST be used only with the CryptoPro parameter set.

Re-exports

pub use digest;

Modules

GOST94 parameters.

Structs

Core GOST94 algorithm generic over parameters.

Traits

Convinience wrapper trait covering functionality of cryptographic hash functions with fixed output size.

Type Definitions

GOST94 hash function with CryptoPro parameters.
GOST94 hash function with test parameters.
GOST94 hash function with UAPKI GOST 34.311-95 parameters (1.2.804.2.1.1.1.1.2.1 OID).
GOST94 hash function with S-box defined in GOST R 34.12-2015.