diff options
Diffstat (limited to 'src/protocol/internal')
-rw-r--r-- | src/protocol/internal/fqterm_ssh1_packet.cpp | 14 | ||||
-rw-r--r-- | src/protocol/internal/fqterm_ssh1_packet.h | 7 | ||||
-rw-r--r-- | src/protocol/internal/fqterm_ssh2_packet.cpp | 9 | ||||
-rw-r--r-- | src/protocol/internal/fqterm_ssh2_packet.h | 6 | ||||
-rw-r--r-- | src/protocol/internal/fqterm_ssh_packet.cpp | 8 | ||||
-rw-r--r-- | src/protocol/internal/fqterm_ssh_packet.h | 17 |
6 files changed, 19 insertions, 42 deletions
diff --git a/src/protocol/internal/fqterm_ssh1_packet.cpp b/src/protocol/internal/fqterm_ssh1_packet.cpp index 7605b51..7510194 100644 --- a/src/protocol/internal/fqterm_ssh1_packet.cpp +++ b/src/protocol/internal/fqterm_ssh1_packet.cpp @@ -27,20 +27,6 @@ namespace FQTerm { //============================================================================== -//FQTermSSH1PacketSender -//============================================================================== - - FQTermSSH1PacketSender::FQTermSSH1PacketSender() - { - cipher = new_3des_ssh1(1); - } - -void FQTermSSH1PacketSender::makePacket() -{ - make_ssh1_packet(&orig_data, &data_to_send, cipher); -} - -//============================================================================== //FQTermSSH1PacketReceiver //============================================================================== diff --git a/src/protocol/internal/fqterm_ssh1_packet.h b/src/protocol/internal/fqterm_ssh1_packet.h index 16af5c9..e8a0806 100644 --- a/src/protocol/internal/fqterm_ssh1_packet.h +++ b/src/protocol/internal/fqterm_ssh1_packet.h @@ -25,13 +25,6 @@ namespace FQTerm { -class FQTermSSH1PacketSender: public FQTermSSHPacketSender { -protected: - virtual void makePacket(); -public: - FQTermSSH1PacketSender(); -}; - class FQTermSSH1PacketReceiver: public FQTermSSHPacketReceiver { public: virtual void parseData(buffer *input); diff --git a/src/protocol/internal/fqterm_ssh2_packet.cpp b/src/protocol/internal/fqterm_ssh2_packet.cpp index 4a5cde4..0345883 100644 --- a/src/protocol/internal/fqterm_ssh2_packet.cpp +++ b/src/protocol/internal/fqterm_ssh2_packet.cpp @@ -27,15 +27,6 @@ namespace FQTerm { //============================================================================== -//FQTermSSH2PacketSender -//============================================================================== -void FQTermSSH2PacketSender::makePacket() -{ - make_ssh2_packet(&orig_data, &data_to_send, cipher, - mac, is_mac_, &sequence_no_); -} - -//============================================================================== //FQTermSSH2PacketReceiver //============================================================================== void FQTermSSH2PacketReceiver::parseData(buffer *input) { diff --git a/src/protocol/internal/fqterm_ssh2_packet.h b/src/protocol/internal/fqterm_ssh2_packet.h index ff65ec5..c670203 100644 --- a/src/protocol/internal/fqterm_ssh2_packet.h +++ b/src/protocol/internal/fqterm_ssh2_packet.h @@ -26,12 +26,6 @@ namespace FQTerm { -class FQTermSSH2PacketSender: public FQTermSSHPacketSender -{ -protected: - virtual void makePacket(); -}; - class FQTermSSH2PacketReceiver: public FQTermSSHPacketReceiver { private: diff --git a/src/protocol/internal/fqterm_ssh_packet.cpp b/src/protocol/internal/fqterm_ssh_packet.cpp index 1e53250..36bf7e8 100644 --- a/src/protocol/internal/fqterm_ssh_packet.cpp +++ b/src/protocol/internal/fqterm_ssh_packet.cpp @@ -31,13 +31,17 @@ namespace FQTerm { //FQTermSSHPacketSender //============================================================================== -FQTermSSHPacketSender::FQTermSSHPacketSender() +FQTermSSHPacketSender::FQTermSSHPacketSender(int ver) { buffer_init(&orig_data); buffer_init(&data_to_send); - cipher = &ssh_cipher_dummy; + if (ver == 2) + cipher = &ssh_cipher_dummy; + else + cipher = new_3des_ssh1(1); + this->ver = ver; is_mac_ = false; mac = NULL; diff --git a/src/protocol/internal/fqterm_ssh_packet.h b/src/protocol/internal/fqterm_ssh_packet.h index 071c8e0..3020d6b 100644 --- a/src/protocol/internal/fqterm_ssh_packet.h +++ b/src/protocol/internal/fqterm_ssh_packet.h @@ -29,6 +29,7 @@ #include "ssh_mac.h" #include "ssh_cipher.h" #include "buffer.h" +#include "ssh_packet.h" namespace FQTerm { @@ -42,7 +43,9 @@ class FQTermSSHPacketSender: public QObject { bool is_mac_; uint32_t sequence_no_; - FQTermSSHPacketSender(); + int ver; + + FQTermSSHPacketSender(int); virtual ~FQTermSSHPacketSender(); void startPacket(uint8_t pkt_type); @@ -61,14 +64,20 @@ class FQTermSSHPacketSender: public QObject { void startEncryption(const u_char *key, const u_char *IV = NULL); void startMac(const u_char *sessionkey); void resetMac(); + inline void makePacket() + { + if (ver == 2) { + make_ssh2_packet(&orig_data, &data_to_send, cipher, + mac, is_mac_, &sequence_no_); + } else { + make_ssh1_packet(&orig_data, &data_to_send, cipher); + } + } public slots: void resetEncryption(); signals: void dataToWrite(); - - protected: - virtual void makePacket() = 0; }; class FQTermSSHPacketReceiver: public QObject { |