On Sat, Jun 1, 2019 at 10:42 AM Niels Möller nisse@lysator.liu.se wrote:
I think the siv code could benefit from a funtion to create a cmac digest in one step, without the update/digest split and the intermediate buffer. That would be something like
cmac128_message(const struct cmac128_key *key, const void *cipher, nettle_crypt_func *encrypt, size_t digest_length, uint8_t *digest, size_t message_length, const uint8_t *message);
Then the key need to be taken out from the cmac128_ctx. I'm trying that out, on the branch cmac-layout. Patch below. What do you think?
Do you see significant performance benefits? Being consistent in hashing/MAC APIs is also a benefit for the library and I think the change should be balanced against that.
regards, Nikos