From 7356d6ec50ea24bc9449187e1c2b3ecd717b789f Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Sun, 21 Jan 2018 16:42:29 +0100 Subject: gpg: Support EAX if for latest Libgcrypt. * g10/cipher-aead.c (MY_GCRY_CIPHER_MODE_EAX): New. (write_header): Use it. * g10/decrypt-data.c (MY_GCRY_CIPHER_MODE_EAX): New. (decrypt_data): Use it. * g10/misc.c (openpgp_aead_test_algo): Allow EAX. -- This allows the use of EAX when the latest Libgcrypt master is used. Signed-off-by: Werner Koch --- g10/decrypt-data.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'g10/decrypt-data.c') diff --git a/g10/decrypt-data.c b/g10/decrypt-data.c index 80e16ecb7..79e255480 100644 --- a/g10/decrypt-data.c +++ b/g10/decrypt-data.c @@ -31,6 +31,10 @@ #include "../common/status.h" #include "../common/compliance.h" +/* FIXME: Libgcrypt 1.9 will support EAX. Until we kame this a + * requirement we hardwire the enum used for EAX. */ +#define MY_GCRY_CIPHER_MODE_EAX 14 + static int aead_decode_filter (void *opaque, int control, iobuf_t a, byte *buf, size_t *ret_len); @@ -278,9 +282,8 @@ decrypt_data (ctrl_t ctrl, void *procctx, PKT_encrypted *ed, DEK *dek) break; case AEAD_ALGO_EAX: startivlen = 16; - log_error ("unsupported AEAD algo %d\n", ed->aead_algo); - rc = gpg_error (GPG_ERR_NOT_IMPLEMENTED); - goto leave; + ciphermode = MY_GCRY_CIPHER_MODE_EAX; + break; default: log_error ("unknown AEAD algo %d\n", ed->aead_algo); rc = gpg_error (GPG_ERR_INV_CIPHER_MODE); -- cgit v1.2.3