diff options
-rw-r--r-- | include/libssh/crypto.h | 4 | ||||
-rw-r--r-- | include/libssh/kex.h | 14 | ||||
-rw-r--r-- | include/libssh/priv.h | 15 | ||||
-rw-r--r-- | include/libssh/session.h | 1 | ||||
-rw-r--r-- | src/client.c | 1 | ||||
-rw-r--r-- | src/kex.c | 10 | ||||
-rw-r--r-- | src/server.c | 2 |
7 files changed, 23 insertions, 24 deletions
diff --git a/include/libssh/crypto.h b/include/libssh/crypto.h index dfdcac90..498835e2 100644 --- a/include/libssh/crypto.h +++ b/include/libssh/crypto.h @@ -80,8 +80,8 @@ struct ssh_crypto_struct { void *compress_out_ctx; /* don't touch it */ void *compress_in_ctx; /* really, don't */ /* kex sent by server, client, and mutually elected methods */ - KEX server_kex; - KEX client_kex; + struct ssh_kex_struct server_kex; + struct ssh_kex_struct client_kex; char *kex_methods[SSH_KEX_METHODS]; enum ssh_key_exchange_e kex_type; enum ssh_mac_e mac_type; /* Mac operations to use for key gen */ diff --git a/include/libssh/kex.h b/include/libssh/kex.h index dbf69ab9..693d8006 100644 --- a/include/libssh/kex.h +++ b/include/libssh/kex.h @@ -27,14 +27,24 @@ #define SSH_KEX_METHODS 10 -typedef struct ssh_kex_struct { +struct ssh_kex_struct { unsigned char cookie[16]; char *methods[SSH_KEX_METHODS]; -} KEX; +}; SSH_PACKET_CALLBACK(ssh_packet_kexinit); #ifdef WITH_SSH1 SSH_PACKET_CALLBACK(ssh_packet_publickey1); #endif +extern const char *ssh_kex_nums[]; +int ssh_send_kex(ssh_session session, int server_kex); +void ssh_list_kex(ssh_session session, struct ssh_kex_struct *kex); +int set_client_kex(ssh_session session); +int ssh_kex_select_methods(ssh_session session); +int verify_existing_algo(int algo, const char *name); +char **space_tokenize(const char *chain); +int ssh_get_kex1(ssh_session session); +char *ssh_find_matching(const char *in_d, const char *what_d); + #endif /* KEX_H_ */ diff --git a/include/libssh/priv.h b/include/libssh/priv.h index 9802e387..f399dc29 100644 --- a/include/libssh/priv.h +++ b/include/libssh/priv.h @@ -128,13 +128,12 @@ extern "C" { #include <sys/time.h> #endif +/* error handling structure */ struct error_struct { -/* error handling */ int error_code; char error_buffer[ERROR_BUFFERLEN]; }; -struct ssh_message_struct; struct ssh_common_struct; struct ssh_kex_struct; @@ -192,18 +191,6 @@ socket_t ssh_connect_host_nonblocking(ssh_session session, const char *host, void ssh_sock_set_nonblocking(socket_t sock); void ssh_sock_set_blocking(socket_t sock); -/* in kex.c */ -extern const char *ssh_kex_nums[]; -int ssh_send_kex(ssh_session session, int server_kex); -void ssh_list_kex(ssh_session session, struct ssh_kex_struct *kex); -int set_client_kex(ssh_session session); -int ssh_kex_select_methods(ssh_session session); -int verify_existing_algo(int algo, const char *name); -char **space_tokenize(const char *chain); -int ssh_get_kex1(ssh_session session); -char *ssh_find_matching(const char *in_d, const char *what_d); - - /* in base64.c */ ssh_buffer base64_to_bin(const char *source); unsigned char *bin_to_base64(const unsigned char *source, int len); diff --git a/include/libssh/session.h b/include/libssh/session.h index fd83ed0d..9d03f473 100644 --- a/include/libssh/session.h +++ b/include/libssh/session.h @@ -22,6 +22,7 @@ #ifndef SESSION_H_ #define SESSION_H_ #include "libssh/priv.h" +#include "libssh/kex.h" #include "libssh/packet.h" #include "libssh/pcap.h" #include "libssh/auth.h" diff --git a/src/client.c b/src/client.c index ef996ffa..d6923e43 100644 --- a/src/client.c +++ b/src/client.c @@ -41,6 +41,7 @@ #include "libssh/threads.h" #include "libssh/misc.h" #include "libssh/pki.h" +#include "libssh/kex.h" #define set_status(session, status) do {\ if (session->common.callbacks && session->common.callbacks->connect_status_function) \ @@ -327,7 +327,7 @@ error: return SSH_PACKET_USED; } -void ssh_list_kex(ssh_session session, KEX *kex) { +void ssh_list_kex(ssh_session session, struct ssh_kex_struct *kex) { int i = 0; #ifdef DEBUG_CRYPTO @@ -348,7 +348,7 @@ void ssh_list_kex(ssh_session session, KEX *kex) { * in function of the options and available methods. */ int set_client_kex(ssh_session session){ - KEX *client= &session->next_crypto->client_kex; + struct ssh_kex_struct *client= &session->next_crypto->client_kex; int i; const char *wanted; enter_function(); @@ -368,8 +368,8 @@ int set_client_kex(ssh_session session){ * server's kex messages, and watches out if a match is possible. */ int ssh_kex_select_methods (ssh_session session){ - KEX *server = &session->next_crypto->server_kex; - KEX *client = &session->next_crypto->client_kex; + struct ssh_kex_struct *server = &session->next_crypto->server_kex; + struct ssh_kex_struct *client = &session->next_crypto->client_kex; int rc = SSH_ERROR; int i; @@ -400,7 +400,7 @@ error: /* this function only sends the predefined set of kex methods */ int ssh_send_kex(ssh_session session, int server_kex) { - KEX *kex = (server_kex ? &session->next_crypto->server_kex : + struct ssh_kex_struct *kex = (server_kex ? &session->next_crypto->server_kex : &session->next_crypto->client_kex); ssh_string str = NULL; int i; diff --git a/src/server.c b/src/server.c index 8777e170..5acbd4ae 100644 --- a/src/server.c +++ b/src/server.c @@ -84,7 +84,7 @@ extern const char *supported_methods[]; */ static int server_set_kex(ssh_session session) { - KEX *server = &session->next_crypto->server_kex; + struct ssh_kex_struct *server = &session->next_crypto->server_kex; int i, j; const char *wanted; |