Example #1
0
        public void FailWithNotEqualsIvs()
        {
            var encoded = Xor.Encode("12345678901234567890123456789012", "12345678", "message", SBlockTypes.GOST);
            var decoded = Xor.Decode("12345678901234567890123456789012", "00000000", "message", SBlockTypes.GOST);

            Assert.IsNotNull(encoded);
            Assert.IsNotNull(decoded);
            Assert.IsNotEmpty(encoded);
            Assert.IsNotEmpty(decoded);
            Assert.AreNotEqual(decoded, encoded);
        }
Example #2
0
        public void FailWithEmptyData()
        {
            byte[] key     = Encoding.UTF8.GetBytes("12345678901234567890123456789012");
            byte[] iv      = Encoding.Default.GetBytes("12345678");
            byte[] message = Encoding.UTF8.GetBytes("message");

            Assert.Throws <ArgumentException>(() => Xor.Encode(new byte[] { }, iv, message, SBlockTypes.GOST));
            Assert.Throws <ArgumentException>(() => Xor.Encode(key, new byte[] { }, new byte[] { }, SBlockTypes.GOST));
            Assert.Throws <ArgumentException>(() => Xor.Encode(key, new byte[] { }, message, SBlockTypes.GOST));
            Assert.Throws <ArgumentException>(() => Xor.Encode(new byte[] { }, new byte[] { }, new byte[] { }, SBlockTypes.GOST));
        }
Example #3
0
        public void FailWithNullData()
        {
            byte[] key     = Encoding.UTF8.GetBytes("12345678901234567890123456789012");
            byte[] iv      = Encoding.Default.GetBytes("12345678");
            byte[] message = Encoding.UTF8.GetBytes("message");

            Assert.Throws <ArgumentNullException>(() => Xor.Encode(null, iv, message, SBlockTypes.GOST));
            Assert.Throws <ArgumentNullException>(() => Xor.Encode(key, null, null, SBlockTypes.GOST));
            Assert.Throws <ArgumentNullException>(() => Xor.Encode(key, null, message, SBlockTypes.GOST));
            Assert.Throws <ArgumentNullException>(() => Xor.Encode((byte[])null, null, null, SBlockTypes.GOST));
        }
Example #4
0
        public void PassWithStrings()
        {
            var encoded = Xor.Encode("12345678901234567890123456789012", "12345678", "message", SBlockTypes.GOST);
            var decoded = Xor.Decode("12345678901234567890123456789012", "12345678", "message", SBlockTypes.GOST);

            Assert.IsNotNull(encoded);
            Assert.IsNotNull(decoded);
            Assert.IsNotEmpty(encoded);
            Assert.IsNotEmpty(decoded);
            Assert.AreEqual(decoded, encoded);
        }
Example #5
0
        public void PassWithBytes()
        {
            byte[] key     = Encoding.UTF8.GetBytes("12345678901234567890123456789012");
            byte[] iv      = Encoding.Default.GetBytes("12345678");
            byte[] message = Encoding.Default.GetBytes("message");

            var encoded = Xor.Encode(key, iv, message, SBlockTypes.GOST);
            var decoded = Xor.Decode(key, iv, message, SBlockTypes.GOST);

            Assert.IsNotNull(encoded);
            Assert.IsNotNull(decoded);
            Assert.IsNotEmpty(encoded);
            Assert.IsNotEmpty(decoded);
            Assert.AreEqual(decoded, encoded);
        }
Example #6
0
 private void EncryptGost(Stream s, byte[] obj)
 {
     using (var key = new Rfc2898DeriveBytes(Key, Salt))
     {
         using (var aesAlg = new RijndaelManaged())
         {
             var gostKey = key.GetBytes(aesAlg.KeySize / 8);
             var gostIV  = aesAlg.IV.Take(8).ToArray();
             s.Write(BitConverter.GetBytes(gostIV.Length), 0, sizeof(int));
             s.Write(gostIV, 0, gostIV.Length);
             var encryptedObject = Xor.Encode(gostKey, gostIV, obj, SBlockTypes.GOST);
             s.Write(encryptedObject, 0, encryptedObject.Length);
         }
     }
 }
Example #7
0
 public void FailWithShortIv()
 {
     Assert.Throws <ArgumentException>(() => Xor.Encode("12345678901234567890123456789", "1245678", "message", SBlockTypes.GOST));
 }