title: AES encryption error: The input data is not a complete block?
body: <p>Here's the encryption method:</p>
  
  <pre><code>public static byte[] Encrypt(byte[] plaintext, byte[] key)
  {
      using (var aes = Aes.Create())
      {
          aes.BlockSize = 128;
          aes.Mode = CipherMode.ECB;
          aes.Padding = PaddingMode.None;
  
          var iv = new byte[16];
          for (int i = 0; i &lt; iv.Length; i++)
              iv[i] = 0;
          aes.IV = iv;
  
          var encryptor = aes.CreateEncryptor(key, aes.IV);
          using(var target = new MemoryStream())
          using (var cs = new CryptoStream(target, encryptor, CryptoStreamMode.Write))
          {
              using (var source = new StreamWriter(cs))
                  source.Write(plaintext);
              return target.ToArray();
          }
      }
  }
  </code></pre>
  
  <p>And how I'm calling it:</p>
  
  <pre><code>var key = new byte[16] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  var plaintext = new byte[16] { 128, 0, 112, 0, 96, 0, 80, 0, 64, 0, 48, 0, 32, 0, 16, 0 };
  </code></pre>
  
  <p>But it keeps throwing an exception at source.Write(plaintext) that says it's not a complete block? I'm using a 16 byte/ 128 bit array with the block size set to 128. I don't understand what's wrong?</p>
  
  <p>Also, just to head off any suggestions that ECB is bad etc, this is not for production, I'm just playing around.</p>