#include "platform.h" #include "mp.h" /* return uniform random [0..n-1] */ mpint* mpnrand(mpint *n, void (*gen)(u8int*, int), mpint *b) { int bits; bits = mpsignif(n); if(bits == 0) abort(); if(b == nil) b = mpnew(bits); do{ mprand(bits, gen, b); }while(mpmagcmp(b, n) >= 0); return b; }