1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

gpg: New option --force-aead

* g10/dek.h (DEK): Turn fields use_mdc, algo_printed and symmetric
into single bit vars.  Make sure they are always set to 1 or 0.
(DEK): New field use_aead.
* g10/options.h (struct opt): New field force_aead.
* g10/pkclist.c (select_aead_from_pklist): New.
* g10/gpg.c (oForceAEAD): New const.
(opts): New options "--force-aead".
(main): Set new option.
* g10/encrypt.c (use_aead): New.
(encrypt_simple): Implement new flags DEK.use_aead.
(encrypt_crypt): Ditto.
(encrypt_filter): Ditto.
* g10/sign.c (sign_symencrypt_file): Ditto.
--

This patch should be enough to detect whether AEAD can be used.
Not tested.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2018-01-10 17:07:11 +01:00
parent 8217cd4936
commit 4e2ba546cd
No known key found for this signature in database
GPG key ID: E3FDFF218E45B72B
8 changed files with 120 additions and 20 deletions

View file

@ -1,5 +1,5 @@
/* dek.h - The data encryption key structure.
* Copyright (C) 2014 Werner Koch
* Copyright (C) 2014, 2017 Werner Koch
*
* This file is part of GnuPG.
*
@ -26,14 +26,25 @@ typedef struct
int algo;
/* The length of the key (in bytes). */
int keylen;
/* Whether we've already printed information about this key. This
is currently only used in decrypt_data() and only if we are in
verbose mode. */
int algo_info_printed;
int use_mdc;
* is currently only used in decrypt_data() and only if we are in
* verbose mode. */
int algo_info_printed : 1;
/* AEAD shall be used. */
int use_aead : 1;
/* MDC shall be used. */
int use_mdc : 1;
/* This key was read from a SK-ESK packet (see proc_symkey_enc). */
int symmetric;
byte key[32]; /* This is the largest used keylen (256 bit). */
int symmetric : 1;
/* This is the largest used keylen (256 bit). */
byte key[32];
/* The cacheid for the S2K. */
char s2k_cacheid[1+16+1];
} DEK;