miden_objects/account/
auth.rs1use miden_crypto::dsa::rpo_falcon512::{self, SecretKey};
5
6use crate::utils::serde::{
7 ByteReader,
8 ByteWriter,
9 Deserializable,
10 DeserializationError,
11 Serializable,
12};
13
14#[derive(Clone, Debug)]
16#[repr(u8)]
17pub enum AuthSecretKey {
18 RpoFalcon512(rpo_falcon512::SecretKey) = 0,
19}
20
21impl AuthSecretKey {
22 pub fn auth_scheme_id(&self) -> u8 {
24 match self {
25 AuthSecretKey::RpoFalcon512(_) => 0u8,
26 }
27 }
28}
29
30impl Serializable for AuthSecretKey {
31 fn write_into<W: ByteWriter>(&self, target: &mut W) {
32 target.write_u8(self.auth_scheme_id());
33 match self {
34 AuthSecretKey::RpoFalcon512(secret_key) => {
35 secret_key.write_into(target);
36 },
37 }
38 }
39}
40
41impl Deserializable for AuthSecretKey {
42 fn read_from<R: ByteReader>(source: &mut R) -> Result<Self, DeserializationError> {
43 let auth_key_id: u8 = source.read_u8()?;
44 match auth_key_id {
45 0u8 => {
47 let secret_key = SecretKey::read_from(source)?;
48 Ok(AuthSecretKey::RpoFalcon512(secret_key))
49 },
50 val => Err(DeserializationError::InvalidValue(format!("Invalid auth scheme ID {val}"))),
51 }
52 }
53}