diff options
Diffstat (limited to 'src/protocol/internal/fqterm_ssh_packet.h')
-rw-r--r-- | src/protocol/internal/fqterm_ssh_packet.h | 17 |
1 files changed, 13 insertions, 4 deletions
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 { |