title: EVP_EncryptUpdate, input size must be multiple of 16
body: <p>I'am working with OpenSSL and evp. My problem is, when I call <code>EVP_EncryptUpdate</code>, with an input size, that is not a multiple of 16, the function is deleting the rest characters.</p>
  
  <p>Here's my code:</p>
  
  <pre><code>string a = "hello";
  
  int ilen;
  
  unsigned char * outbuf = (unsigned char *) malloc(sizeof(unsigned char) * 1024 + EVP_MAX_BLOCK_LENGTH);
  unsigned char * inbuff = (unsigned char *) malloc(sizeof(unsigned char) * 1024);
  
  for (int i = 0; i &lt; a.size (); i++)
       inbuff[i] = a[i];
  
  EVP_EncryptUpdate(ctx, outbuf, &amp;ilen, inbuff, strlen (inbuff));
  </code></pre>
  
  <p>Here, <code>ilen</code> will be 0, but if i call it, with an input size of 16, it returns 16, too.</p>
  
  <p>What can I do to encrypt everything?</p>