ringct: use Cryptonote serialization to hash non prunable data
This commit is contained in:
parent
c3b3260ae5
commit
074e602609
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include "misc_log_ex.h"
|
#include "misc_log_ex.h"
|
||||||
#include "rctSigs.h"
|
#include "rctSigs.h"
|
||||||
|
#include "cryptonote_core/cryptonote_format_utils.h"
|
||||||
|
|
||||||
using namespace crypto;
|
using namespace crypto;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -343,9 +345,12 @@ namespace rct {
|
||||||
|
|
||||||
key get_pre_mlsag_hash(const rctSig &rv)
|
key get_pre_mlsag_hash(const rctSig &rv)
|
||||||
{
|
{
|
||||||
|
keyV hashes;
|
||||||
|
hashes.push_back(rv.message);
|
||||||
|
crypto::hash h;
|
||||||
|
cryptonote::get_blob_hash(cryptonote::t_serializable_object_to_blob((const rctSigBase&)rv), h);
|
||||||
|
hashes.push_back(hash2rct(h));
|
||||||
keyV kv;
|
keyV kv;
|
||||||
kv.push_back(d2h(rv.type));
|
|
||||||
kv.push_back(rv.message);
|
|
||||||
for (auto r: rv.p.rangeSigs)
|
for (auto r: rv.p.rangeSigs)
|
||||||
{
|
{
|
||||||
for (size_t n = 0; n < 64; ++n)
|
for (size_t n = 0; n < 64; ++n)
|
||||||
|
@ -356,26 +361,9 @@ namespace rct {
|
||||||
for (size_t n = 0; n < 64; ++n)
|
for (size_t n = 0; n < 64; ++n)
|
||||||
kv.push_back(r.Ci[n]);
|
kv.push_back(r.Ci[n]);
|
||||||
}
|
}
|
||||||
// no MG/MGs, that's what will sign all this
|
hashes.push_back(cn_fast_hash(kv));
|
||||||
// no mixRing, it's part of the vin already
|
|
||||||
for (auto o: rv.pseudoOuts)
|
|
||||||
{
|
|
||||||
kv.push_back(o);
|
|
||||||
}
|
|
||||||
for (auto i: rv.ecdhInfo)
|
|
||||||
{
|
|
||||||
kv.push_back(i.mask);
|
|
||||||
kv.push_back(i.amount);
|
|
||||||
// no senderPk, unused here
|
|
||||||
}
|
|
||||||
for (auto o: rv.outPk)
|
|
||||||
{
|
|
||||||
kv.push_back(o.dest);
|
|
||||||
kv.push_back(o.mask);
|
|
||||||
}
|
|
||||||
kv.push_back(d2h(rv.txnFee));
|
|
||||||
|
|
||||||
return cn_fast_hash(kv);
|
return cn_fast_hash(hashes);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Ring-ct MG sigs
|
//Ring-ct MG sigs
|
||||||
|
|
Loading…
Reference in New Issue