pub struct KeyExporter<SK = NoSigningKey, VK = NoVerifyingKey, MS = NoSignature, KS = Keyshare> { /* private fields */ }
Expand description
A message used for setting up key export operations in a multi-party computation protocol.
This struct encapsulates all necessary information for exporting a key, including participant information, cryptographic keys, and protocol parameters.
§Type Parameters
SK
- The type of signing key used for message signaturesVK
- The type of verifying key used to verify message signaturesMS
- The type of message signatureKS
- The type of keyshare used in the protocol
Implementations§
Source§impl<SK, VK, MS, KS> KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> KeyExporter<SK, VK, MS, KS>
Sourcepub fn new(
inst: InstanceId,
sk: SK,
party_id: usize,
vk: Vec<VK>,
share: Arc<KS>,
enc_pub_key: PublicKey,
) -> Self
pub fn new( inst: InstanceId, sk: SK, party_id: usize, vk: Vec<VK>, share: Arc<KS>, enc_pub_key: PublicKey, ) -> Self
Creates a new setup message for key export operations.
§Arguments
inst
- Instance identifier for the protocolsk
- Signing key for the current partyparty_id
- ID of the current partyvk
- Vector of verifying keys for all participantsshare
- Reference to the keyshare to be exportedenc_pub_key
- Public key of the receiver
§Returns
A new KeyExporter
instance with default TTL
Returns a reference to the keyshare to be exported.
Trait Implementations§
Source§impl<SK, VK, MS, KS> KeyExporterSetupMessage<PublicKey, KS> for KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> KeyExporterSetupMessage<PublicKey, KS> for KeyExporter<SK, VK, MS, KS>
Source§fn receiver_public_key(&self) -> &PublicKey
fn receiver_public_key(&self) -> &PublicKey
Returns the public key of the receiver.
Returns a reference to the keyshare to be exported.
Source§impl<SK, VK, MS, KS> ProtocolParticipant for KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> ProtocolParticipant for KeyExporter<SK, VK, MS, KS>
Source§fn total_participants(&self) -> usize
fn total_participants(&self) -> usize
Returns the total number of participants in the protocol.
Source§fn participant_index(&self) -> usize
fn participant_index(&self) -> usize
Returns the index of the current participant.
Source§fn instance_id(&self) -> &InstanceId
fn instance_id(&self) -> &InstanceId
Returns the instance identifier for the protocol.
Source§fn message_ttl(&self) -> Duration
fn message_ttl(&self) -> Duration
Returns the time-to-live duration for messages.
Source§fn verifier(&self, index: usize) -> &Self::MessageVerifier
fn verifier(&self, index: usize) -> &Self::MessageVerifier
Source§fn signer(&self) -> &Self::MessageSigner
fn signer(&self) -> &Self::MessageSigner
Returns the signing key for the current participant.
Source§type MessageSignature = MS
type MessageSignature = MS
Type of a signature, added at end of all broadcast messages
passed between participants.
Source§type MessageSigner = SK
type MessageSigner = SK
Type to sign broadcast messages, some kind of SecretKey.
Source§type MessageVerifier = VK
type MessageVerifier = VK
Type to verify signed message, a verifying key. AsRef<u8> is
used to get external representation of the key to derive
message ID.
Source§fn participant_verifier(&self) -> &Self::MessageVerifier
fn participant_verifier(&self) -> &Self::MessageVerifier
Return reference to participant’s own verifier
Source§fn all_other_parties(&self) -> AllOtherParties ⓘ
fn all_other_parties(&self) -> AllOtherParties ⓘ
Return iterator of all participant’s indexes except own one.
Source§fn msg_id(&self, receiver: Option<usize>, tag: MessageTag) -> MsgId
fn msg_id(&self, receiver: Option<usize>, tag: MessageTag) -> MsgId
Generate ID of a message from this party to some other (or broadcast)
if passed receiver is None.
Source§fn msg_id_from(
&self,
sender: usize,
receiver: Option<usize>,
tag: MessageTag,
) -> MsgId
fn msg_id_from( &self, sender: usize, receiver: Option<usize>, tag: MessageTag, ) -> MsgId
Generate ID of a message from given sender to a given
receiver. Receiver is designed by its index and is None for a
broadcase message.
Auto Trait Implementations§
impl<SK, VK, MS, KS> Freeze for KeyExporter<SK, VK, MS, KS>where
SK: Freeze,
impl<SK, VK, MS, KS> RefUnwindSafe for KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> Send for KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> Sync for KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> Unpin for KeyExporter<SK, VK, MS, KS>
impl<SK, VK, MS, KS> UnwindSafe for KeyExporter<SK, VK, MS, KS>
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