pub struct GetShareResponseMessage {
pub result: Option<DeRecResult>,
pub committed_de_rec_share: Vec<u8>,
pub share_algorithm: i32,
pub timestamp: Option<Timestamp>,
}Expand description
GetShareResponseMessage returns a share previously stored by the Helper.
§Semantics
This message is sent in response to a GetShareRequestMessage. It either:
- returns the requested share (on success), or
- indicates failure via the
resultfield
§Authorization Enforcement
The Helper MUST ensure that the request satisfies the authorization rules described in GetShareRequestMessage before returning any share data.
§Share Contents
The returned share is an opaque byte sequence that typically includes:
- the Shamir share (x, y)
- the encrypted secret payload (or a reference to it)
- the commitment (e.g., Merkle root)
- the opening proof for verification
The exact structure is defined by the share algorithm indicated in
shareAlgorithm.
§Security Considerations
- The share MUST only be returned over an authenticated and encrypted DeRec channel
- Incorrect or malicious shares may be detected by the Owner during recovery using commitment verification
§Idempotency
For a given (secretId, shareVersion), repeated responses SHOULD return the same share data.
Fields§
§result: Option<DeRecResult>Result of processing the request.
Indicates whether the share was successfully retrieved or if an error occurred (e.g., unauthorized request, unknown secretId, or missing version).
The committed DeRec share.
This is an opaque byte array containing the share data as produced by
the share distribution algorithm. Its internal structure depends on
shareAlgorithm.
Identifier of the share algorithm used to produce the share.
This allows the recipient to interpret and process the share correctly during verification and reconstruction.
timestamp: Option<Timestamp>Timestamp indicating when this message was created.
This value is expressed in UTC and can be used for observability, replay detection, and timeout handling.
Trait Implementations§
Source§fn clone(&self) -> GetShareResponseMessage
fn clone(&self) -> GetShareResponseMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§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.