Nikos Mavrogiannopoulos nmav@redhat.com writes:
How widely used are these macros? Searching debian code: https://codesearch.debian.net/search?q=aes_set_encrypt_key&page=1&pe...
seems to show gnutls (in fips140 drbg code), stoken, qemu, rdup, filezilla, pike, cmake, uanytun, haskell-bindings-nettle, libarchive, anytun, and mosh.
If we want to keep it, and still make it possible to replace x86_64/aesni/aes-encrypt-internal.asm with three x86_64/aesni/aesKEYSIZE-encrypt.asm, we could do that by redefining aes_ctx as something like
struct aes_ctx { unsigned keysize; union { struct aes128_ctx aes128; struct aes192_ctx aes192; struct aes256_ctx aes256; } u; };
and write each aes_* function as a switch on the keysize. Since we already have the tests, that should be fairly cheap in terms of maintenance.
Deprecation was announced with nettle-3.0, 3.5 years ago:
The old interface, with struct aes_ctx and struct camellia_ctx, is kept for backwards compatibility, but might be removed in later versions. (NEWS file)
but I guess noone saw any urgent need to update old code to the new interfaces. (We never do, do we?).
Regards, /Niels