Subversion Repositories planix.SVN

Rev

Rev 26 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

void
mptober(mpint *b, uchar *p, int n)
{
        int i, j, m;
        mpdigit x;

        memset(p, 0, n);

        p += n;
        m = b->top*Dbytes;
        if(m < n)
                n = m;

        i = 0;
        while(n >= Dbytes){
                n -= Dbytes;
                x = b->p[i++];
                for(j = 0; j < Dbytes; j++){
                        *--p = x;
                        x >>= 8;
                }
        }
        if(n > 0){
                x = b->p[i];
                for(j = 0; j < n; j++){
                        *--p = x;
                        x >>= 8;
                }
        }
}