Crate gost94

Source
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§

params
GOST94 parameters.

Structs§

Gost94Core
Core GOST94 algorithm generic over parameters.

Traits§

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

Type Aliases§

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