pub struct RecordSignatureRequest {
pub repo_path: Option<RepositoryRef>,
pub artifact: Option<ArtifactRef>,
pub biscuit_envelope: Vec<u8>,
pub signer_public_key: Vec<u8>,
pub client_operation_id: String,
}Expand description
Records one Biscuit-signed artifact attestation.
biscuit_envelope is a serialized Biscuit whose AUTHORITY block is signed
by signer_public_key and contains exactly one value for each fact below:
artifact_signature_version(“1”)
artifact_repository(“
Weft verifies those facts trusting authority; facts appended in an
attenuation block cannot override them. The signed repository fact must exactly match the authenticated repository
selected by repo_path, and the
signed kind and digest must exactly match artifact. This binding prevents
replay onto another repository, artifact kind, or artifact digest.
The server binds signer_public_key to the authenticated subject’s active
key registry entry. Signer identity and human/agent classification are never accepted from a client-supplied flag.
Storage is unique by
(repository, artifact, signer), so retrying cannot inflate the chain.
Fields§
§repo_path: Option<RepositoryRef>§artifact: Option<ArtifactRef>§biscuit_envelope: Vec<u8>§signer_public_key: Vec<u8>§client_operation_id: StringTrait Implementations§
Source§impl Clone for RecordSignatureRequest
impl Clone for RecordSignatureRequest
Source§fn clone(&self) -> RecordSignatureRequest
fn clone(&self) -> RecordSignatureRequest
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 RecordSignatureRequest
impl Debug for RecordSignatureRequest
Source§impl Default for RecordSignatureRequest
impl Default for RecordSignatureRequest
impl Eq for RecordSignatureRequest
Source§impl Hash for RecordSignatureRequest
impl Hash for RecordSignatureRequest
Source§impl Message for RecordSignatureRequest
impl Message for RecordSignatureRequest
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.