Skip to main content

ssi_data_integrity_suites/eip712/
hashing.rs

1use ssi_data_integrity_core::{
2    suite::standard::{HashingAlgorithm, HashingError, TransformationAlgorithm},
3    ProofConfigurationRef, StandardCryptographicSuite,
4};
5
6pub struct Eip712Hashing;
7
8impl<S> HashingAlgorithm<S> for Eip712Hashing
9where
10    S: StandardCryptographicSuite,
11    S::Transformation: TransformationAlgorithm<S, Output = ssi_eip712::TypedData>,
12{
13    type Output = [u8; 66];
14
15    fn hash(
16        input: ssi_eip712::TypedData,
17        _proof_configuration: ProofConfigurationRef<S>,
18        _verification_method: &S::VerificationMethod,
19    ) -> Result<Self::Output, HashingError> {
20        input
21            .encode()
22            .map_err(|e| HashingError::InvalidMessage(e.to_string()))
23    }
24}