Skip to main content

anp_identity/
manifest.rs

1use serde::{Deserialize, Serialize};
2
3pub const STORE_MANIFEST_SCHEMA_VERSION: u32 = 1;
4
5#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
6#[serde(rename_all = "snake_case")]
7pub enum RootKeyProviderKind {
8    OsKeyring,
9    Injected,
10    LocalPrivateFile,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
14#[serde(deny_unknown_fields)]
15pub struct RootKeyProviderBinding {
16    pub kind: RootKeyProviderKind,
17    pub key_id: String,
18    pub account: Option<String>,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
22#[serde(deny_unknown_fields)]
23pub struct StoreManifest {
24    pub schema_version: u32,
25    pub store_id: String,
26    pub generation: u64,
27    pub provider: RootKeyProviderBinding,
28    pub root_key_fingerprint: String,
29    pub created_at: String,
30    pub rekey_generation: u64,
31}