1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//! Hashing utilities
//!
//! Provides SHA-512 and other hash functions used by cryptographic primitives.
use ;
/// Compute SHA-512 hash of input data
///
/// Computes the SHA-512 (Secure Hash Algorithm 512-bit) cryptographic hash
/// of the provided input data. SHA-512 is used extensively in VRF implementations
/// for key derivation, proof generation, and hash-to-curve operations.
///
/// # Algorithm
///
/// SHA-512 produces a 512-bit (64-byte) hash value from arbitrary-length input.
/// It is part of the SHA-2 family and provides strong collision resistance and
/// preimage resistance suitable for cryptographic applications.
///
/// # Examples
///
/// ```
/// use cardano_crypto::common::hash::hash_sha512;
///
/// let data = b"Hello, Cardano!";
/// let hash = hash_sha512(data);
/// assert_eq!(hash.len(), 64);
/// ```
///
/// # Parameters
///
/// * `data` - Input data to hash (any length)
///
/// # Returns
///
/// Fixed-size 64-byte array containing the SHA-512 hash