diff --git a/ChangeLog b/ChangeLog index 02141f5bc5da099d7dbece2631a26c4a4e99fef7..e8adc45ad79fe984488e5f25f5d4b77738d33a2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,16 @@ 2017-04-09 Niels Möller <nisse@lysator.liu.se> - * nettle-meta.h (nettle_ciphers): New macro, analogous to below - change to nettle_hashes. + * nettle-meta.h (nettle_ciphers, nettle_aeads): New macros, + analogous to below change to nettle_hashes. * nettle-meta-ciphers.c (_nettle_ciphers): Renamed array, from... (nettle_ciphers: ... old name. (nettle_get_ciphers): New function. + * nettle-meta-aeads.c (_nettle_aeads): Renamed array, from... + (nettle_aeads: ... old name. + (nettle_get_aeads): New function. + 2017-01-12 Niels Möller <nisse@lysator.liu.se> * tools/nettle-hash.c (find_algorithm): Deleted function. diff --git a/nettle-meta-aeads.c b/nettle-meta-aeads.c index 8c0526464d870da29534fcb13899150e0193cc7e..c99cc46518dd38cee6450a8435ff505d26a27a81 100644 --- a/nettle-meta-aeads.c +++ b/nettle-meta-aeads.c @@ -37,7 +37,7 @@ #include "nettle-meta.h" -const struct nettle_aead * const nettle_aeads[] = { +const struct nettle_aead * const _nettle_aeads[] = { &nettle_gcm_aes128, &nettle_gcm_aes192, &nettle_gcm_aes256, @@ -47,3 +47,9 @@ const struct nettle_aead * const nettle_aeads[] = { &nettle_chacha_poly1305, NULL }; + +const struct nettle_aead * const * +nettle_get_aeads (void) +{ + return _nettle_aeads; +} diff --git a/nettle-meta.h b/nettle-meta.h index b645fb1b669b38ee027fa475c058b5854d2937d0..c0320b45af7b5ed9aaaed6e616c8d3b7eaa66779 100644 --- a/nettle-meta.h +++ b/nettle-meta.h @@ -176,7 +176,15 @@ struct nettle_aead /* null-terminated list of aead constructions implemented by this version of nettle */ -extern const struct nettle_aead * const nettle_aeads[]; +extern const struct nettle_aead * const _nettle_aeads[]; + +const struct nettle_aead * const * +#ifdef __GNUC__ +__attribute__((pure)) +#endif +nettle_get_aeads (void); + +#define nettle_aeads (nettle_get_aeads()) extern const struct nettle_aead nettle_gcm_aes128; extern const struct nettle_aead nettle_gcm_aes192;