pub struct DsseEnvelope {
pub payload_type: String,
pub payload: String,
pub signatures: Vec<DsseSignature>,
}Expand description
DSSE envelope per https://github.com/secure-systems-lab/dsse.
Fields§
§payload_type: String§payload: StringBase64-encoded JSON payload.
signatures: Vec<DsseSignature>Implementations§
Source§impl DsseEnvelope
impl DsseEnvelope
Sourcepub fn new(payload: &AttestationPayload) -> Result<Self, ShieldError>
pub fn new(payload: &AttestationPayload) -> Result<Self, ShieldError>
Create an unsigned envelope from an attestation payload.
Sourcepub fn sign(&mut self, private_key_bytes: &[u8]) -> Result<(), ShieldError>
pub fn sign(&mut self, private_key_bytes: &[u8]) -> Result<(), ShieldError>
Sign the envelope with a 32-byte Ed25519 private key.
Appends a new signature entry; can be called multiple times for multi-party signing.
Sourcepub fn verify(&self) -> Result<bool, ShieldError>
pub fn verify(&self) -> Result<bool, ShieldError>
Verify all signatures in the envelope.
Returns Ok(false) if the envelope is unsigned.
Returns Err if any signature is invalid.
Sourcepub fn decode_payload(&self) -> Result<AttestationPayload, ShieldError>
pub fn decode_payload(&self) -> Result<AttestationPayload, ShieldError>
Decode and deserialize the payload from the envelope.
Trait Implementations§
Source§impl Clone for DsseEnvelope
impl Clone for DsseEnvelope
Source§fn clone(&self) -> DsseEnvelope
fn clone(&self) -> DsseEnvelope
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DsseEnvelope
impl Debug for DsseEnvelope
Source§impl<'de> Deserialize<'de> for DsseEnvelope
impl<'de> Deserialize<'de> for DsseEnvelope
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for DsseEnvelope
impl RefUnwindSafe for DsseEnvelope
impl Send for DsseEnvelope
impl Sync for DsseEnvelope
impl Unpin for DsseEnvelope
impl UnsafeUnpin for DsseEnvelope
impl UnwindSafe for DsseEnvelope
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more