Nikos Mavrogiannopoulos n.mavrogiannopoulos@gmail.com writes:
Is this the only reason to break binary compatibility?
The other obvious thing is to get memxor in the nettle_ symbol name space. And changing memxor argument types from uint8_t * to void * (strictly speaking, that's an API change, not an ABI change).
There are some other, less trivial, changes I'm considering.
* Making the ctx argument of nettle_cipher_func const, and restrict it to block ciphers only. (And then do some different abstraction(s) for for arcfour and salsa20).
* Doing something about the hash/hmac interface, to avoid having to allocate three different buffers for a single hmac context.
* Tweaks to other context structs. E.g., for AES we have the nrounds field last, after the subkeys. If one could move it first, then one could allocate less space for subkeys when using shorter AES key sizes (not entirely sure how to make a decent C API for that, though).
* See if we can arrange for 16-byte alignment for structures where it matters.
The ABI break for nettle-2.1 didn't cause any large problems, as far as I'm aware. But I guess nettle has more users now than it had three years ago.
Regards, /Niels