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()); }
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()); }