version 1.7, 1999/11/24 19:53:44 |
version 1.8, 2000/03/16 20:56:14 |
|
|
{ |
{ |
int bits = BN_num_bits(value); |
int bits = BN_num_bits(value); |
int bin_size = (bits + 7) / 8; |
int bin_size = (bits + 7) / 8; |
char *buf = xmalloc(bin_size); |
char unsigned *buf = xmalloc(bin_size); |
int oi; |
int oi; |
char msg[2]; |
char msg[2]; |
|
|
|
|
PUT_16BIT(msg, bits); |
PUT_16BIT(msg, bits); |
buffer_append(buffer, msg, 2); |
buffer_append(buffer, msg, 2); |
/* Store the binary data. */ |
/* Store the binary data. */ |
buffer_append(buffer, buf, oi); |
buffer_append(buffer, (char *)buf, oi); |
|
|
memset(buf, 0, bin_size); |
memset(buf, 0, bin_size); |
xfree(buf); |
xfree(buf); |
|
|
bytes = (bits + 7) / 8; |
bytes = (bits + 7) / 8; |
if (buffer_len(buffer) < bytes) |
if (buffer_len(buffer) < bytes) |
fatal("buffer_get_bignum: input buffer too small"); |
fatal("buffer_get_bignum: input buffer too small"); |
bin = buffer_ptr(buffer); |
bin = (unsigned char*) buffer_ptr(buffer); |
BN_bin2bn(bin, bytes, value); |
BN_bin2bn(bin, bytes, value); |
buffer_consume(buffer, bytes); |
buffer_consume(buffer, bytes); |
|
|