34 #ifndef WOLFSSL_DH_TYPE_DEFINED 36 #define WOLFSSL_DH_TYPE_DEFINED 45 WOLFSSL_BIGNUM* pub_key;
46 WOLFSSL_BIGNUM* priv_key;
57 const unsigned char **pp,
long length);
58 WOLFSSL_API
int wolfSSL_i2d_DHparams(
const WOLFSSL_DH *dh,
unsigned char **out);
62 WOLFSSL_API
int wolfSSL_DH_check(
const WOLFSSL_DH *dh,
int *codes);
64 WOLFSSL_API
int wolfSSL_DH_generate_key(
WOLFSSL_DH*);
65 WOLFSSL_API
int wolfSSL_DH_compute_key(
unsigned char* key, WOLFSSL_BIGNUM* pub,
67 WOLFSSL_API
int wolfSSL_DH_LoadDer(
WOLFSSL_DH*,
const unsigned char*,
int sz);
68 WOLFSSL_API
int wolfSSL_DH_set0_pqg(
WOLFSSL_DH*, WOLFSSL_BIGNUM*,
69 WOLFSSL_BIGNUM*, WOLFSSL_BIGNUM*);
71 #define DH_new wolfSSL_DH_new 72 #define DH_free wolfSSL_DH_free 74 #define d2i_DHparams wolfSSL_d2i_DHparams 75 #define i2d_DHparams wolfSSL_i2d_DHparams 76 #define DH_check wolfSSL_DH_check 78 #define DH_size wolfSSL_DH_size 79 #define DH_generate_key wolfSSL_DH_generate_key 80 #define DH_compute_key wolfSSL_DH_compute_key 81 #if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L 82 #define DH_set0_pqg wolfSSL_DH_set0_pqg 84 #define DH_bits(x) (BN_num_bits(x->p)) 86 #define DH_GENERATOR_2 2 87 #define DH_CHECK_P_NOT_PRIME 0x01 88 #define DH_CHECK_P_NOT_SAFE_PRIME 0x02 89 #define DH_NOT_SUITABLE_GENERATOR 0x08 92 #define DH_CHECK_INVALID_Q_VALUE 0x10 93 #define DH_CHECK_Q_NOT_PRIME 0x11 97 #define get_rfc2409_prime_768 wolfSSL_DH_768_prime 98 #define get_rfc2409_prime_1024 wolfSSL_DH_1024_prime 99 #define get_rfc3526_prime_1536 wolfSSL_DH_1536_prime 100 #define get_rfc3526_prime_2048 wolfSSL_DH_2048_prime 101 #define get_rfc3526_prime_3072 wolfSSL_DH_3072_prime 102 #define get_rfc3526_prime_4096 wolfSSL_DH_4096_prime 103 #define get_rfc3526_prime_6144 wolfSSL_DH_6144_prime 104 #define get_rfc3526_prime_8192 wolfSSL_DH_8192_prime 110 #if defined(OPENSSL_ALL) || defined(HAVE_STUNNEL) 111 #define DH_generate_parameters wolfSSL_DH_generate_parameters 112 #define DH_generate_parameters_ex wolfSSL_DH_generate_parameters_ex