https://github.com/CryptDB/cryptdb
Raw File
Tip revision: 7678bc98d3054f1418371779c6d1050cd1a88b2e authored by Raluca Ada Popa on 04 January 2014, 01:31:06 UTC
small changes to readme
Tip revision: 7678bc9
prng.cc
#include <crypto/prng.hh>

using namespace NTL;

ZZ
PRNG::rand_zz_nbits(size_t nbits)
{
    if (nbits == 0)
        return to_ZZ(0);

    uint8_t buf[(nbits + 7) / 8];
    rand_bytes(sizeof(buf), buf);

    ZZ r = ZZFromBytes(buf, sizeof(buf));
    SetBit(r, nbits - 1);
    return r;
}

ZZ
PRNG::rand_zz_prime(size_t nbits)
{
    for (;;) {
        ZZ r = rand_zz_nbits(nbits);
        SetBit(r, 0);

        // XXX assume ProbPrime is perfect
        if (ProbPrime(r, 10))
            return r;
    }
}
back to top