@@ -173,31 +173,45 @@ static void test_surjectionproof_api(void) {
173
173
CHECK (secp256k1_surjectionproof_verify (vrfy , & proof , ephemeral_input_tags , n_inputs , NULL ) == 0 );
174
174
CHECK (ecount == 16 );
175
175
176
+ /* Test how surjectionproof_generate fails when the proof was not created
177
+ * with surjectionproof_initialize */
178
+ ecount = 0 ;
179
+ CHECK (secp256k1_surjectionproof_generate (sign , & proof , ephemeral_input_tags , n_inputs , & ephemeral_output_tag , 0 , input_blinding_key [0 ], output_blinding_key ) == 1 );
180
+ {
181
+ secp256k1_surjectionproof tmp_proof = proof ;
182
+ tmp_proof .n_inputs = 0 ;
183
+ CHECK (secp256k1_surjectionproof_generate (sign , & tmp_proof , ephemeral_input_tags , n_inputs , & ephemeral_output_tag , 0 , input_blinding_key [0 ], output_blinding_key ) == 0 );
184
+ }
185
+ CHECK (ecount == 1 );
186
+
187
+ CHECK (secp256k1_surjectionproof_generate (sign , & proof , ephemeral_input_tags , n_inputs , & ephemeral_output_tag , 0 , input_blinding_key [0 ], output_blinding_key ) == 1 );
188
+
176
189
/* Check serialize */
190
+ ecount = 0 ;
177
191
serialized_len = sizeof (serialized_proof );
178
192
CHECK (secp256k1_surjectionproof_serialize (none , serialized_proof , & serialized_len , & proof ) != 0 );
179
- CHECK (ecount == 16 );
193
+ CHECK (ecount == 0 );
180
194
serialized_len = sizeof (serialized_proof );
181
195
CHECK (secp256k1_surjectionproof_serialize (none , NULL , & serialized_len , & proof ) == 0 );
182
- CHECK (ecount == 17 );
196
+ CHECK (ecount == 1 );
183
197
serialized_len = sizeof (serialized_proof );
184
198
CHECK (secp256k1_surjectionproof_serialize (none , serialized_proof , NULL , & proof ) == 0 );
185
- CHECK (ecount == 18 );
199
+ CHECK (ecount == 2 );
186
200
serialized_len = sizeof (serialized_proof );
187
201
CHECK (secp256k1_surjectionproof_serialize (none , serialized_proof , & serialized_len , NULL ) == 0 );
188
- CHECK (ecount == 19 );
202
+ CHECK (ecount == 3 );
189
203
190
204
serialized_len = sizeof (serialized_proof );
191
205
CHECK (secp256k1_surjectionproof_serialize (none , serialized_proof , & serialized_len , & proof ) != 0 );
192
206
/* Check parse */
193
207
CHECK (secp256k1_surjectionproof_parse (none , & proof , serialized_proof , serialized_len ) != 0 );
194
- CHECK (ecount == 19 );
208
+ CHECK (ecount == 3 );
195
209
CHECK (secp256k1_surjectionproof_parse (none , NULL , serialized_proof , serialized_len ) == 0 );
196
- CHECK (ecount == 20 );
210
+ CHECK (ecount == 4 );
197
211
CHECK (secp256k1_surjectionproof_parse (none , & proof , NULL , serialized_len ) == 0 );
198
- CHECK (ecount == 21 );
212
+ CHECK (ecount == 5 );
199
213
CHECK (secp256k1_surjectionproof_parse (none , & proof , serialized_proof , 0 ) == 0 );
200
- CHECK (ecount == 21 );
214
+ CHECK (ecount == 5 );
201
215
202
216
secp256k1_context_destroy (none );
203
217
secp256k1_context_destroy (sign );
0 commit comments