SshOutgoingPacket &SshOutgoingPacket::encrypt() { const QByteArray &mac = generateMac(m_encrypter, m_seqNr); m_encrypter.encrypt(m_data); m_data += mac; return *this; }
void SshIncomingPacket::decrypt() { Q_ASSERT(isComplete()); const quint32 netDataLength = length() + 4; m_decrypter.decrypt(m_data, cipherBlockSize(), netDataLength - cipherBlockSize()); const QByteArray &mac = m_data.mid(netDataLength, macLength()); if (mac != generateMac(m_decrypter, m_serverSeqNr)) { throw SSH_SERVER_EXCEPTION(SSH_DISCONNECT_MAC_ERROR, "Message authentication failed."); } }