version 1.49, 2010/02/26 20:29:54 |
version 1.50, 2010/08/31 11:54:45 |
|
|
|
|
#include <openssl/evp.h> |
#include <openssl/evp.h> |
#include <openssl/hmac.h> |
#include <openssl/hmac.h> |
|
#include <openssl/ec.h> |
|
|
#define KEX_COOKIE_LEN 16 |
#define KEX_COOKIE_LEN 16 |
|
|
|
|
#define KEX_DHGEX_SHA1 "diffie-hellman-group-exchange-sha1" |
#define KEX_DHGEX_SHA1 "diffie-hellman-group-exchange-sha1" |
#define KEX_DHGEX_SHA256 "diffie-hellman-group-exchange-sha256" |
#define KEX_DHGEX_SHA256 "diffie-hellman-group-exchange-sha256" |
#define KEX_RESUME "resume@appgate.com" |
#define KEX_RESUME "resume@appgate.com" |
|
/* The following represents the family of ECDH methods */ |
|
#define KEX_ECDH_SHA256 "ecdh-sha2-" |
|
|
#define COMP_NONE 0 |
#define COMP_NONE 0 |
#define COMP_ZLIB 1 |
#define COMP_ZLIB 1 |
|
|
KEX_DH_GRP14_SHA1, |
KEX_DH_GRP14_SHA1, |
KEX_DH_GEX_SHA1, |
KEX_DH_GEX_SHA1, |
KEX_DH_GEX_SHA256, |
KEX_DH_GEX_SHA256, |
|
KEX_ECDH_SHA2, |
KEX_MAX |
KEX_MAX |
}; |
}; |
|
|
|
|
void kexdh_server(Kex *); |
void kexdh_server(Kex *); |
void kexgex_client(Kex *); |
void kexgex_client(Kex *); |
void kexgex_server(Kex *); |
void kexgex_server(Kex *); |
|
void kexecdh_client(Kex *); |
|
void kexecdh_server(Kex *); |
|
|
void |
void |
kex_dh_hash(char *, char *, char *, int, char *, int, u_char *, int, |
kex_dh_hash(char *, char *, char *, int, char *, int, u_char *, int, |
|
|
kexgex_hash(const EVP_MD *, char *, char *, char *, int, char *, |
kexgex_hash(const EVP_MD *, char *, char *, char *, int, char *, |
int, u_char *, int, int, int, int, BIGNUM *, BIGNUM *, BIGNUM *, |
int, u_char *, int, int, int, int, BIGNUM *, BIGNUM *, BIGNUM *, |
BIGNUM *, BIGNUM *, u_char **, u_int *); |
BIGNUM *, BIGNUM *, u_char **, u_int *); |
|
void |
|
kex_ecdh_hash(const EVP_MD *, const EC_GROUP *, char *, char *, char *, int, |
|
char *, int, u_char *, int, const EC_POINT *, const EC_POINT *, |
|
const BIGNUM *, u_char **, u_int *); |
|
|
|
int kex_ecdh_name_to_nid(const char *); |
|
|
void |
void |
derive_ssh1_session_id(BIGNUM *, BIGNUM *, u_int8_t[8], u_int8_t[16]); |
derive_ssh1_session_id(BIGNUM *, BIGNUM *, u_int8_t[8], u_int8_t[16]); |
|
|
#if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) |
#if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) || defined(DEBUG_KEXECDH) |
void dump_digest(char *, u_char *, int); |
void dump_digest(char *, u_char *, int); |
#endif |
#endif |
|
|