Expand description
§Protobuf Bindings
This module exposes the Rust types generated from the DeRec protocol protobuf definitions.
The types are generated at build time using prost from the protocol
.proto files and correspond directly to the message definitions used
by the DeRec protocol.
These structures are used internally by the library to:
- serialize protocol messages before transmission
- deserialize received messages
- provide a strongly-typed representation of protocol data
The generated code mirrors the protobuf schema and therefore follows the naming and structure defined in the protocol specification rather than typical Rust conventions.
§Important
The contents of this module are generated code and should not be edited manually. Any changes must be performed in the protobuf definitions and the bindings regenerated.
Most users of the library should interact with the higher-level APIs
provided by the protocol flow modules (pairing, sharing, verification,
and recovery) rather than manipulating protobuf messages directly.
Modules§
- committed_
de_ rec_ share - Nested message and enum types in
CommittedDeRecShare. - communication_
info_ key_ value - Nested message and enum types in
CommunicationInfoKeyValue. - de_
rec_ message - Nested message and enum types in
DeRecMessage. - get_
secret_ ids_ versions_ response_ message - Nested message and enum types in
GetSecretIdsVersionsResponseMessage.
Structs§
- Committed
DeRec Share - CommittedDeRecShare represents a DeRec share that has been committed and is ready to be given to a helper for storage.
- Communication
Info - CommunicationInfo contains application-level identifying information about a participant (Owner or Helper).
- Communication
Info KeyValue - CommunicationInfoKeyValue represents a single application-defined key-value pair used to convey user-facing identification data.
- Contact
Message - ContactMessage is the only DeRec protocol message that is not wrapped inside a DeRecMessage.
- DeRec
Message - DeRecMessage is the top-level protocol envelope for all DeRec messages, except ContactMessage which is exchanged out-of-band during pairing.
- DeRec
Result - Result represents the outcome of processing a DeRec protocol request.
- DeRec
Secret - DeRecSecret represents the canonical structure of the secret material that is encrypted and distributed across Helpers.
- DeRec
Share - DeRecShare contains the information that a sharer provides to a helper.
- Error
Response Message - ErrorResponseMessage is a generic error response sent when a protocol message cannot be processed successfully.
- GetSecret
IdsVersions Request Message - GetSecretIdsVersionsRequestMessage requests the list of all secrets and corresponding share versions that a Helper stores for a given Owner.
- GetSecret
IdsVersions Response Message - GetSecretIdsVersionsResponseMessage returns the list of all secrets and their corresponding share versions stored by the Helper for the Owner.
- GetShare
Request Message - GetShareRequestMessage requests a previously stored share from a Helper.
- GetShare
Response Message - GetShareResponseMessage returns a share previously stored by the Helper.
- Helper
Specific Info - HelperSpecificInfo captures per-helper metadata associated with a secret.
- Pair
Request Message - PairRequestMessage is the first message in the pairing protocol, sent from the initiator to the responder after receiving a ContactMessage.
- Pair
Response Message - PairResponseMessage is the response to a PairRequestMessage.
- Parameter
Range - Store
Share Request Message - StoreShareRequestMessage instructs a Helper to store a share for a given secret and manage the set of retained share versions.
- Store
Share Response Message - StoreShareResponseMessage is the response to a StoreShareRequestMessage.
- Transport
Protocol - / TransportProtocol defines how a DeRec participant (Owner or Helper)
/ can be reached over the network.
/
/ This message encapsulates the transport-layer endpoint and the protocol
/ required to deliver DeRec messages to that endpoint. It is typically
/ exchanged during pairing (via ContactMessage) so that both parties know
/ how to establish communication channels.
/
/ A TransportProtocol does not itself provide security guarantees.
/ All DeRec protocol messages MUST still be signed and encrypted at the
/ application layer, regardless of the underlying transport.
/
/ # Semantics
/
/ - The
uriidentifies the remote endpoint (e.g., HTTPS URL, message queue). / - Theprotocolspecifies how the URI should be interpreted and how / messages must be transmitted. / - The combination of (protocol,uri) MUST be sufficient for the sender / to deliver a DeRec message to the receiver. / / # Usage / / - Included in ContactMessage during pairing to advertise reachable endpoints. / - May be stored by peers as part of the communication channel state. / - Used by the sender to select the correct transport mechanism when / delivering protocol messages. / / # Extensibility / / The Protocol enum is expected to grow as new transport mechanisms are / supported (e.g., message queues, peer-to-peer transports). Implementations / MUST ignore unknown enum values unless explicitly required otherwise. / / # Reliability / / Transport protocols may be: / - request/response (e.g., HTTPS) / - store-and-forward (e.g., message queues) / / Implementations MUST handle retries and idempotency at the protocol layer, / independent of transport guarantees. - Unpair
Request Message - UnpairRequestMessage requests termination of the DeRec relationship between two parties (Owner and Helper).
- Unpair
Response Message - UnpairResponseMessage is the response to an UnpairRequestMessage.
- Verify
Share Request Message - VerifyShareRequestMessage initiates a verification challenge from the Owner to a Helper to confirm that the Helper still retains a specific share.
- Verify
Share Response Message - VerifyShareResponseMessage contains the result of a verification challenge and, on success, provides a proof of share possession.
Enums§
- Protocol
- / Enumeration of supported transport protocols. / / Additional values MAY be introduced in future versions of the protocol.
- Sender
Kind - SenderKind identifies the logical role of the sender in the pairing flow.
- Status
Enum - StatusEnum defines the set of possible outcomes for processing DeRec protocol requests.