Esempio n. 1
0
 public void NotFailOnSmallBase64Key()
 {
     Assert.DoesNotThrow(() =>
     {
         TripleDesProvider tdes1 = new TripleDesProvider("dGVzdA==");
     });
 }
Esempio n. 2
0
 public void NotFailOnLargeKey()
 {
     Assert.DoesNotThrow(() =>
     {
         TripleDesProvider tdes1 = new TripleDesProvider(@"1q2w3e4r5t6y7u8i9o0p1q2w3e4r5t6y7u8i9o0pqawsedrftgyhujikolp84hnfiusfd872349jsakmnbsdiIUBGFD*^jO)j2kjnDHKJFO9@1ml!\kj872jhbkmnsdg9835489ajikhakjdaf-+=lkjnasfkjb98jkkj2349809sifhd");
     });
 }
Esempio n. 3
0
 public void NotFailOnSmallKey()
 {
     Assert.DoesNotThrow(() =>
     {
         TripleDesProvider tdes1 = new TripleDesProvider("a");
     });
 }
Esempio n. 4
0
        public void DecryptFromStoredCipherText()
        {
            TripleDesProvider tdes      = new TripleDesProvider("123456");
            string            toEncrypt = "thisIsMyPassword";
            string            decrypt   = tdes.Decrypt(@"kZzVRyF63d26JwCYGDu5YO+GfYus8vOy6//Cabdxnkv");

            Assert.That(decrypt, Is.EqualTo(toEncrypt));
        }
Esempio n. 5
0
        public void EncryptAndDecryptWithLargeKey(string toEncrypt)
        {
            string key = @"1q2w3e4r5t6y7u8i9o0p1q2w3e4r5t6y7u8i9o0pqawsedrftgyhujikolp84hnfiusfd872349jsakmnbsdiIUBGFD*^jO)j2kjnDHKJFO9@1ml!\kj872jhbkmnsdg9835489ajikhakjdaf-+=lkjnasfkjb98jkkj2349809sifhd";
            // create our TripleDesProvider objects with our new key
            TripleDesProvider tdes1 = new TripleDesProvider(key);
            TripleDesProvider tdes2 = new TripleDesProvider(key);

            // test encryption and decription across tdes objects
            string cipherText    = tdes1.Encrypt(toEncrypt);
            string decryptedText = tdes2.Decrypt(cipherText);

            Assert.That(decryptedText, Is.EqualTo(toEncrypt));
        }
Esempio n. 6
0
        public void EncryptAndDecryptWithSmallKey(string toEncrypt)
        {
            string key = @"a";
            // create our TripleDesProvider objects with our new key
            TripleDesProvider tdes1 = new TripleDesProvider(key);
            TripleDesProvider tdes2 = new TripleDesProvider(key);

            // test encryption and decription across tdes objects
            string cipherText    = tdes1.Encrypt(toEncrypt);
            string decryptedText = tdes2.Decrypt(cipherText);

            Assert.That(decryptedText, Is.EqualTo(toEncrypt));
        }
Esempio n. 7
0
        public void TDes_Encryption_Decryption_Success(string testPhrase, int keySize, CipherMode cipherMode)
        {
            // ARRANGE
            var tdesCrypto = new TripleDesProvider();

            var key = tdesCrypto.GenerateKey(keySize);
            var IV  = tdesCrypto.GenerateInitializationVector();

            // ACT
            var encrypted = tdesCrypto.Encrypt(testPhrase, key, IV, cipherMode);
            var decrypted = tdesCrypto.Decrypt(encrypted, key, IV, cipherMode);

            // ASSERT
            Assert.AreEqual(testPhrase, decrypted);
        }
Esempio n. 8
0
        public void EncryptAndDecrypt(string toEncrypt)
        {
            // generate a new random 192bit symetric key
            TripleDESCryptoServiceProvider csp = new TripleDESCryptoServiceProvider();

            csp.GenerateKey();
            string key = Convert.ToBase64String(csp.Key);

            // create our TripleDesProvider objects with our new key
            TripleDesProvider tdes1 = new TripleDesProvider(key);
            TripleDesProvider tdes2 = new TripleDesProvider(key);

            // test encryption and decription across tdes objects
            string cipherText    = tdes1.Encrypt(toEncrypt);
            string decryptedText = tdes2.Decrypt(cipherText);

            Assert.That(decryptedText, Is.EqualTo(toEncrypt));
        }
