#include "os.h"
#include <mp.h>
#include "dat.h"

/* convert a big-endian byte array (most significant byte first) to an mpint */
mpint*
betomp(uchar *p, uint n, mpint *b)
{
	int m, s;
	mpdigit x;

	if(b == nil)
		b = mpnew(0);

	/* dump leading zeros */
	while(*p == 0 && n > 1){
		p++;
		n--;
	}

	/* get the space */
	mpbits(b, n*8);
	b->top = DIGITS(n*8);
	m = b->top-1;

	/* first digit might not be Dbytes long */
	s = ((n-1)*8)%Dbits;
	x = 0;
	for(; n > 0; n--){
		x |= ((mpdigit)(*p++)) << s;
		s -= 8;
		if(s < 0){
			b->p[m--] = x;
			s = Dbits-8;
			x = 0;
		}
	}

	return b;
}
