pub struct Attestation {Show 19 fields
pub version: u32,
pub rid: ResourceId,
pub issuer: CanonicalDid,
pub subject: CanonicalDid,
pub device_public_key: DevicePublicKey,
pub identity_signature: Ed25519Signature,
pub device_signature: Ed25519Signature,
pub revoked_at: Option<DateTime<Utc>>,
pub expires_at: Option<DateTime<Utc>>,
pub timestamp: Option<DateTime<Utc>>,
pub note: Option<String>,
pub payload: Option<Value>,
pub commit_sha: Option<String>,
pub commit_message: Option<String>,
pub author: Option<String>,
pub oidc_binding: Option<OidcBinding>,
pub delegated_by: Option<CanonicalDid>,
pub signer_type: Option<SignerType>,
pub environment_claim: Option<Value>,
}Expand description
Represents a 2-way key attestation between a primary identity and a device key.
Fields§
§version: u32Schema version.
rid: ResourceIdRecord identifier linking this attestation to its storage ref.
issuer: CanonicalDidDID of the issuing identity (can be did:keri: or did:key:).
subject: CanonicalDidDID of the attested subject (device did:key: or identity did:keri:).
device_public_key: DevicePublicKeyDevice public key (32 bytes Ed25519 or 33 bytes P-256 compressed, hex-encoded in JSON).
identity_signature: Ed25519SignatureIssuer’s Ed25519 signature over the canonical attestation data (hex-encoded in JSON).
device_signature: Ed25519SignatureDevice’s Ed25519 signature over the canonical attestation data (hex-encoded in JSON).
revoked_at: Option<DateTime<Utc>>Timestamp when the attestation was revoked, if applicable.
expires_at: Option<DateTime<Utc>>Expiration timestamp, if set.
timestamp: Option<DateTime<Utc>>Creation timestamp.
note: Option<String>Optional human-readable note.
payload: Option<Value>Optional arbitrary JSON payload.
commit_sha: Option<String>Git commit SHA (for commit signing attestations).
commit_message: Option<String>Git commit message (for commit signing attestations).
Git commit author (for commit signing attestations).
oidc_binding: Option<OidcBinding>OIDC binding information (issuer, subject, audience, expiration).
delegated_by: Option<CanonicalDid>DID of the attestation that delegated authority (for chain tracking).
signer_type: Option<SignerType>The type of entity that produced this signature (human, agent, workload). Included in the canonical JSON before signing — the signature covers this field.
environment_claim: Option<Value>Unsigned environment claim for gateway-level verification via auths-env.
Excluded from CanonicalAttestationData — does not affect signatures.
Implementations§
Source§impl Attestation
impl Attestation
Sourcepub fn is_revoked(&self) -> bool
pub fn is_revoked(&self) -> bool
Returns true if this attestation has been revoked.
Sourcepub fn from_json(json_bytes: &[u8]) -> Result<Self, AttestationError>
pub fn from_json(json_bytes: &[u8]) -> Result<Self, AttestationError>
Deserializes an Attestation from JSON bytes.
Returns an error if the input exceeds MAX_ATTESTATION_JSON_SIZE (64 KiB).
Sourcepub fn canonical_data(&self) -> CanonicalAttestationData<'_>
pub fn canonical_data(&self) -> CanonicalAttestationData<'_>
Returns the canonical subset of fields that signatures are computed over.
Args:
&self: The attestation to extract canonical data from.
Usage:
let canonical = attestation.canonical_data();
let bytes = canonicalize_attestation_data(&canonical)?;Sourcepub fn to_debug_string(&self) -> String
pub fn to_debug_string(&self) -> String
Formats the attestation contents for debug or inspection purposes.
Trait Implementations§
Source§impl Clone for Attestation
impl Clone for Attestation
Source§fn clone(&self) -> Attestation
fn clone(&self) -> Attestation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Attestation
impl Debug for Attestation
Source§impl<'de> Deserialize<'de> for Attestation
impl<'de> Deserialize<'de> for Attestation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for Attestation
impl PartialEq for Attestation
Source§fn eq(&self, other: &Attestation) -> bool
fn eq(&self, other: &Attestation) -> bool
self and other values to be equal, and is used by ==.