summaryrefslogtreecommitdiff
path: root/src/protocol/internal
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/internal')
-rw-r--r--src/protocol/internal/fqterm_ssh1_packet.cpp14
-rw-r--r--src/protocol/internal/fqterm_ssh1_packet.h7
-rw-r--r--src/protocol/internal/fqterm_ssh2_packet.cpp9
-rw-r--r--src/protocol/internal/fqterm_ssh2_packet.h6
-rw-r--r--src/protocol/internal/fqterm_ssh_packet.cpp8
-rw-r--r--src/protocol/internal/fqterm_ssh_packet.h17
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 {