pub struct EnvelopeProof {
pub type: String,
pub cryptosuite: Option<String>,
pub verification_method: String,
pub created: String,
pub proof_purpose: String,
pub proof_value: String,
pub id: Option<String>,
pub previous_proof: Option<String>,
}Expand description
The cryptographic proof block: either a W3C Data Integrity Proof or a detached JWS, per spec §8.2.
Fields§
§type: StringAlways "DataIntegrityProof" for the JCS-canonicalized cryptosuites,
or "JsonWebSignature2020" for compact JWS detached.
cryptosuite: Option<String>Required for DataIntegrityProof — "eddsa-jcs-2022" or
"ecdsa-jcs-2019" — and OMITTED, not nulled, for
JsonWebSignature2020 (§7.1.11).
skip_serializing_if is load-bearing rather than cosmetic: this member
sits inside the §7.2.1 canonicalization base, so emitting
"cryptosuite": null would put a member in the SIGNED bytes that an
implementer following the spec’s proof table never builds, and no JWS
envelope this crate minted would verify anywhere else.
verification_method: StringDID URL referencing the verifying key
(e.g., did:key:z6Mk...#z6Mk...).
created: StringRFC 3339.
proof_purpose: String"assertionMethod" for a principal proof or a lone notary proof;
"authentication" for the notary countersignature of a chain (§7.1.11).
proof_value: StringMultibase or base64url-encoded signature bytes.
id: Option<String>Identifier for this proof, unique within the envelope. REQUIRED when
proof is a chain, absent for a lone proof, which links to nothing.
previous_proof: Option<String>The id of the proof this one countersigns. Present on the notary
proof of a chain; absent on the principal proof, its head.