diff options
author | Iru Cai <mytbk920423@gmail.com> | 2018-04-28 21:50:54 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2018-04-30 15:20:28 +0800 |
commit | ef70cc73c69d04e93c9af5fb49c5d762ba226801 (patch) | |
tree | 2f96375bb6047f1a6161c00f659e222711db3cd7 /src/protocol/fqterm_ssh_socket.cpp | |
parent | bec678f312d282cd467a4d13dbf29c37ea111ce7 (diff) | |
download | fqterm-ef70cc73c69d04e93c9af5fb49c5d762ba226801.tar.xz |
Add a connection info field in FQTermSocket
- the connection info record contains the name of the
cipher and MAC algorithms, and the key hash
- after doing a key exchange, the connection info will
be filled
Diffstat (limited to 'src/protocol/fqterm_ssh_socket.cpp')
-rw-r--r-- | src/protocol/fqterm_ssh_socket.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/protocol/fqterm_ssh_socket.cpp b/src/protocol/fqterm_ssh_socket.cpp index 20612bf..c48fc51 100644 --- a/src/protocol/fqterm_ssh_socket.cpp +++ b/src/protocol/fqterm_ssh_socket.cpp @@ -161,11 +161,22 @@ void FQTermSSHSocket::init(int ssh_version) { key_exchanger_->initKex(packet_receiver_, packet_sender_); } + + conn_info.proto = PROTO_SSH; + conn_info.ssh_proto_info.proto_version = ssh_version; } -void FQTermSSHSocket::kexOK() { - FQ_TRACE("sshsocket", 3) << "Key exchange completed!"; - authentication_->initAuth(packet_receiver_, packet_sender_); +void FQTermSSHSocket::kexOK() +{ + FQ_TRACE("sshsocket", 3) << "Key exchange completed!"; + conn_info.ssh_proto_info.c2s_cipher = packet_sender_->cipher->name; + conn_info.ssh_proto_info.s2c_cipher = packet_receiver_->cipher->name; + if (packet_sender_->mac) + conn_info.ssh_proto_info.c2s_mac = packet_sender_->mac->name; + if (packet_receiver_->mac) + conn_info.ssh_proto_info.s2c_mac = packet_receiver_->mac->name; + key_exchanger_->hostKeyHash(conn_info.ssh_proto_info.hash); + authentication_->initAuth(packet_receiver_, packet_sender_); } void FQTermSSHSocket::authOK() { |