1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-11-30 13:01:23 +03:00

dh-gex: Add server implementation

Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Aris Adamantiadis
2018-11-07 16:15:50 +01:00
committed by Andreas Schneider
parent 40faa98c5e
commit 53c88375fe
9 changed files with 195 additions and 31 deletions

View File

@@ -98,6 +98,7 @@ struct ssh_crypto_struct {
bignum e,f,x,k,y;
bignum g, p;
int dh_group_is_mutable; /* do free group parameters */
size_t dh_pmin; int dh_pn; int dh_pmax; /* preferred group parameters */
#ifdef HAVE_ECDH
#ifdef HAVE_OPENSSL_ECC
EC_KEY *ecdh_privkey;

View File

@@ -23,11 +23,6 @@
#ifndef SRC_DH_GEX_H_
#define SRC_DH_GEX_H_
/* Minimum, recommanded and maximum size of DH group */
#define DH_PMIN 2048
#define DH_PREQ 2048
#define DH_PMAX 8192
int ssh_client_dhgex_init(ssh_session session);
#ifdef WITH_SERVER

View File

@@ -47,5 +47,6 @@ void ssh_server_dh_init(ssh_session session);
int ssh_dh_init_common(ssh_session session);
void ssh_dh_cleanup(struct ssh_crypto_struct *crypto);
int ssh_dh_generate_secret(ssh_session session, bignum dest);
int ssh_server_dh_process_init(ssh_session session, ssh_buffer packet);
#endif /* DH_H_ */

View File

@@ -49,6 +49,7 @@ enum ssh_session_state_e {
enum ssh_dh_state_e {
DH_STATE_INIT=0,
DH_STATE_GROUP_SENT,
DH_STATE_REQUEST_SENT,
DH_STATE_INIT_SENT,
DH_STATE_NEWKEYS_SENT,