@@ -30,10 +30,6 @@ pub enum MultiSignatureError {
30
30
/// Errors which can be output by Mithril single signature verification.
31
31
#[ derive( Debug , Clone , thiserror:: Error ) ]
32
32
pub enum StmSignatureError {
33
- /// The IVK is invalid after aggregating the keys
34
- #[ error( "Aggregated key does not correspond to the expected key." ) ]
35
- IvkInvalid ( VerificationKey ) ,
36
-
37
33
/// There is an index out of bounds
38
34
#[ error( "Received index, {0}, is higher than what the security parameter allows, {1}." ) ]
39
35
IndexBoundFailed ( u64 , u64 ) ,
@@ -48,7 +44,7 @@ pub enum StmSignatureError {
48
44
49
45
/// A party submitted an invalid signature
50
46
#[ error( "A provided signature is invalid" ) ]
51
- SingleSignatureInvalid ( Signature ) ,
47
+ SignatureInvalid ( Signature ) ,
52
48
53
49
/// This error occurs when the the serialization of the raw bytes failed
54
50
#[ error( "Invalid bytes" ) ]
@@ -66,17 +62,17 @@ pub enum StmAggregateSignatureError<D: Digest + FixedOutput> {
66
62
#[ error( "Aggregated key does not correspond to the expected key." ) ]
67
63
IvkInvalid ( VerificationKey ) ,
68
64
69
- /// There is an index out of bounds
70
- #[ error( "Received index, {0}, is higher than what the security parameter allows, {1}." ) ]
71
- IndexBoundFailed ( u64 , u64 ) ,
72
-
73
65
/// There is a duplicate index
74
66
#[ error( "Indices are not unique." ) ]
75
67
IndexNotUnique ,
76
68
77
69
/// The aggregated signature is invalid
78
70
#[ error( "Aggregate signature is invalid" ) ]
79
- SignatureInvalid ,
71
+ AggregateSignatureInvalid ,
72
+
73
+ /// One of the aggregated signatures is invalid
74
+ #[ error( "Individual signature is invalid: {0}" ) ]
75
+ IndividualSignatureInvalid ( StmSignatureError ) ,
80
76
81
77
/// This error occurs when the the serialization of the raw bytes failed
82
78
#[ error( "Invalid bytes" ) ]
@@ -135,16 +131,16 @@ pub enum RegisterError {
135
131
UnregisteredInitializer ,
136
132
}
137
133
138
- impl From < RegisterError > for StmSignatureError {
139
- fn from ( e : RegisterError ) -> Self {
140
- match e {
141
- RegisterError :: SerializationError => Self :: SerializationError ,
142
- RegisterError :: KeyInvalid ( e) => Self :: IvkInvalid ( e. vk ) ,
143
- RegisterError :: KeyRegistered ( _) => unreachable ! ( ) ,
144
- RegisterError :: UnregisteredInitializer => unreachable ! ( ) ,
145
- }
146
- }
147
- }
134
+ // impl From<RegisterError> for StmSignatureError {
135
+ // fn from(e: RegisterError) -> Self {
136
+ // match e {
137
+ // RegisterError::SerializationError => Self::SerializationError,
138
+ // RegisterError::KeyInvalid(e) => Self::IvkInvalid(e.vk),
139
+ // RegisterError::KeyRegistered(_) => unreachable!(),
140
+ // RegisterError::UnregisteredInitializer => unreachable!(),
141
+ // }
142
+ // }
143
+ // }
148
144
149
145
impl < D : Digest + FixedOutput > From < MerkleTreeError < D > > for StmAggregateSignatureError < D > {
150
146
fn from ( e : MerkleTreeError < D > ) -> Self {
@@ -160,8 +156,8 @@ impl From<MultiSignatureError> for StmSignatureError {
160
156
fn from ( e : MultiSignatureError ) -> Self {
161
157
match e {
162
158
MultiSignatureError :: SerializationError => Self :: SerializationError ,
163
- MultiSignatureError :: KeyInvalid ( e) => Self :: IvkInvalid ( e . vk ) ,
164
- MultiSignatureError :: SignatureInvalid ( e ) => Self :: SingleSignatureInvalid ( e ) ,
159
+ MultiSignatureError :: SignatureInvalid ( e) => Self :: SignatureInvalid ( e ) ,
160
+ MultiSignatureError :: KeyInvalid ( _ ) => unreachable ! ( ) ,
165
161
MultiSignatureError :: AggregateSignatureInvalid => unreachable ! ( ) ,
166
162
}
167
163
}
@@ -173,21 +169,14 @@ impl<D: Digest + FixedOutput> From<MultiSignatureError> for StmAggregateSignatur
173
169
MultiSignatureError :: SerializationError => Self :: SerializationError ,
174
170
MultiSignatureError :: KeyInvalid ( e) => Self :: IvkInvalid ( e. vk ) ,
175
171
MultiSignatureError :: SignatureInvalid ( _e) => unreachable ! ( ) ,
176
- MultiSignatureError :: AggregateSignatureInvalid => Self :: SignatureInvalid ,
172
+ MultiSignatureError :: AggregateSignatureInvalid => Self :: AggregateSignatureInvalid ,
177
173
}
178
174
}
179
175
}
180
176
181
177
impl < D : Digest + FixedOutput > From < StmSignatureError > for StmAggregateSignatureError < D > {
182
178
fn from ( e : StmSignatureError ) -> Self {
183
- match e {
184
- StmSignatureError :: SerializationError => Self :: SerializationError ,
185
- StmSignatureError :: IvkInvalid ( e) => Self :: IvkInvalid ( e) ,
186
- StmSignatureError :: SingleSignatureInvalid ( _e) => unreachable ! ( ) ,
187
- StmSignatureError :: IndexBoundFailed ( e, _e) => Self :: IndexBoundFailed ( e, _e) ,
188
- StmSignatureError :: LotteryLost => unreachable ! ( ) ,
189
- StmSignatureError :: EvalInvalid ( _e) => unreachable ! ( ) ,
190
- }
179
+ StmAggregateSignatureError :: IndividualSignatureInvalid ( e)
191
180
}
192
181
}
193
182
0 commit comments