aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/dexon-foundation/mcl/test/paillier_test.cpp
blob: 31d2b26fc64dc474ef9913045001def39139eaa5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cybozu/test.hpp>
#include <mcl/paillier.hpp>

CYBOZU_TEST_AUTO(paillier)
{
    using namespace mcl::paillier;
    SecretKey sec;
    sec.init(2048);
    PublicKey pub;
    sec.getPublicKey(pub);
    mpz_class m1("12342340928409"), m2("23049820498204");
    mpz_class c1, c2, c3;
    pub.enc(c1, m1);
    pub.enc(c2, m2);
    std::cout << std::hex << "c1=" << c1 << "\nc2=" << c2 << std::endl;
    pub.add(c3, c1, c2);
    mpz_class d1, d2, d3;
    sec.dec(d1, c1);
    sec.dec(d2, c2);
    sec.dec(d3, c3);
    CYBOZU_TEST_EQUAL(m1, d1);
    CYBOZU_TEST_EQUAL(m2, d2);
    CYBOZU_TEST_EQUAL(m1 + m2, d3);
}