1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00
gnupg/common
Werner Koch a545e14e8a
gpg: Support OCB encryption.
* g10/build-packet.c (do_encrypted_aead): New.
(do_symkey_enc): Handle version 5.
(build_packet): Support the ENCRYPTED_AEAD packet.
* g10/cipher.c (MIN_PARTIAL_SIZE): Remove unused macro.
(AEAD_ENC_BUFFER_SIZE): New macro.
(my_iobuf_write): New.
(write_header): Rename to write_cfb_header.  Adjust caller.
(set_ocb_nonce_and_ad): New.
(write_ocb_header): New.
(write_ocb_auth_tag): New.
(write_ocb_final_chunk): New.
(do_ocb_flush): New.
(do_ocb_free): New.
(cipher_filter_ocb): New.
* g10/filter.h (cipher_filter_context_t): Add fields for AEAD.
* g10/encrypt.c (encrypt_symmetric): For the use of a session key in
OCB mode.
(encrypt_seskey): Revamp to support OCB.
(use_aead): New.
(encrypt_simple): Support OCB.
(write_symkey_enc): Ditto.
(encrypt_crypt): Ditto.
(encrypt_filter): Handle OCB.
* g10/options.h (opt): Add field force_ocb.
* g10/gpg.c (oForceOCB): New.
(opts): New option "--force-ocb".
(main): Set force_ocb option.
* g10/gpgcompose.c (encrypt_seskey): New.
* g10/keygen.c (aead_available): New global var.
(keygen_set_std_prefs): Set AEAD feature by default in GNUPG mode. Add
parings of aead feature flag.
(keygen_get_std_prefs): Set aead flag.
(add_feature_aead): New.
(keygen_upd_std_prefs): Set OCB as preference if AEAD is enabled.
* g10/pkclist.c (select_aead_from_pklist): New.
(warn_missing_aead_from_pklist): New.
(select_mdc_from_pklist): Remove this unused function.
--

This extends the long available OCB and EAX decryption feature.  Due
to the meanwhile expired patent on OCB there is no more reason for
using EAX.  Thus we forcefully use OCB if the AEAD feature flag is set
on a key.

In GNUPG mode new keys are now created with the AEAD feature flag set.
Option --rfc4880 is one way to disable this.