Esempio n. 9
0
        public void TDes_InvalidKey_Error(int keySize)
        {
            // ARRANGE
            var tdesCrypto = new TripleDesProvider();

            CryptographicException cryptographyError = null;

            try
            {
                var key = tdesCrypto.GenerateKey(keySize);
            }
            catch (CryptographicException e)
            {
                cryptographyError = e;
            }

            // ASSERT
            Assert.IsNotNull(cryptographyError);
        }
Esempio n. 10
0
        public void ComputedSeedTest(string toEncrypt)
        {
            string initialSeed = "w3ry78vnb930jsxP-5q0nG7Rp2Kl3B8";

            string[] seedParts = initialSeed.Split('-');
            SHA384CryptoServiceProvider sha = new SHA384CryptoServiceProvider();

            byte[] seedPart1 = sha.ComputeHash(Encoding.UTF8.GetBytes(seedParts[0]));
            byte[] seedPart2 = sha.ComputeHash(Encoding.UTF8.GetBytes(seedParts[1]));
            sha.Dispose();
            byte[] seedBytes = new byte[seedPart1.Length + seedPart2.Length];
            seedPart2.CopyTo(seedBytes, 0);
            seedPart1.CopyTo(seedBytes, seedPart2.Length);

            string seed1 = Convert.ToBase64String(seedBytes);

            string[] seedParts2 = initialSeed.Split('-');
            byte[]   seedPart3, seedPart4;
            using (SHA384CryptoServiceProvider sha2 = new SHA384CryptoServiceProvider())
            {
                seedPart3 = sha2.ComputeHash(Encoding.UTF8.GetBytes(seedParts[0]));
                seedPart4 = sha2.ComputeHash(Encoding.UTF8.GetBytes(seedParts[1]));
            }

            byte[] seedBytes2 = new byte[seedPart3.Length + seedPart4.Length];
            seedPart4.CopyTo(seedBytes2, 0);
            seedPart3.CopyTo(seedBytes2, seedPart4.Length);

            string seed2 = Convert.ToBase64String(seedBytes2);

            Assert.That(seed1, Is.EqualTo(seed2));

            // create our TripleDesProvider objects with our new key
            TripleDesProvider tdes1 = new TripleDesProvider(seed1);
            TripleDesProvider tdes2 = new TripleDesProvider(seed1);

            // test encryption and decription across tdes objects
            string cipherText    = tdes1.Encrypt(toEncrypt);
            string decryptedText = tdes2.Decrypt(cipherText);

            Assert.That(decryptedText, Is.EqualTo(toEncrypt));
        }
Esempio n. 11
0
        /// <summary>
        ///     Encryption services processor.
        /// </summary>
        /// <param name="cliInput">CLI options.</param>
        public static SymmetricCryptographyCliOutput ProcessOperation(ISymmetricCryptographyCliInput cliInput)
        {
            Log.Information($"Command for {cliInput.CipherType.CryptographyStandard.ToString()} de/encryption successfully parsed.");

            // warning when IV is entered by user and ECB cipher mode is used
            if (!string.IsNullOrEmpty(cliInput.InitializationVector) && cliInput.CipherType.CipherMode == CipherMode.ECB)
            {
                Log.Information("Initialization vector is not valid for ECB cipher mode and will be ignored.");
            }

            // Choosing cipher type
            CryptoProvider cryptoProvider;

            switch (cliInput.CipherType.CryptographyStandard)
            {
            case CryptographyStandard.Aes:
                cryptoProvider = new AesProvider();
                break;

            case CryptographyStandard.TripleDes:
                cryptoProvider = new TripleDesProvider();
                break;

            default:
                throw new CryptographicException($"Unknown cryptography standard {cliInput.CipherType.CryptographyStandard}.");
            }


            if (cliInput.Encryption)
            {
                return(EncryptionRequest(cliInput, cryptoProvider)); // TODO opravit... en/decryption should be enum
            }
            else
            {
                return(DecryptionRequest(cliInput, cryptoProvider));
            }
        }