Skip to main content

ic_auth_protocol_types/
common.rs

1//! Passive application authentication common contracts.
2//! Adapted from Canic; see docs/design/canic-source-review.md.
3
4use crate::{AudienceId, AuthRole};
5use serde::{Deserialize, Serialize};
6
7//
8// DelegationAudience
9//
10
11#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
12pub enum DelegationAudience {
13    Fleet(AudienceId),
14}
15
16//
17// DelegatedRoleGrant
18//
19
20#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
21pub struct DelegatedRoleGrant {
22    pub target: AuthRole,
23    pub scopes: Vec<String>,
24}
25
26//
27// AuthRequestMetadata
28//
29
30#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
31pub struct AuthRequestMetadata {
32    pub request_id: [u8; 32],
33    pub ttl_ns: u64,
34}