summaryrefslogtreecommitdiffstats
path: root/moon-abe/pbc-0.5.14/guru/testindexcalculus.c
blob: 1bb36146eb560caf2fd58ee9bc3c731c5052ec32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <gmp.h>
#include "pbc.h"

int main(int argc, char **argv)
{
    mpz_t x;
    mpz_t g, h, q;
    mpz_init(x);
    mpz_init(g);
    mpz_init(h);
    mpz_init(q);
    int bits = 40;

    if (argc == 2) {
        bits = atoi(argv[1]);
    }
    mpz_setbit(q, bits);
    pbc_mpz_random(q, q);
    mpz_nextprime(q, q);
    pbc_mpz_random(g, q);
    pbc_mpz_random(h, q);
    mpz_powm(h, g, h, q);

    element_dlog_index_calculus(x, g, h, q);
    element_printf("%Zd^%Zd %% %Zd = %Zd\n", g, x, q, h);

    return 0;
}