crypto_core/error/
signature.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7#[non_exhaustive]
8pub enum SignatureBackend {
9 Native,
11 Swift,
13 Wasm,
15 Kotlin,
17 SecureEnclave,
19}
20
21impl core::fmt::Display for SignatureBackend {
22 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23 let name = match self {
24 SignatureBackend::Native => "native",
25 SignatureBackend::Swift => "swift",
26 SignatureBackend::Wasm => "wasm",
27 SignatureBackend::Kotlin => "kotlin",
28 SignatureBackend::SecureEnclave => "secure_enclave",
29 };
30 write!(f, "{name}")
31 }
32}
33
34#[derive(Debug, Clone, Copy, PartialEq, Eq)]
36#[non_exhaustive]
37pub enum SignatureOperation {
38 Sign,
40 Verify,
42 KeyManagement,
44}
45
46impl core::fmt::Display for SignatureOperation {
47 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
48 let op = match self {
49 SignatureOperation::Sign => "sign",
50 SignatureOperation::Verify => "verify",
51 SignatureOperation::KeyManagement => "key_management",
52 };
53 write!(f, "{op}")
54 }
55}
56
57#[derive(Debug, Clone, Copy, PartialEq, Eq)]
59#[non_exhaustive]
60pub enum SignatureFailureKind {
61 BackendFailure,
63 InvalidPrivateKey,
65 InvalidPublicKey,
67 InvalidSignature,
69 InvalidMessage,
71 KeyGenerationFailed,
73 SecureEnclaveUnavailable,
75 SecureEnclaveRejectedKey,
77}
78
79impl core::fmt::Display for SignatureFailureKind {
80 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
81 let detail = match self {
82 SignatureFailureKind::BackendFailure => "backend failure",
83 SignatureFailureKind::InvalidPrivateKey => "invalid private key",
84 SignatureFailureKind::InvalidPublicKey => "invalid public key",
85 SignatureFailureKind::InvalidSignature => "invalid signature",
86 SignatureFailureKind::InvalidMessage => "invalid message",
87 SignatureFailureKind::KeyGenerationFailed => "key generation failed",
88 SignatureFailureKind::SecureEnclaveUnavailable => "secure enclave unavailable",
89 SignatureFailureKind::SecureEnclaveRejectedKey => "secure enclave rejected key",
90 };
91 write!(f, "{detail}")
92 }
93}
94
95#[derive(Debug, Clone, Copy, PartialEq, Eq)]
97#[non_exhaustive]
98pub enum KeyAgreementFailureKind {
99 DeriveSharedSecretFailed,
101 KeyGenerationFailed,
103}
104
105impl core::fmt::Display for KeyAgreementFailureKind {
106 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
107 let detail = match self {
108 KeyAgreementFailureKind::DeriveSharedSecretFailed => "derive shared secret failed",
109 KeyAgreementFailureKind::KeyGenerationFailed => "key generation failed",
110 };
111 write!(f, "{detail}")
112 }
113}
114
115#[derive(Debug, Clone, Copy, PartialEq, Eq)]
117#[non_exhaustive]
118pub enum KemFailureKind {
119 KeyGenerationFailed,
121 EncapsulateFailed,
123 DecapsulateFailed,
125}
126
127impl core::fmt::Display for KemFailureKind {
128 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
129 let detail = match self {
130 KemFailureKind::KeyGenerationFailed => "key generation failed",
131 KemFailureKind::EncapsulateFailed => "encapsulate failed",
132 KemFailureKind::DecapsulateFailed => "decapsulate failed",
133 };
134 write!(f, "{detail}")
135 }
136}