blob: fa2b33e46eead1ae86b29137de7bd782f1ded9aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
// SPDX-License-Identifier: GPL-2.0-or-later
#include "fqterm_trace.h"
#include "fqterm_ssh1_packet.h"
#include "ssh_endian.h"
#include "crc32.h"
#include "ssh_packet.h"
namespace FQTerm {
//==============================================================================
//FQTermSSH1PacketReceiver
//==============================================================================
FQTermSSH1PacketReceiver::FQTermSSH1PacketReceiver()
{
cipher = new_3des_ssh1(0);
}
void FQTermSSH1PacketReceiver::parseData(buffer *input)
{
while (buffer_len(input) > 0) {
int res = parse_ssh1_packet(input, &recvbuf, cipher);
switch (res) {
case -ETOOBIG:
emit packetError("Packet too big!");
return;
case -ETOOSMALL:
return;
case -ECRC32:
emit packetError("CRC32 error!");
return;
default:
real_data_len_ = res;
}
packet_type_ = buffer_get_u8(&recvbuf);
emit packetAvaliable(packet_type_);
}
}
} // namespace FQTerm
|