470{
471 string blob;
484
489
491 for (size_t n = 0; n < keyv0.size(); ++n)
496 for (size_t n = 0; n < keyv0.size(); ++n)
497 {
499 }
500
502 for (size_t n = 0; n < keym0.size(); ++n)
503 for (size_t i = 0; i < keym0[n].size(); ++i)
508 for (size_t n = 0; n < keym0.size(); ++n)
509 {
511 for (size_t i = 0; i < keym0[n].size(); ++i)
512 {
514 }
515 }
516
520 ASSERT_TRUE(!memcmp(&ctkey0, &ctkey1,
sizeof(ctkey0)));
521
522 ctkeyv0 = std::vector<rct::ctkey>(14);
523 for (size_t n = 0; n < ctkeyv0.size(); ++n)
528 for (size_t n = 0; n < ctkeyv0.size(); ++n)
529 {
530 ASSERT_TRUE(!memcmp(&ctkeyv0[n], &ctkeyv1[n],
sizeof(ctkeyv0[n])));
531 }
532
533 ctkeym0 = std::vector<rct::ctkeyV>(9);
534 for (size_t n = 0; n < ctkeym0.size(); ++n)
535 {
536 ctkeym0[n] = std::vector<rct::ctkey>(11);
537 for (size_t i = 0; i < ctkeym0[n].size(); ++i)
539 }
543 for (size_t n = 0; n < ctkeym0.size(); ++n)
544 {
545 ASSERT_TRUE(ctkeym0[n].size() == ctkeym1[n].size());
546 for (size_t i = 0; i < ctkeym0.size(); ++i)
547 {
548 ASSERT_TRUE(!memcmp(&ctkeym0[n][i], &ctkeym1[n][i],
sizeof(ctkeym0[n][i])));
549 }
550 }
551
558
559 for (size_t n = 0; n < 64; ++n)
560 {
563 }
567 ASSERT_TRUE(!memcmp(&boro0, &boro1,
sizeof(boro0)));
568
569
570 vector<uint64_t> inamounts;
573 inamounts.push_back(6000);
575 sc.push_back(sctmp);
576 pc.push_back(pctmp);
577 inamounts.push_back(7000);
579 sc.push_back(sctmp);
580 pc.push_back(pctmp);
581 vector<uint64_t> amounts;
583
584 amounts.push_back(500);
589 destinations.push_back(Pk);
590
591 amounts.push_back(12500);
594 destinations.push_back(Pk);
595
597 s0 =
rct::genRctSimple(
rct::zero(), sc, pc, destinations, inamounts, amounts, amount_keys, NULL, NULL, 0, 3, rct_config,
hw::get_device(
"default"));
598
603 for (
size_t n = 0; n < mg0.
ss.size(); ++n)
604 {
606 }
608
609
611
618}
device & get_device(const std::string &device_descriptor)
void hash_to_scalar(key &hash, const void *data, const std::size_t l)
void skpkGen(key &sk, key &pk)
std::vector< ctkeyV > ctkeyM
tuple< key, key > skpkGen()
std::vector< ctkey > ctkeyV
tuple< ctkey, ctkey > ctskpkGen(etn_amount amount)
@ RangeProofPaddedBulletproof
rctSig genRctSimple(const key &message, const ctkeyV &inSk, const keyV &destinations, const vector< etn_amount > &inamounts, const vector< etn_amount > &outamounts, etn_amount txnFee, const ctkeyM &mixRing, const keyV &amount_keys, const std::vector< multisig_kLRki > *kLRki, multisig_out *msout, const std::vector< unsigned int > &index, ctkeyV &outSk, const RCTConfig &rct_config, hw::device &hwdev)
keyM keyMInit(size_t rows, size_t cols)
std::vector< Bulletproof > bulletproofs