Skip to main content

appattest_rs/
error.rs

1use std::{error::Error, fmt};
2
3#[derive(Debug, PartialEq)]
4pub enum AppAttestError {
5    InvalidNonce,
6    InvalidAppIDHash,
7    InvalidPublicKey,
8    InvalidCounter,
9    InvalidCredentialID,
10    InvalidAAGUID,
11    InvalidSignature,
12    InvalidAppID,
13    InvalidClientData,
14    ExpectedASN1Node,
15    FailedToExtractValueFromASN1Node,
16    ExpectedOctetStringInsideASN1Node,
17    
18    Message(String)
19}
20
21impl fmt::Display for AppAttestError {
22    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
23        match self {
24            AppAttestError::Message(e) => write!(f, "{}", e),
25            AppAttestError::InvalidNonce => write!(f, "invalid nonce"),
26            AppAttestError::InvalidAppIDHash => write!(f, "invalid App ID hash"),
27            AppAttestError::InvalidPublicKey => write!(f, "invalid public key"),
28            AppAttestError::InvalidCounter => write!(f, "invalid counter"),
29            AppAttestError::InvalidCredentialID => write!(f, "invalid credential ID"),
30            AppAttestError::InvalidAAGUID => write!(f, "invalid AAGUID"),
31            AppAttestError::InvalidSignature => write!(f, "invalid signature"),
32            AppAttestError::InvalidAppID => write!(f, "invalid App ID"),
33            AppAttestError::InvalidClientData => write!(f, "invalid client data"),
34            AppAttestError::ExpectedASN1Node => write!(f, "expected ASN1 node"),
35            AppAttestError::FailedToExtractValueFromASN1Node => write!(f, "failed to extract value from ASN1 node"),
36            AppAttestError::ExpectedOctetStringInsideASN1Node => write!(f, "expected octet string inside ASN1 node"),
37        }
38    }
39}
40
41impl Error for AppAttestError {}