示例#1
0
        /// <summary>
        /// Decrypts the specified packet buffer.
        /// </summary>
        /// <param name="packetBuffer">The packet buffer the way it was received.</param>
        /// <returns>The decrypted packet data.</returns>
        public byte[] DecryptPacket(byte[] packetBuffer)
        {
            byte[] iv            = Sequence.ReadBlock(packetBuffer, 8, 8);
            byte[] encryptedData = Sequence.ReadBlock(packetBuffer, 16, packetBuffer.Length - 10 - 16);

            byte[] decryptedData = DesEncryption.DecryptData(encryptedData, iv, Key);
            int    paddingLength = (decryptedData.Last() + 2);

            return(Sequence.ReadBlock(decryptedData, 0, decryptedData.Length - paddingLength));
        }
示例#2
0
 /// <summary>
 /// Encrypts the given packet payload data.
 /// </summary>
 /// <param name="payload">The payload data to be encrypted.</param>
 /// <param name="iv">The initialization vector (IV).</param>
 /// <returns>The encrypted payload data.</returns>
 public byte[] EncryptPacket(byte[] payload, byte[] iv)
 {
     byte[] paddedData = PadData(payload);
     return(DesEncryption.EncryptData(paddedData, iv, Key));
 }