version 1.6, 2007/06/02 09:04:58 |
version 1.7, 2013/05/17 00:13:13 |
|
|
if (oi != bin_size) { |
if (oi != bin_size) { |
error("buffer_put_bignum_ret: BN_bn2bin() failed: oi %d != bin_size %d", |
error("buffer_put_bignum_ret: BN_bn2bin() failed: oi %d != bin_size %d", |
oi, bin_size); |
oi, bin_size); |
xfree(buf); |
free(buf); |
return (-1); |
return (-1); |
} |
} |
|
|
|
|
buffer_append(buffer, buf, oi); |
buffer_append(buffer, buf, oi); |
|
|
memset(buf, 0, bin_size); |
memset(buf, 0, bin_size); |
xfree(buf); |
free(buf); |
|
|
return (0); |
return (0); |
} |
} |
|
|
if (oi < 0 || (u_int)oi != bytes - 1) { |
if (oi < 0 || (u_int)oi != bytes - 1) { |
error("buffer_put_bignum2_ret: BN_bn2bin() failed: " |
error("buffer_put_bignum2_ret: BN_bn2bin() failed: " |
"oi %d != bin_size %d", oi, bytes); |
"oi %d != bin_size %d", oi, bytes); |
xfree(buf); |
free(buf); |
return (-1); |
return (-1); |
} |
} |
hasnohigh = (buf[1] & 0x80) ? 0 : 1; |
hasnohigh = (buf[1] & 0x80) ? 0 : 1; |
buffer_put_string(buffer, buf+hasnohigh, bytes-hasnohigh); |
buffer_put_string(buffer, buf+hasnohigh, bytes-hasnohigh); |
memset(buf, 0, bytes); |
memset(buf, 0, bytes); |
xfree(buf); |
free(buf); |
return (0); |
return (0); |
} |
} |
|
|
|
|
|
|
if (len > 0 && (bin[0] & 0x80)) { |
if (len > 0 && (bin[0] & 0x80)) { |
error("buffer_get_bignum2_ret: negative numbers not supported"); |
error("buffer_get_bignum2_ret: negative numbers not supported"); |
xfree(bin); |
free(bin); |
return (-1); |
return (-1); |
} |
} |
if (len > 8 * 1024) { |
if (len > 8 * 1024) { |
error("buffer_get_bignum2_ret: cannot handle BN of size %d", |
error("buffer_get_bignum2_ret: cannot handle BN of size %d", |
len); |
len); |
xfree(bin); |
free(bin); |
return (-1); |
return (-1); |
} |
} |
if (BN_bin2bn(bin, len, value) == NULL) { |
if (BN_bin2bn(bin, len, value) == NULL) { |
error("buffer_get_bignum2_ret: BN_bin2bn failed"); |
error("buffer_get_bignum2_ret: BN_bin2bn failed"); |
xfree(bin); |
free(bin); |
return (-1); |
return (-1); |
} |
} |
xfree(bin); |
free(bin); |
return (0); |
return (0); |
} |
} |
|
|