#include "bn/bn_wrapper.h"
#include "CommLayerDataPublic.h"
#include <string.h>
#include "log.h"


int bn_dump(const BIGNUM *n, unsigned char *output, int size)
{
	int num_bytes = BN_num_bytes(n);
	int pad = 0;

	if (num_bytes > size) {
		LOGE("num_bytes : %d, size : %d", num_bytes, size);
		return WRONG_DATA;
	}

	pad = size - num_bytes;
	if (pad > 0) {
		memset(output, 0, pad);
	}

	if (num_bytes != 0 && BN_bn2bin(n, output + pad) != num_bytes) {
		return PLATFORM_INTERNAL_ERROR;
	}

	return NO_ERROR;
}
