diff options
author | Niels Möller <nisse@lysator.liu.se> | 2011-02-16 10:33:59 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2011-02-16 10:33:59 +0100 |
commit | 53f5da924ce224947203e21cafaa2d5fd65ca4c4 (patch) | |
tree | 737e7f208bed26d3ed60b069caca81cc8bb13aa0 /gcm.h | |
parent | ac09e0fe71b1b052fd74336784fada36f727100e (diff) | |
download | nettle-53f5da924ce224947203e21cafaa2d5fd65ca4c4.tar.gz |
* gcm-aes.c (gcm_aes_set_iv): Use GCM_SET_IV.
(gcm_aes_set_key): Deleted cast.
(gcm_aes_encrypt): Likewise.
(gcm_aes_decrypt): Likewise.
(gcm_aes_digest): Likewise.
(gcm_aes_update): One less argument to GCM_UPDATE.
* gcm.h (GCM_SET_KEY): Added cast to nettle_crypt_func *. Help
compiler type checking despite this cast.
(GCM_ENCRYPT): Likewise.
(GCM_DECRYPT): Likewise.
(GCM_DIGEST): Likewise.
(GCM_SET_IV): New macro, for completeness.
(GCM_UPDATE): Deleted unused argument encrypt.
Rev: nettle/ChangeLog:1.156
Rev: nettle/gcm-aes.c:1.4
Rev: nettle/gcm.h:1.12
Diffstat (limited to 'gcm.h')
-rw-r--r-- | gcm.h | 38 |
1 files changed, 25 insertions, 13 deletions
@@ -121,26 +121,38 @@ gcm_digest(struct gcm_ctx *ctx, const struct gcm_key *key, #define GCM_CTX(type) \ { type cipher; struct gcm_key key; struct gcm_ctx gcm; } +/* NOTE: Avoid using NULL, as we don't include anything defining it. */ #define GCM_SET_KEY(ctx, set_key, encrypt, length, data) \ do { \ (set_key)(&(ctx)->cipher, (length), (data)); \ - gcm_set_key(&(ctx)->key, &(ctx)->cipher, (encrypt)); \ + if (0) (encrypt)(&(ctx)->cipher, 0, (void *)0, (void *)0); \ + gcm_set_key(&(ctx)->key, &(ctx)->cipher, \ + (nettle_crypt_func *) (encrypt)); \ } while (0) -#define GCM_UPDATE(ctx, encrypt, length, data) \ - gcm_update(&(ctx)->gcm, &(ctx)->key, (length), (data)) - -#define GCM_ENCRYPT(ctx, encrypt, length, dst, src) \ - gcm_encrypt(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, (encrypt), \ - (length), (dst), (src)) +#define GCM_SET_IV(ctx, length, data) \ + gcm_set_iv(&(ctx)->gcm, &(ctx)->key, (length), (data)) -#define GCM_DECRYPT(ctx, encrypt, length, dst, src) \ - gcm_decrypt(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, (encrypt), \ - (length), (dst), (src)) +#define GCM_UPDATE(ctx, length, data) \ + gcm_update(&(ctx)->gcm, &(ctx)->key, (length), (data)) -#define GCM_DIGEST(ctx, encrypt, length, digest) \ - gcm_digest(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, (encrypt), \ - (length), (digest)) +#define GCM_ENCRYPT(ctx, encrypt, length, dst, src) \ + (0 ? (encrypt)(&(ctx)->cipher, 0, (void *)0, (void *)0) \ + : gcm_encrypt(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, \ + (nettle_crypt_func *) (encrypt), \ + (length), (dst), (src))) + +#define GCM_DECRYPT(ctx, encrypt, length, dst, src) \ + (0 ? (encrypt)(&(ctx)->cipher, 0, (void *)0, (void *)0) \ + : gcm_decrypt(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, \ + (nettle_crypt_func *) (encrypt), \ + (length), (dst), (src))) + +#define GCM_DIGEST(ctx, encrypt, length, digest) \ + (0 ? (encrypt)(&(ctx)->cipher, 0, (void *)0, (void *)0) \ + : gcm_digest(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, \ + (nettle_crypt_func *) (encrypt), \ + (length), (digest))) struct gcm_aes_ctx GCM_CTX(struct aes_ctx); |