Echo Lineinitial commit9fd65008 years agoHistory
28 lines · 547 B · C
RawDownload
#include "os.h"#include <mp.h>#include <libsec.h> //  generate a probable prime.  accuracy is the miller-rabin interationsvoidgenprime(mpint *p, int n, int accuracy){	mpdigit x; 	// generate n random bits with high and low bits set	mpbits(p, n);	genrandom((uchar*)p->p, (n+7)/8);	p->top = (n+Dbits-1)/Dbits;	x = 1;	x <<= ((n-1)%Dbits);	p->p[p->top-1] &= (x-1);	p->p[p->top-1] |= x;	p->p[0] |= 1;	mpnorm(p); 	// keep icrementing till it looks prime	for(;;){		if(probably_prime(p, accuracy))			break;		mpadd(p, mptwo, p);	}}