@@ -125,12 +125,10 @@ namespace rct {
125125 typedef unsigned int bits[ATOMS];
126126 typedef key key64[64 ];
127127
128- // just contains the necessary keys to represent asnlSigs
129- // c.f. http://eprint.iacr.org/2015/1098
130- struct asnlSig {
131- key64 L1;
132- key64 s2;
133- key s;
128+ struct boroSig {
129+ key64 s0;
130+ key64 s1;
131+ key ee;
134132 };
135133
136134 // Container for precomp
@@ -151,14 +149,14 @@ namespace rct {
151149 // FIELD(II) - not serialized, it can be reconstructed
152150 END_SERIALIZE ()
153151 };
154- // contains the data for an asnl sig
152+ // contains the data for an Borromean sig
155153 // also contains the "Ci" values such that
156154 // \sum Ci = C
157155 // and the signature proves that each Ci is either
158156 // a Pedersen commitment to 0 or to 2^i
159157 // thus proving that C is in the range of [0, 2^64]
160158 struct rangeSig {
161- asnlSig asig;
159+ boroSig asig;
162160 key64 Ci;
163161
164162 BEGIN_SERIALIZE_OBJECT ()
@@ -281,6 +279,7 @@ namespace rct {
281279 // we save the MGs contents directly, because we want it to save its
282280 // arrays and matrices without the size prefixes, and the load can't
283281 // know what size to expect if it's not in the data
282+ ar.begin_object ();
284283 ar.tag (" ss" );
285284 ar.begin_array ();
286285 PREPARE_CUSTOM_VECTOR_SERIALIZATION (mixin + 1 , MGs[i].ss );
@@ -296,7 +295,7 @@ namespace rct {
296295 for (size_t k = 0 ; k < mg_ss2_elements; ++k)
297296 {
298297 FIELDS (MGs[i].ss [j][k])
299- if (mg_ss2_elements - j > 1 )
298+ if (mg_ss2_elements - k > 1 )
300299 ar.delimit_array ();
301300 }
302301 ar.end_array ();
@@ -306,10 +305,13 @@ namespace rct {
306305 }
307306 ar.end_array ();
308307
308+ ar.tag (" cc" );
309309 FIELDS (MGs[i].cc )
310310 // MGs[i].II not saved, it can be reconstructed
311311 if (mg_elements - i > 1 )
312312 ar.delimit_array ();
313+
314+ ar.end_object ();
313315 }
314316 ar.end_array ();
315317 return true ;
@@ -415,7 +417,7 @@ namespace rct {
415417 // then the value in the first 8 bytes is returned
416418 xmr_amount h2d (const key &test);
417419 // 32 byte key to int[64]
418- void h2b (bits amountb2, key & test);
420+ void h2b (bits amountb2, const key & test);
419421 // int[64] to 32 byte key
420422 void b2h (key & amountdh, bits amountb2);
421423 // int[64] to uint long long
@@ -448,7 +450,7 @@ inline std::ostream &operator <<(std::ostream &o, const rct::key &v) { return pr
448450BLOB_SERIALIZER (rct::key);
449451BLOB_SERIALIZER (rct::key64);
450452BLOB_SERIALIZER (rct::ctkey);
451- BLOB_SERIALIZER (rct::asnlSig );
453+ BLOB_SERIALIZER (rct::boroSig );
452454
453455VARIANT_TAG (debug_archive, rct::key, " rct::key" );
454456VARIANT_TAG (debug_archive, rct::key64, " rct::key64" );
@@ -460,7 +462,7 @@ VARIANT_TAG(debug_archive, rct::ctkeyM, "rct::ctkeyM");
460462VARIANT_TAG (debug_archive, rct::ecdhTuple, " rct::ecdhTuple" );
461463VARIANT_TAG (debug_archive, rct::mgSig, " rct::mgSig" );
462464VARIANT_TAG (debug_archive, rct::rangeSig, " rct::rangeSig" );
463- VARIANT_TAG (debug_archive, rct::asnlSig , " rct::asnlSig " );
465+ VARIANT_TAG (debug_archive, rct::boroSig , " rct::boroSig " );
464466VARIANT_TAG (debug_archive, rct::rctSig, " rct::rctSig" );
465467
466468VARIANT_TAG (binary_archive, rct::key, 0x90 );
@@ -473,7 +475,7 @@ VARIANT_TAG(binary_archive, rct::ctkeyM, 0x96);
473475VARIANT_TAG (binary_archive, rct::ecdhTuple, 0x97 );
474476VARIANT_TAG (binary_archive, rct::mgSig, 0x98 );
475477VARIANT_TAG (binary_archive, rct::rangeSig, 0x99 );
476- VARIANT_TAG (binary_archive, rct::asnlSig , 0x9a );
478+ VARIANT_TAG (binary_archive, rct::boroSig , 0x9a );
477479VARIANT_TAG (binary_archive, rct::rctSig, 0x9b );
478480
479481VARIANT_TAG (json_archive, rct::key, " rct_key" );
@@ -486,7 +488,7 @@ VARIANT_TAG(json_archive, rct::ctkeyM, "rct_ctkeyM");
486488VARIANT_TAG (json_archive, rct::ecdhTuple, " rct_ecdhTuple" );
487489VARIANT_TAG (json_archive, rct::mgSig, " rct_mgSig" );
488490VARIANT_TAG (json_archive, rct::rangeSig, " rct_rangeSig" );
489- VARIANT_TAG (json_archive, rct::asnlSig , " rct_asnlSig " );
491+ VARIANT_TAG (json_archive, rct::boroSig , " rct_boroSig " );
490492VARIANT_TAG (json_archive, rct::rctSig, " rct_rctSig" );
491493
492494#endif /* RCTTYPES_H */
0 commit comments