GnuPG-bug-id: 6263
2022-10-31 14:33:10 +01:00
..
agent-opt.c agent: New OPTION pretend-request-origin 2018-03-23 08:37:14 +01:00
all-tests.scm tests: Make it possible to run all tests using our infrastructure. 2017-05-11 18:12:37 +02:00
argparse.c common: Fix returning of option attributes for options with args. 2022-01-25 19:05:16 +01:00
argparse.h Backport of the new option parser from 2.3 2020-12-04 12:12:20 +01:00
asshelp.c assuan: Fix exponential decay for first second. 2018-08-28 16:47:38 +02:00
asshelp.h common: Use new function to print status strings. 2018-02-14 12:21:44 +01:00
asshelp2.c common: Use new function to print status strings. 2018-02-14 12:21:44 +01:00
audit.c sm: Consider certificates w/o CRL DP as valid. 2020-03-27 21:20:13 +01:00
audit.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
b64dec.c g10, sm, dirmngr, common: Add comment for fall through. 2017-05-10 11:13:12 +09:00
b64enc.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
call-gpg.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
call-gpg.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ccparray.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ccparray.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ChangeLog-2011 Fix typos 2015-10-28 10:20:17 +01:00
ChangeLog-2011.include Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
ChangeLog.jnlib common: Remove JNLIB from boiler plate (jnlib merge). 2015-04-24 16:42:28 +02:00
common-defs.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
compliance.c gpg,gpgsm: Add option --min-rsa-length. 2021-11-18 21:11:10 +01:00
compliance.h gpg,gpgsm: Add option --min-rsa-length. 2021-11-18 21:11:10 +01:00
convert.c dirmngr: New option --ignore-cert 2021-10-06 11:06:01 +02:00
dotlock.c common,unix: Backport dotlock changes from GnuPG 2.3. 2022-03-29 11:24:23 +09:00
dotlock.h common: New function dotlock_is_locked. 2021-03-02 19:11:53 +01:00
dynload.h w32: Avoid warning about not including winsock2.h after windows.h 2022-06-03 15:00:20 +02:00
exaudit.awk Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
exechelp-posix.c common: New flags for gnupg_spawn_process 2022-03-15 09:47:45 +01:00
exechelp-w32.c common: New flags for gnupg_spawn_process 2022-03-15 09:47:45 +01:00
exechelp-w32ce.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
exechelp.h common: New flags for gnupg_spawn_process 2022-03-15 09:47:45 +01:00
exectool.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
exectool.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
exstatus.awk Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
fwddecl.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gc-opt-flags.h gpgconf: Some more fixes for the backported stuff. 2022-01-26 16:43:46 +01:00
get-passphrase.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
get-passphrase.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gettime.c common,w32: Fix an encoding problem of the printed timezone. 2022-08-31 17:32:45 +02:00
gettime.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gnupg.ico w32: Add icons and version information. 2013-05-07 21:35:48 +02:00
gpgrlhelp.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
helpfile.c Replace most of the remaining stdio calls by estream calls. 2020-10-21 21:09:38 +02:00
homedir.c common: Fix creation of Windows socket directories. 2022-02-07 17:59:22 +01:00
host2net.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
i18n.c common: Respect gpgconf.ctl when looking up translations 2021-11-02 20:56:25 +01:00
i18n.h Fix typos found using codespell. 2015-11-17 12:50:22 +01:00
init.c common: Support MYPROC_SELF_EXE for Solaris 2021-11-02 20:57:10 +01:00
init.h Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
iobuf.c gpg: Fix assertion failure due to errors in encrypt_filter. 2022-08-31 13:35:41 +02:00
iobuf.h build: Always use EXTERN_UNLESS_MAIN_MODULE pattern. 2020-02-10 16:37:34 +01:00
isascii.c common: Change license of isascii.c to all-premissive, 2015-12-14 16:21:19 +01:00
ksba-io-support.c sm: Remove left over debug output. 2020-02-17 11:38:23 +01:00
ksba-io-support.h common: Rename remaining symbols in ksba-io-support. 2017-02-16 17:21:05 +01:00
localename.c common: Fix warning for portability. 2017-03-07 10:42:46 +09:00
logging.c common: Change argument order of log_printhex. 2020-05-12 18:51:47 +02:00
logging.h common: Change argument order of log_printhex. 2020-05-12 18:51:47 +02:00
Makefile.am common: Add an easy to use DER builder. 2022-06-20 15:54:29 +02:00
mapstrings.c common: New function map_static_strings 2022-03-18 13:47:10 +01:00
mbox-util.c common: New function to validate domain names. 2018-07-29 18:39:32 +02:00
mbox-util.h common: New function to validate domain names. 2018-07-29 18:39:32 +02:00
membuf.c common: Fix put_membuf. 2021-08-27 17:22:25 +09:00
membuf.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
miscellaneous.c gpgsm: New option --compatibility-flags. 2022-08-19 10:49:20 +02:00
mischelp.c w32: Allow Unicode filenames for iobuf_cancel. 2022-06-03 11:19:09 +02:00
mischelp.h common: Use platform memory zeroing function for wipememory 2018-12-05 08:23:57 +01:00
mkdir_p.c Replace all calls to stat by gnupg_stat. 2020-10-23 11:15:59 +02:00
mkdir_p.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
mkerrors Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
mkerrtok Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
mkstrtable.awk common: Fix AWK portability. 2019-04-16 13:27:44 +09:00
name-value.c common: Make nvc_lookup more robust. 2022-09-01 17:35:41 +02:00
name-value.h common: New function nve_set. 2022-08-15 12:14:44 +02:00
openpgp-fpr.c gpg: Partial fix for Unicode problem in output files. 2021-06-10 12:44:30 +02:00
openpgp-oid.c common: Extend the openpgp_curve_to_oid function. 2021-04-29 12:57:00 +02:00
openpgpdefs.h gpg: Support OCB encryption. 2022-10-31 14:33:10 +01:00
percent.c scd:p15: Fix decrypt followed by sign problem for D-Trust cards. 2020-04-15 15:31:56 +02:00
README common: Update README. 2016-03-02 14:27:30 +01:00
recsel.c wkd: Fix client issue with leading or trailing spaces in user-ids. 2021-08-20 09:58:35 +02:00
recsel.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
server-help.c common: New functions get_option_value and ascii_strupr. 2019-02-11 10:59:34 +01:00
server-help.h common: New functions get_option_value and ascii_strupr. 2019-02-11 10:59:34 +01:00
session-env.c common: Pass XDG_SESSION_TYPE and QT_QPA_PLATFORM envvars to pinentry 2021-08-16 12:01:00 +02:00
session-env.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
sexp-parse.h Clean up word replication. 2017-02-21 13:11:46 -05:00
sexputil.c sm: Support decryption of password based encryption (pwri) 2021-05-17 18:26:34 +02:00
shareddefs.h agent: New OPTION pretend-request-origin 2018-03-23 08:37:14 +01:00
signal.c common: Fix get_signal_name for GNU/Linux. 2021-08-27 08:50:12 +09:00
simple-pwquery.c agent: Fix possible uninitalized use of CTX in simple_pwquery. 2018-10-24 20:30:17 +02:00
simple-pwquery.h Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
ssh-utils.c Fix use of strncpy, which is actually good to use memcpy. 2018-09-06 11:46:20 +09:00
ssh-utils.h common: Support different digest algorithms for ssh fingerprints. 2017-05-24 17:01:48 +02:00
status.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
status.h gpg: Add canceled status message. 2020-11-09 11:53:33 +01:00
stringhelp.c common: New function map_static_strings 2022-03-18 13:47:10 +01:00
stringhelp.h common: New function map_static_strings 2022-03-18 13:47:10 +01:00
strlist.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
strlist.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
sysutils.c common: Silence warnings from AllowSetForegroundWindow. 2022-08-03 11:12:16 +02:00
sysutils.h w32: Move socketdir to LOCAL_APPDATA 2021-08-17 10:53:26 +02:00
t-b64.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-ccparray.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-convert.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-dotlock.c w32: Allow Unicode filenames for dotlock 2020-10-21 21:10:27 +02:00
t-exechelp.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-exectool.c Replace all calls to access by gnupg_access 2020-10-21 20:49:18 +02:00
t-gettime.c tests: Fix t-gettime for a time_t of 64 and a long of 32 bit. 2017-01-12 10:39:19 +01:00
t-helpfile.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-iobuf.c Replace use of variable-length-arrays. 2017-01-02 13:29:18 +01:00
t-mapstrings.c common: New function map_static_strings 2022-03-18 13:47:10 +01:00
t-mbox-util.c common: New function to validate domain names. 2018-07-29 18:39:32 +02:00
t-name-value.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-openpgp-oid.c common: New helper functions for OpenPGP curve OIDs. 2019-01-29 20:17:29 +01:00
t-percent.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-recsel.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-session-env.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
t-sexputil.c tests: Cope with broken Libgcrypt versions 2021-06-22 12:29:59 +02:00
t-ssh-utils.c common: Correctly render SHA256-based ssh fingerprints. 2017-05-24 17:07:13 +02:00
t-stringhelp.c common: New function substitute_envvars. 2021-11-02 20:54:03 +01:00
t-strlist.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-support.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-support.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-sysutils.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-timestuff.c Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
t-w32-cmdline.c common,w32: Implement globing of command line args. 2021-06-08 10:05:27 +02:00
t-w32-reg.c gpgconf: Improve registry dumping. 2022-08-02 12:25:23 +02:00
t-zb32.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
tlv-builder.c common: Add an easy to use DER builder. 2022-06-20 15:54:29 +02:00
tlv.c common: Protect against a theoretical integer overflow in tlv.c 2022-10-07 14:21:20 +02:00
tlv.h common: Add an easy to use DER builder. 2022-06-20 15:54:29 +02:00
ttyio.c w32: Add fallback in case the Windows console can't cope with Unicode. 2021-06-22 11:08:05 +02:00
ttyio.h common: Remove unused function tty_print_string. 2017-01-17 10:19:06 +01:00
types.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
userids.c gpg: Allow deletion of subkeys with --delete-[secret-]key. 2019-05-27 11:41:35 +02:00
userids.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
utf8conv.c common: Fix fallback handling to utf-8. 2020-11-27 17:46:29 +01:00
utf8conv.h Clarify text of LGPLv2+/GPLv2+ licensed files. 2017-02-24 13:48:28 +01:00
util.h gpgsm: New option --compatibility-flags. 2022-08-19 10:49:20 +02:00
utilproto.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
w32-cmdline.c common: Rename w32-misc.c to w32-cmdline.c 2021-06-08 10:08:03 +02:00
w32-reg.c gpgconf: Improve registry dumping. 2022-08-02 12:25:23 +02:00
w32help.h gpgconf: Improve registry dumping. 2022-08-02 12:25:23 +02:00
w32info-rc.h.in Update copyright notices. 2022-02-07 18:22:30 +01:00
xasprintf.c common,w32: Implement globing of command line args. 2021-06-08 10:05:27 +02:00
xreadline.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
yesno.c Clean up word replication. 2017-02-21 13:11:46 -05:00
zb32.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
zb32.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00

Common functionality used by all modules of GnuPG.