1 #include "os.h" 2 #include <mp.h> 3 #include "dat.h" 4 5 // convert a little endian byte array (least significant byte first) to an mpint 6 mpint* 7 letomp(uchar *s, uint n, mpint *b) 8 { 9 int i=0, m = 0; 10 mpdigit x=0; 11 12 if(b == nil) 13 b = mpnew(0); 14 mpbits(b, 8*n); 15 for(; n > 0; n--){ 16 x |= ((mpdigit)(*s++)) << i; 17 i += 8; 18 if(i == Dbits){ 19 b->p[m++] = x; 20 i = 0; 21 x = 0; 22 } 23 } 24 if(i > 0) 25 b->p[m++] = x; 26 b->top = m; 27 return b; 28 } 29