mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: Implement AEAD for SKESK packets.
* g10/packet.h (PKT_symkey_enc): Add field aead_algo. * g10/build-packet.c (do_symkey_enc): Support version 5 packets. * g10/parse-packet.c (parse_symkeyenc): Ditto. * g10/encrypt.c (encrypt_symmetric): Force using a random session key in AEAD mode. (encrypt_seskey): Add and support arg aead_algo. (write_symkey_enc): Ditto. (encrypt_simple): Adjust accordingly. (encrypt_filter): Ditto. * g10/gpgcompose.c (sk_esk): For now call encrypt_seskey without AEAD support. * g10/mainproc.c (symkey_decrypt_seskey): Support AEAD. Nver call BUG but return an error. (proc_symkey_enc): Call symkey_decrypt_seskey in a bug compatible way. * g10/import.c (check_prefs): Check AEAD preferences. * g10/keyedit.c (show_prefs): Print AEAD preferences. -- For easier debugging this patch also changes some diagnostics to also print the encryption mode with the cipher algorithm. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
da3015e3c0
commit
9aab9167bc
11 changed files with 300 additions and 104 deletions
|
@ -3064,6 +3064,23 @@ show_prefs (PKT_user_id * uid, PKT_signature * selfsig, int verbose)
|
|||
tty_printf ("%s", openpgp_cipher_algo_name (CIPHER_ALGO_3DES));
|
||||
}
|
||||
tty_printf ("\n ");
|
||||
tty_printf (_("AEAD: "));
|
||||
for (i = any = 0; prefs[i].type; i++)
|
||||
{
|
||||
if (prefs[i].type == PREFTYPE_AEAD)
|
||||
{
|
||||
if (any)
|
||||
tty_printf (", ");
|
||||
any = 1;
|
||||
/* We don't want to display strings for experimental algos */
|
||||
if (!openpgp_aead_test_algo (prefs[i].value)
|
||||
&& prefs[i].value < 100)
|
||||
tty_printf ("%s", openpgp_aead_algo_name (prefs[i].value));
|
||||
else
|
||||
tty_printf ("[%d]", prefs[i].value);
|
||||
}
|
||||
}
|
||||
tty_printf ("\n ");
|
||||
tty_printf (_("Digest: "));
|
||||
for (i = any = 0; prefs[i].type; i++)
|
||||
{
|
||||
|
@ -3172,6 +3189,7 @@ show_prefs (PKT_user_id * uid, PKT_signature * selfsig, int verbose)
|
|||
for (i = 0; prefs[i].type; i++)
|
||||
{
|
||||
tty_printf (" %c%d", prefs[i].type == PREFTYPE_SYM ? 'S' :
|
||||
prefs[i].type == PREFTYPE_AEAD ? 'A' :
|
||||
prefs[i].type == PREFTYPE_HASH ? 'H' :
|
||||
prefs[i].type == PREFTYPE_ZIP ? 'Z' : '?',
|
||||
prefs[i].value);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue