Exemplo n.º 1
0
        public void TestPaddingBytes()
        {
            var bytes     = Encoding.UTF8.GetBytes(LoremIpsum);
            var length    = 0;
            var algorithm = new NetAesGcmEncryption(Peer);

            while (length++ < bytes.Length)
            {
                var outMessage = Peer.CreateMessage();
                outMessage.Write(bytes, 0, length);

                var outBits = outMessage.LengthBits;
                Assert.AreEqual(length << 3, outBits, $"Input data was {length}B ({length << 3}b), message is {outBits}b.");
                Assert.IsTrue(outMessage.Encrypt(algorithm), $"Failed to encrypt [length={length}]");

                var inMessage = outMessage.ToIncomingMessage();

                Assert.IsNotNull(inMessage.Data);
                Assert.IsNotEmpty(inMessage.Data);

                Assert.IsTrue(inMessage.Decrypt(algorithm), "Failed to decrypt");
                Assert.IsNotNull(inMessage.Data);
                Assert.IsNotEmpty(inMessage.Data);
                Assert.AreEqual(outBits, inMessage.LengthBits);

                var inData = inMessage.PeekDataBuffer();
                for (var index = 0; index < length; ++index)
                {
                    Assert.AreEqual(bytes[index], inData[index], $"Arrays differed at index {index} (out of {length}).\nExpected: {BitConverter.ToString(bytes)}\nReceived: {BitConverter.ToString(inData)}");
                }
            }
        }
Exemplo n.º 2
0
        public void TestPaddingText()
        {
            var length    = 0;
            var algorithm = new NetAesGcmEncryption(Peer);

            while (length++ < LoremIpsum.Length)
            {
                var substring  = LoremIpsum.Substring(0, length);
                var outMessage = Peer.CreateMessage();
                outMessage.Write(substring);

                var outBits = outMessage.LengthBits;

                var encryptSuccess = outMessage.Encrypt(algorithm);
                Assert.IsTrue(encryptSuccess, $"Failed to encrypt [length={length}]");

                var inMessage = outMessage.ToIncomingMessage();

                Assert.IsNotNull(inMessage.Data);
                Assert.IsNotEmpty(inMessage.Data);

                var decryptSuccess = inMessage.Decrypt(algorithm);
                Assert.IsTrue(decryptSuccess, "Failed to decrypt");
                Assert.IsNotNull(inMessage.Data);
                Assert.IsNotEmpty(inMessage.Data);
                Assert.AreEqual(outBits, inMessage.LengthBits);

                var inText = inMessage.ReadString();
                Assert.AreEqual(substring, inText, $"Expected '{substring}' received '{inText}'.");
            }
        }
Exemplo n.º 3
0
        public void TestText()
        {
            var algorithm  = new NetAesGcmEncryption(Peer);
            var outMessage = Peer.CreateMessage();

            outMessage.Write(LoremIpsumShort);

            var outBits = outMessage.LengthBits;

            var encryptSuccess = outMessage.Encrypt(algorithm);

            Assert.IsTrue(encryptSuccess, $"Failed to encrypt [length={LoremIpsumShort.Length}]");

            var inMessage = outMessage.ToIncomingMessage();

            Assert.IsNotNull(inMessage.Data);
            Assert.IsNotEmpty(inMessage.Data);

            var decryptSuccess = inMessage.Decrypt(algorithm);

            Assert.IsTrue(decryptSuccess, "Failed to decrypt");
            Assert.IsNotNull(inMessage.Data);
            Assert.IsNotEmpty(inMessage.Data);
            Assert.AreEqual(outBits, inMessage.LengthBits);

            var inText = inMessage.ReadString();

            Assert.AreEqual(LoremIpsumShort, inText, $"Expected '{LoremIpsumShort}' received '{inText}'.");
        }