pub struct CredentialStatusEntry {
pub id: Option<String>,
pub type: StatusEntryType,
pub status_purpose: StatusPurpose,
pub status_list_index: String,
pub status_list_credential: String,
}Expand description
The status reference an envelope carries at top-level credentialStatus
(spec §6.3.3.1, §7.1.1).
Whose status this is. In W3C VC 2.0 credentialStatus describes the
credential carrying it. In APH it describes the parent Delegation
Mandate named by credentialSubject.policy.delegationMandateId: an
issued envelope stays cryptographically valid whatever happens
afterwards, and revocation applies to Delegation Mandates only.
Fields§
§id: Option<String>Identifier for this status entry. Omitted when absent.
type: StatusEntryType§status_purpose: StatusPurposeAlways StatusPurpose::Revocation.
status_list_index: StringThis mandate’s position in the list, a base-10 integer in a JSON string (§6.3.3.6).
A String on the wire AND in Rust, never a numeric type. In runtimes
where every JSON number is an IEEE-754 double, an index past 2^53 is
silently rounded — and a rounded index does not raise a parse error, it
reads a DIFFERENT BIT, so the verifier answers a question about some
other mandate with full confidence. Typing the field String makes a
JSON number a deserialization failure instead of a wrong answer.
Self::index is the only way to a number, and it goes through
u64.
status_list_credential: StringAbsolute https: URL of the status list credential. Bound same-origin
against the derived endpoint before it is ever fetched (§6.3.3.2).
Implementations§
Source§impl CredentialStatusEntry
impl CredentialStatusEntry
Sourcepub fn index(&self) -> Result<u64, AphError>
pub fn index(&self) -> Result<u64, AphError>
Parses Self::status_list_index as a base-10 u64 (§6.3.3.6).
§Errors
APH_E008 for anything that is not a base-10 integer inside u64.
§6.3.3.1 routes a malformed status reference to §8.3 step 1, but the
§11 taxonomy is a CLOSED set of seventeen with no “malformed envelope”
code; APH_E008 is §6.3.3.4 case 2 — “the verifier could not establish
the status” — which is literally what an unreadable index leaves. The
envelope is refused either way; only the reported code differs.