#include "ecp_nistz.h"
#include <assert.h>
#include <openssl/bn.h>
#include "../bn/internal.h"
void gfp_little_endian_bytes_from_scalar(uint8_t str[], size_t str_len,
const BN_ULONG scalar[],
size_t num_limbs) {
assert(str_len == (num_limbs * BN_BYTES) + 1);
size_t i;
for (i = 0; i < num_limbs * BN_BYTES; i += BN_BYTES) {
BN_ULONG d = scalar[i / BN_BYTES];
str[i + 0] = d & 0xff;
str[i + 1] = (d >> 8) & 0xff;
str[i + 2] = (d >> 16) & 0xff;
str[i + 3] = (d >>= 24) & 0xff;
if (BN_BYTES == 8) {
d >>= 8;
str[i + 4] = d & 0xff;
str[i + 5] = (d >> 8) & 0xff;
str[i + 6] = (d >> 16) & 0xff;
str[i + 7] = (d >> 24) & 0xff;
}
}
for (; i < str_len; i++) {
str[i] = 0;
}
}