version 1.15, 2001/01/10 22:56:22 |
version 1.18, 2001/12/05 10:06:12 |
|
|
#include "includes.h" |
#include "includes.h" |
RCSID("$OpenBSD$"); |
RCSID("$OpenBSD$"); |
|
|
#include "ssh.h" |
|
#include <openssl/bn.h> |
#include <openssl/bn.h> |
#include "bufaux.h" |
#include "bufaux.h" |
#include "xmalloc.h" |
#include "xmalloc.h" |
#include "getput.h" |
#include "getput.h" |
|
#include "log.h" |
|
|
/* |
/* |
* Stores an BIGNUM in the buffer with a 2-byte msb first bit count, followed |
* Stores an BIGNUM in the buffer with a 2-byte msb first bit count, followed |
|
|
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 = (u_char*) buffer_ptr(buffer); |
bin = (u_char *) buffer_ptr(buffer); |
BN_bin2bn(bin, bytes, value); |
BN_bin2bn(bin, bytes, value); |
buffer_consume(buffer, bytes); |
buffer_consume(buffer, bytes); |
|
|
|
|
log("negativ!"); |
log("negativ!"); |
for(i = bytes-1, carry = 1; i>=0; i--) { |
for(i = bytes-1, carry = 1; i>=0; i--) { |
uc[i] ^= 0xff; |
uc[i] ^= 0xff; |
if(carry) |
if (carry) |
carry = !++uc[i]; |
carry = !++uc[i]; |
} |
} |
} |
} |