version 1.35, 2004/06/13 12:53:24 |
version 1.35.4.2, 2006/02/03 02:53:44 |
|
|
#include "cipher.h" |
#include "cipher.h" |
#include "key.h" |
#include "key.h" |
|
|
#define KEX_DH1 "diffie-hellman-group1-sha1" |
#define KEX_DH1 "diffie-hellman-group1-sha1" |
#define KEX_DH14 "diffie-hellman-group14-sha1" |
#define KEX_DH14 "diffie-hellman-group14-sha1" |
#define KEX_DHGEX "diffie-hellman-group-exchange-sha1" |
#define KEX_DHGEX_SHA1 "diffie-hellman-group-exchange-sha1" |
|
|
|
#define COMP_NONE 0 |
|
#define COMP_ZLIB 1 |
|
#define COMP_DELAYED 2 |
|
|
enum kex_init_proposals { |
enum kex_init_proposals { |
PROPOSAL_KEX_ALGS, |
PROPOSAL_KEX_ALGS, |
PROPOSAL_SERVER_HOST_KEY_ALGS, |
PROPOSAL_SERVER_HOST_KEY_ALGS, |
|
|
char *name; |
char *name; |
int enabled; |
int enabled; |
const EVP_MD *md; |
const EVP_MD *md; |
int mac_len; |
u_int mac_len; |
u_char *key; |
u_char *key; |
int key_len; |
u_int key_len; |
}; |
}; |
struct Comp { |
struct Comp { |
int type; |
int type; |
|
|
u_char *session_id; |
u_char *session_id; |
u_int session_id_len; |
u_int session_id_len; |
Newkeys *newkeys[MODE_MAX]; |
Newkeys *newkeys[MODE_MAX]; |
int we_need; |
u_int we_need; |
int server; |
int server; |
char *name; |
char *name; |
int hostkey_type; |
int hostkey_type; |
|
|
Buffer peer; |
Buffer peer; |
int done; |
int done; |
int flags; |
int flags; |
|
const EVP_MD *evp_md; |
char *client_version_string; |
char *client_version_string; |
char *server_version_string; |
char *server_version_string; |
int (*verify_host_key)(Key *); |
int (*verify_host_key)(Key *); |
|
|
|
|
void kex_send_kexinit(Kex *); |
void kex_send_kexinit(Kex *); |
void kex_input_kexinit(int, u_int32_t, void *); |
void kex_input_kexinit(int, u_int32_t, void *); |
void kex_derive_keys(Kex *, u_char *, BIGNUM *); |
void kex_derive_keys(Kex *, u_char *, u_int, BIGNUM *); |
|
|
Newkeys *kex_get_newkeys(int); |
Newkeys *kex_get_newkeys(int); |
|
|
|
|
void kexgex_client(Kex *); |
void kexgex_client(Kex *); |
void kexgex_server(Kex *); |
void kexgex_server(Kex *); |
|
|
u_char * |
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, |
BIGNUM *, BIGNUM *, BIGNUM *); |
BIGNUM *, BIGNUM *, BIGNUM *, u_char **, u_int *); |
u_char * |
void |
kexgex_hash(char *, char *, char *, int, char *, int, u_char *, int, |
kexgex_hash(const EVP_MD *, char *, char *, char *, int, char *, |
int, int, int, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *); |
int, u_char *, int, int, int, int, BIGNUM *, BIGNUM *, BIGNUM *, |
|
BIGNUM *, BIGNUM *, u_char **, u_int *); |
|
|
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]); |