penumbra_sdk_proto/gen/
penumbra.crypto.decaf377_frost.v1.rs

1// This file is @generated by prost-build.
2/// A commitment to a polynomial, as a list of group elements.
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct VerifiableSecretSharingCommitment {
5    /// Each of these bytes should be the serialization of a group element.
6    #[prost(bytes = "vec", repeated, tag = "1")]
7    pub elements: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
8}
9impl ::prost::Name for VerifiableSecretSharingCommitment {
10    const NAME: &'static str = "VerifiableSecretSharingCommitment";
11    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
12    fn full_name() -> ::prost::alloc::string::String {
13        "penumbra.crypto.decaf377_frost.v1.VerifiableSecretSharingCommitment".into()
14    }
15    fn type_url() -> ::prost::alloc::string::String {
16        "/penumbra.crypto.decaf377_frost.v1.VerifiableSecretSharingCommitment".into()
17    }
18}
19/// The public package sent in round 1 of the DKG protocol.
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct DkgRound1Package {
22    /// A commitment to the polynomial for secret sharing.
23    #[prost(message, optional, tag = "1")]
24    pub commitment: ::core::option::Option<VerifiableSecretSharingCommitment>,
25    /// A proof of knowledge of the underlying secret being shared.
26    #[prost(bytes = "vec", tag = "2")]
27    pub proof_of_knowledge: ::prost::alloc::vec::Vec<u8>,
28}
29impl ::prost::Name for DkgRound1Package {
30    const NAME: &'static str = "DKGRound1Package";
31    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
32    fn full_name() -> ::prost::alloc::string::String {
33        "penumbra.crypto.decaf377_frost.v1.DKGRound1Package".into()
34    }
35    fn type_url() -> ::prost::alloc::string::String {
36        "/penumbra.crypto.decaf377_frost.v1.DKGRound1Package".into()
37    }
38}
39/// A share of the final signing key.
40#[derive(Clone, PartialEq, ::prost::Message)]
41pub struct SigningShare {
42    /// These bytes should be a valid scalar.
43    #[prost(bytes = "vec", tag = "1")]
44    pub scalar: ::prost::alloc::vec::Vec<u8>,
45}
46impl ::prost::Name for SigningShare {
47    const NAME: &'static str = "SigningShare";
48    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
49    fn full_name() -> ::prost::alloc::string::String {
50        "penumbra.crypto.decaf377_frost.v1.SigningShare".into()
51    }
52    fn type_url() -> ::prost::alloc::string::String {
53        "/penumbra.crypto.decaf377_frost.v1.SigningShare".into()
54    }
55}
56/// The per-participant package sent in round 2 of the DKG protocol.
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct DkgRound2Package {
59    /// This is the share we're sending to that participant.
60    #[prost(message, optional, tag = "1")]
61    pub signing_share: ::core::option::Option<SigningShare>,
62}
63impl ::prost::Name for DkgRound2Package {
64    const NAME: &'static str = "DKGRound2Package";
65    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
66    fn full_name() -> ::prost::alloc::string::String {
67        "penumbra.crypto.decaf377_frost.v1.DKGRound2Package".into()
68    }
69    fn type_url() -> ::prost::alloc::string::String {
70        "/penumbra.crypto.decaf377_frost.v1.DKGRound2Package".into()
71    }
72}
73/// Represents a commitment to a nonce value.
74#[derive(Clone, PartialEq, ::prost::Message)]
75pub struct NonceCommitment {
76    /// These bytes should be a valid group element.
77    #[prost(bytes = "vec", tag = "1")]
78    pub element: ::prost::alloc::vec::Vec<u8>,
79}
80impl ::prost::Name for NonceCommitment {
81    const NAME: &'static str = "NonceCommitment";
82    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
83    fn full_name() -> ::prost::alloc::string::String {
84        "penumbra.crypto.decaf377_frost.v1.NonceCommitment".into()
85    }
86    fn type_url() -> ::prost::alloc::string::String {
87        "/penumbra.crypto.decaf377_frost.v1.NonceCommitment".into()
88    }
89}
90/// Represents the commitments to nonces needed for signing.
91#[derive(Clone, PartialEq, ::prost::Message)]
92pub struct SigningCommitments {
93    /// One nonce to hide them.
94    #[prost(message, optional, tag = "1")]
95    pub hiding: ::core::option::Option<NonceCommitment>,
96    /// Another to bind them.
97    #[prost(message, optional, tag = "2")]
98    pub binding: ::core::option::Option<NonceCommitment>,
99}
100impl ::prost::Name for SigningCommitments {
101    const NAME: &'static str = "SigningCommitments";
102    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
103    fn full_name() -> ::prost::alloc::string::String {
104        "penumbra.crypto.decaf377_frost.v1.SigningCommitments".into()
105    }
106    fn type_url() -> ::prost::alloc::string::String {
107        "/penumbra.crypto.decaf377_frost.v1.SigningCommitments".into()
108    }
109}
110/// A share of the final signature. These get aggregated to make the actual thing.
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct SignatureShare {
113    /// These bytes should be a valid scalar.
114    #[prost(bytes = "vec", tag = "1")]
115    pub scalar: ::prost::alloc::vec::Vec<u8>,
116}
117impl ::prost::Name for SignatureShare {
118    const NAME: &'static str = "SignatureShare";
119    const PACKAGE: &'static str = "penumbra.crypto.decaf377_frost.v1";
120    fn full_name() -> ::prost::alloc::string::String {
121        "penumbra.crypto.decaf377_frost.v1.SignatureShare".into()
122    }
123    fn type_url() -> ::prost::alloc::string::String {
124        "/penumbra.crypto.decaf377_frost.v1.SignatureShare".into()
125    }
126}