public async Task AsyncTestStreamEncryptDecryptNonPowerOfTwo()
        {
            // Arrange
            Random rng = new Random(Seed: 1339);

            byte[] key            = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
            byte[] initialCounter = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05 };

            const int lengthOfData = 21111;

            byte[] randomContent = new byte[lengthOfData];

            byte[] encryptedContent1 = new byte[lengthOfData];
            byte[] decryptedContent1 = new byte[lengthOfData];

            AES_CTR forEncrypting1 = null;
            AES_CTR forDecrypting1 = null;

            // Act
            rng.NextBytes(randomContent);

            forEncrypting1 = new AES_CTR(key, initialCounter);
            forDecrypting1 = new AES_CTR(key, initialCounter);

            await forEncrypting1.EncryptStreamAsync(new MemoryStream(encryptedContent1), new MemoryStream(randomContent));

            await forDecrypting1.DecryptStreamAsync(new MemoryStream(decryptedContent1), new MemoryStream(encryptedContent1));

            // Assert
            CollectionAssert.AreEqual(randomContent, decryptedContent1);
            CollectionAssert.AreNotEqual(randomContent, encryptedContent1);
        }