Example #1
0
        public string Decrypt(string encryptedMessage, string hexKey)
        {
            var encryptedToken = new EncryptedToken(encryptedMessage);
            var keyBits        = new BitArray(hexKey.GetBytesFromHex());

            BitArray[] dencryptedResult = encryptedToken.EncryptedBitBlocks
                                          .Select(bitsBlock => this.algorithm.Decrypt(bitsBlock, keyBits))
                                          .ToArray();

            var decryptedToken = new DecryptedToken(encryptedToken.OriginalBytesCount, dencryptedResult);

            return(decryptedToken.ToString());
        }
Example #2
0
        public void Encrypt_WhenDataAndKeyAreValid_ReturnsEncryptedData()
        {
            string originalMessage = "hello world";
            var    parsedToken     = new ParsedToken(originalMessage);

            var keyBits = new BitArray("13-34-57-79-9B-BC-DF-F1".GetBytesFromHex());

            var algorithm = this.resolver.Resolve <IDesAlgorithm>();

            BitArray[] encryptedResult = parsedToken.BitBlocks.Select(block => algorithm.Encrypt(block, keyBits)).ToArray();
            BitArray[] decryptedResult = encryptedResult.Select(block => algorithm.Decrypt(block, keyBits)).ToArray();

            var decryptedToken = new DecryptedToken(parsedToken.OriginalBytesCount, decryptedResult);

            Assert.AreEqual(originalMessage, decryptedToken.ToString());
        }