version 1.20, 2002/03/06 00:20:54 |
version 1.21, 2002/03/06 00:23:27 |
|
|
#include <openssl/bn.h> |
#include <openssl/bn.h> |
#include <openssl/dh.h> |
#include <openssl/dh.h> |
#include <openssl/evp.h> |
#include <openssl/evp.h> |
#include <openssl/err.h> |
|
|
|
#include "buffer.h" |
#include "buffer.h" |
#include "cipher.h" |
#include "cipher.h" |
|
|
if ((dh->priv_key = BN_new()) == NULL) |
if ((dh->priv_key = BN_new()) == NULL) |
fatal("dh_gen_key: BN_new failed"); |
fatal("dh_gen_key: BN_new failed"); |
/* generate a 2*need bits random private exponent */ |
/* generate a 2*need bits random private exponent */ |
if (!BN_rand(dh->priv_key, 2*need, 0, 0)) { |
if (!BN_rand(dh->priv_key, 2*need, 0, 0)) |
int ecode = ERR_get_error(); |
fatal("dh_gen_key: BN_rand failed"); |
fatal("dh_gen_key: BN_rand failed: %s", ERR_error_string(ecode, NULL)); |
|
} |
|
if (DH_generate_key(dh) == 0) |
if (DH_generate_key(dh) == 0) |
fatal("DH_generate_key"); |
fatal("DH_generate_key"); |
for (i = 0; i <= BN_num_bits(dh->priv_key); i++) |
for (i = 0; i <= BN_num_bits(dh->priv_key); i++) |