On Friday, 20 January 2017 at 11:58:39 UTC, Rene Zwanenburg wrote:
On Friday, 20 January 2017 at 08:19:57 UTC, Chris M. wrote:
[...]

My guess:

The encrypted output will be a bit longer than your input. You're not getting an out of bounds exception during encryption since OpenSSL only has the pointer to write to, not a buffer length it can check. The memory behind your buffer is apparently committed, and will be written to by OpenSSL. This is why using the same buffer to decrypt works: it continues to read after the end of the buffer. (In case it's not clear, writing and reading past the end of the buffer is really bad)

I expect OpenSSL to have a helper function to calculate the required buffer size for a given input length. Use that to allocate the buffer.

Turns out that was the issue, I needed to reserve more space for the encrypted string with this
cipherLen = (clearLen/16 + 1) * 16;
The fun of working with C libraries

Anyway, thanks for the help
  • Strange Bug Chris M. via Digitalmars-d-learn
    • Re: Strange Bug Timothee Cour via Digitalmars-d-learn
    • Re: Strange Bug Rene Zwanenburg via Digitalmars-d-learn
      • Re: Strange Bug Chris M. via Digitalmars-d-learn

Reply via email to