version 1.4, 2000/09/07 20:27:51 |
version 1.5, 2000/10/11 04:02:17 |
|
|
#ifndef KEX_H |
#ifndef KEX_H |
#define KEX_H |
#define KEX_H |
|
|
#define KEX_DH1 "diffie-hellman-group1-sha1" |
#define KEX_DH1 "diffie-hellman-group1-sha1" |
#define KEX_DSS "ssh-dss" |
#define KEX_DHGEX "diffie-hellman-group-exchange-sha1" |
|
#define KEX_DSS "ssh-dss" |
|
|
enum kex_init_proposals { |
enum kex_init_proposals { |
PROPOSAL_KEX_ALGS, |
PROPOSAL_KEX_ALGS, |
|
|
MODE_MAX |
MODE_MAX |
}; |
}; |
|
|
|
enum kex_exchange { |
|
DH_GRP1_SHA1, |
|
DH_GEX_SHA1 |
|
}; |
|
|
typedef struct Kex Kex; |
typedef struct Kex Kex; |
typedef struct Mac Mac; |
typedef struct Mac Mac; |
typedef struct Comp Comp; |
typedef struct Comp Comp; |
|
|
int server; |
int server; |
char *name; |
char *name; |
char *hostkeyalg; |
char *hostkeyalg; |
|
int kex_type; |
}; |
}; |
|
|
Buffer *kex_init(char *myproposal[PROPOSAL_MAX]); |
Buffer *kex_init(char *myproposal[PROPOSAL_MAX]); |
|
|
int kex_derive_keys(Kex *k, unsigned char *hash, BIGNUM *shared_secret); |
int kex_derive_keys(Kex *k, unsigned char *hash, BIGNUM *shared_secret); |
void packet_set_kex(Kex *k); |
void packet_set_kex(Kex *k); |
int dh_pub_is_valid(DH *dh, BIGNUM *dh_pub); |
int dh_pub_is_valid(DH *dh, BIGNUM *dh_pub); |
|
DH *dh_new_group_asc(const char *, const char *); |
|
DH *dh_new_group(BIGNUM *, BIGNUM *); |
DH *dh_new_group1(); |
DH *dh_new_group1(); |
|
|
unsigned char * |
unsigned char * |
|
|
BIGNUM *server_dh_pub, |
BIGNUM *server_dh_pub, |
BIGNUM *shared_secret); |
BIGNUM *shared_secret); |
|
|
|
unsigned char * |
|
kex_hash_gex( |
|
char *client_version_string, |
|
char *server_version_string, |
|
char *ckexinit, int ckexinitlen, |
|
char *skexinit, int skexinitlen, |
|
char *serverhostkeyblob, int sbloblen, |
|
int minbits, BIGNUM *prime, BIGNUM *gen, |
|
BIGNUM *client_dh_pub, |
|
BIGNUM *server_dh_pub, |
|
BIGNUM *shared_secret); |
#endif |
#endif |