aboutsummaryrefslogtreecommitdiffstats
path: root/g10 (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* gpg: --compress-sigs and --compress-keys are not no-ops in 2.0Daniel Kahn Gillmor2014-10-021-2/+0
| | | | | | | | | | | | | | | * g10/gpg.c: Cleanup argument parsing. -- c76117f8b0165fe5cec5e7f234f55f5a4cd7f0ab mistakenly marked compress-sigs and compress-keys as no-ops on the 2.0.x branch. These options still have an effect on the 2.0.x branch, and the duplicate declaration also causes the gpg argument parser to fail when shortened versions of the option are present, like: gpg: option "--compress-k" is ambiguous
* gpg: Avoid duplicate declaration of {no-,}sk-comments noops.Daniel Kahn Gillmor2014-10-021-3/+0
| | | | | | | | | | | | | | | * g10/gpg.c: Cleanup argument parsing. -- With c76117f8b0165fe5cec5e7f234f55f5a4cd7f0ab, the GnuPG 2.0.x branch accidentally introduced a second (identical) argument parser for both --sk-comments, and for --no-sk-comments. This caused short versions (e.g. omitting the trailing "s", as gpgme does) of either command to fail with: gpg: option "--sk-comment" is ambiguous
* gpg: Default to SHA-256 for all signature types on RSA keys.Werner Koch2014-09-272-2/+2
| | | | | | | | | | * g10/main.h (DEFAULT_DIGEST_ALGO): Use SHA256 in --gnupg and SHA1 in strict RFC or PGP modes. * g10/sign.c (make_keysig_packet): Use DEFAULT_DIGEST_ALGO also for RSA key signatures. -- (Backported from commit d33246700578cddd1cb8ed8164cfbba50aba4ef3)
* gpg: Add shortcut for setting key capabilities.Werner Koch2014-09-261-1/+17
| | | | | * g10/keygen.c (ask_key_flags): Add shortcut '='. * doc/help.txt (gpg.keygen.flags): New.
* gpg: Warn about (but don't fail) on scdaemon options in gpg.conf.Daniel Kahn Gillmor2014-09-253-4/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g10/gpg.c: Add config options that should belong in scdaemon.conf * g10/main.h, g10/misc.c (obsolete_scdaemon_option): New. -- In gpg2, the following options are only relevant for scdaemon: reader-port ctapi-driver pcsc-driver disable-ccid but in gpg1, they are options for gpg itself. Some users of gpg1 might have these options in their ~/.gnupg/gpg.conf, which causes gpg2 to fail hard if it reads that config file. gpg2 should not fail hard, though giving a warning (and suggesting a move to scdaemon.conf) seems OK. This patch does *not* reintroduce any documentation for these options in gpg.texi, even to indicate that they are "dummy" options, since scdaemon.texi contains the appropriate documentation. Debian-bug-id: 762844 Program names factored out from obsolete_scdaemon_option to make reuse without new translations easier. -wk This is a backport of commit 371c2b14b0347209efd23b4e54e1981a12d7aeab with parts of 20c6da50d4f6264d26d113d7de606971f719a0ca but without those which would change existing translated strings. -wk
* gpg: Need to init the trustdb for import.Kristian Fiskerstrand2014-09-031-0/+2
| | | | | | | | | | | | | * g10/trustdb.c (clear_ownertrusts): Init trustdb. -- This was fixed in 1.4 branch in commit 23191d7851eae2217ecdac6484349849a24fd94a but was not applied to the 2.0 branch that exhibits the same problem. This is actually a hack to fix a bug introduced with commit 2528178. GnuPG-bug-id: 1622
* gpg: Allow for positional parameters in the passphrase prompt.Werner Koch2014-08-261-23/+12
| | | | | | | | | * g10/passphrase.c (passphrase_get): Replace sprintf by xasprintf. -- Without that at least the French translation does not always work because it requires positional parameters. Windows for example does not support them as they are not defined by C99 but by POSIX.
* Remove trailing white space from two files.Werner Koch2014-08-121-8/+8
| | | | --
* gpg: Fix regression due to the keyserver import filter.Werner Koch2014-08-063-34/+49
| | | | | | | | | | * g10/keyserver.c (keyserver_retrieval_filter): Change args. Rewrite to take subpakets in account. * g10/import.c (import_one, import_secret_one): Pass keyblock to filter. -- GnuPG-bug-id: 1680
* gpg: Add kbnode_t for easier backporting.Werner Koch2014-08-061-0/+1
| | | | * g10/gpg.h (kbnode_t): New.
* Add OpenPGP card manufacturer Yubico (6).Simon Josefsson2014-07-211-0/+1
|
* gpg: Cap size of attribute packets at 16MB.Werner Koch2014-07-211-1/+12
| | | | | | | | | | | | | | | | | | * g10/parse-packet.c (parse_attribute): Avoid xmalloc failure and cap size of packet. -- Tavis Ormandy reported a fatal error for attribute packets with a zero length payload. This is due to a check in Libgcrypt's xmalloc which rejects a malloc(0) instead of silently allocating 1 byte. The fix is obvious. In addition we cap the size of attribute packets similar to what we do with user id packets. OpenPGP keys are not the proper way to store movies. Resolved conflicts: g10/parse-packet.c - indentation. Use plain fprintf.
* gpg: Limit keysize for unattended key generation to useful values.Werner Koch2014-06-271-2/+12
| | | | | | | | | | | | | * g10/keygen.c (gen_elg): Enforce keysize 1024 to 4096. (gen_rsa): Enforce keysize 1024 to 4096. (gen_dsa): Enforce keysize 768 to 3072. -- It was possible to create 16k RSA keys in batch mode. In addition to the silliness of such keys, they have the major drawback that under GnuPG and Libgcrypt, with their limited amount of specially secured memory areas, the use of such keys may lead to an "out of secure memory" condition.
* gpg: Make screening of keyserver result work with multi-key commands.Werner Koch2014-06-251-23/+45
| | | | | | | | | | | | | | * g10/keyserver.c (ks_retrieval_filter_arg_s): new. (keyserver_retrieval_filter): Use new struct and check all descriptions. (keyserver_spawn): Pass filter arg suing the new struct. -- This is a fix for commit 5e933008. The old code did only work for a single key. It failed as soon as several keys are specified ("gpg --refresh-keys" or "gpg --recv-key A B C").
* gpg: Fix a couple of spelling errorsKristian Fiskerstrand2014-06-241-2/+2
|
* gpg: Do not link gpgv against libassuan.Werner Koch2014-06-241-1/+1
| | | | | | | | | * g10/Makefile.am (gpgv2_LDADD): Remove LIBASSUAN_LIBS. -- This is not required. GnuPG-bug-id: 1533
* Improve configure option --with-libgpg-error-prefixWerner Koch2014-06-241-1/+1
| | | | | | | | | | | -- GnuPG-bug-id: 1561 Note that this is not a complete solution. The libgpg-error include directory has now a higher preference but ld may not pick up the right library if another one is installed. The problem is that the -L option and the -l options are not emitted separately by gpg-error-config.
* gpg: Use more specific reason codes for INV_RECP.Werner Koch2014-06-241-5/+13
| | | | | | | | | | * g10/pkclist.c (build_pk_list): Use more specific reasons codes for INV_RECP. -- GnuPG-bug-id: 1650 Note that this patch is a bit more limited than the one in 2.1.
* gpg: Make show-uid-validity the default.Werner Koch2014-06-241-0/+2
|
* gpg: Screen keyserver responses.Stefan Tomanek2014-06-243-80/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | * g10/main.h (import_filter_t): New. * g10/import.c (import): Add filter callbacks to param list. (import_one): Ditto. (import_secret_one): Ditto. (import_keys_internal): Ditto. (import_keys_stream): Ditto. * g10/keyserver.c (keyserver_retrieval_filter): New. (keyserver_spawn): Pass filter to import_keys_stream() -- These changes introduces import functions that apply a constraining filter to imported keys. These filters can verify the fingerprints of the keys returned before importing them into the keyring, ensuring that the keys fetched from the keyserver are in fact those selected by the user beforehand. Signed-off-by: Stefan Tomanek <[email protected]> Re-indention and minor changes by wk. Resolved conflicts: g10/import.c g10/keyserver.c g10/main.h
* gpg: Allow key-to-card upload for cert-only keysWerner Koch2014-06-241-47/+47
| | | | | | | * g10/card-util.c (card_store_subkey): Allo CERT usage for key 0. -- Suggested-by: Dominik Heidler <[email protected]>
* gpg: Avoid infinite loop in uncompressing garbled packets.Werner Koch2014-06-201-8/+11
| | | | | | | | | | | | | | | * g10/compress.c (do_uncompress): Limit the number of extra FF bytes. -- A packet like (a3 01 5b ff) leads to an infinite loop. Using --max-output won't help if it is a partial packet. This patch actually fixes a regression introduced on 1999-05-31 (c34c6769). Actually it would be sufficient to stuff just one extra 0xff byte. Given that this problem popped up only after 15 years, I feel safer to allow for a very few FF bytes. Thanks to Olivier Levillain and Florian Maury for their detailed report.
* gpg: New %U expando for the photo viewer.Werner Koch2014-06-033-5/+24
| | | | | | | | | | | | | | * g10/photoid.c (show_photos): Set namehash. * g10/misc.c (pct_expando): Add "%U" expando. -- This makes is possible to extract all photos ids from a key to different files. (cherry picked from commit e184a11f94e2d41cd9266484542631bec23628b5) Resolved conflicts: g10/photoid.c - whitespaces
* gpg: Reject signatures made with MD5.Werner Koch2014-06-033-0/+24
| | | | | | | | | | | | | | * g10/gpg.c: Add option --allow-weak-digest-algos. (main): Set option also in PGP2 mode. * g10/options.h (struct opt): Add flags.allow_weak_digest_algos. * g10/sig-check.c (do_check): Reject MD5 signatures. * tests/openpgp/gpg.conf.tmpl: Add allow_weak_digest_algos. -- (cherry picked from commit f90cfe6b66269de0154d810c5cee1fe9a5af475c) Resolved conflicts: g10/gpg.c - adjust. tests/openpgp/defs.inc - no changes
* gpg: Remove useless diagnostic in MDC verification.Werner Koch2014-06-031-8/+4
| | | | | | | | | | * g10/decrypt-data.c (decrypt_data): Do not distinguish between a bad MDC packer header and a bad MDC. -- The separate diagnostic was introduced for debugging a problems. For explaining an MDC error a single error message is easier to understand.
* gpg: Fix glitch entering a full expiration time.Werner Koch2014-06-031-1/+2
| | | | | | | | | | | * g10/keygen.c (ask_expire_interval): Get the current time after the prompt. -- This almost avoid that an entered full ISO timestamp is not used as given but off by the time the user required to enter the timestamp. GnuPG-bug-id: 1639
* gpg: Graceful skip reading of corrupt MPIs.Werner Koch2014-06-021-5/+17
| | | | | | | | | | * g10/parse-packet.c (mpi_read): Change error message on overflow. -- This gets gpg 2.x in sync to what gpg 1.4 does. No need to die for a broken MPI. GnuPG-bug-id: 1593
* gpg: Simplify default key listing.Werner Koch2014-06-021-84/+49
| | | | | | | | | | | * g10/mainproc.c (list_node): Rework. -- The old code still merged the first user id into the key packet line which resulted in all kind of complexity. --fixed-list-mode is meanwhile the default and thus we also change this part of the code. GnuPG-bug-id: 1640
* gpg: Fix bug parsing a zero length user id.Werner Koch2014-06-021-20/+28
| | | | | | | | | | | | | | | | | | | | | | * g10/getkey.c (get_user_id): Do not call xmalloc with 0. * common/xmalloc.c (xmalloc, xcalloc): Take extra precaution not to pass 0 to the arguments. -- The problem did not occur in 1.x because over there the xmalloc makes sure to allocate at least one byte. With 2.x for most calls the xmalloc of Libgcrypt is used and Libgcrypt returns an error insteead of silent allocating a byte. Thus gpg 2.x bailed out with an "Fatal: out of core while allocating 0 bytes". The extra code in xmalloc.c is for more robustness for the other xmalloc calls. (cherry picked from commit 99972bd6e9abea71f270284f49997de5f00208af) Resolved conflicts: g10/getkey.c - ignore whitespace changes.
* gpg: Print a warning if GKR has hijacked gpg-agent.Werner Koch2014-04-221-34/+91
| | | | | | | | | | | | | * g10/call-agent.c (check_hijacking): New. (start_agent): Call it. (membuf_data_cb, default_inq_cb): Move more to the top. -- Note that GUIs may use the gpg status line [GNUPG:] ERROR check_hijacking 33554509 to detect this and print an appropriate warning.
* gpg: Fix use of deprecated RSA_E and RSA_E with newer libgcrypts.Werner Koch2014-04-161-1/+15
| | | | | | | | | | | | | | | | | * g10/misc.c (pubkey_get_npkey): Map RSA_E and RSA_S to RSA. (pubkey_get_nskey): Ditto. (pubkey_get_nsig): Ditto. (pubkey_get_nenc): Ditto. (pubkey_nbits): Take care of RSA_E and RSA_S. -- The problem was that parse_key did not know about RSA_S and thus used an opaque MPI which later crashed Libgcrypt. It is possible to fix that also in Libgcrypt but we better do it here as well. A test key using RSA_S is 0x98EEB6F7D87171CF. Reported-by: Hanno Böck
* gpg: Change --show-session-key to print the session key earlier.Werner Koch2013-12-114-48/+80
| | | | | | | | | | | | | | | | | | | | | | | | * g10/cpr.c (write_status_strings): New. (write_status_text): Replace code by a call to write_status_strings. * g10/mainproc.c (proc_encrypted): Remove show_session_key code. * g10/decrypt-data.c (decrypt_data): Add new show_session_key code. -- This feature can be used to return the session key for just a part of a file. For example to downloading just the first 32k of a huge file, decrypting that incomplete part and while ignoring all the errors break out the session key. The session key may then be used on the server to decrypt the entire file without the need to have the private key on the server. GnuPG-bug-id: 1389 Signed-off-by: Werner Koch <[email protected]> (cherry picked from commit 101a54add351ff62793cbfbf3877787c4791f833) Resolved Conflicts: doc/DETAILS - removed g10/cpr.c - replace estream fucntion by stdio. g10/mainproc.c - Adjust for changed calling convention.
* gpg: Change armor Version header to emit only the major version.Werner Koch2013-11-273-20/+40
| | | | | | | | | | | | | | | | | | * g10/options.h (opt): Rename field no_version to emit_version. * g10/gpg.c (main): Init opt.emit_vesion to 1. Change --emit-version to bump up opt.emit_version. * g10/armor.c (armor_filter): Implement different --emit-version values. -- GnuPG-bug-id: 1572 Signed-off-by: Werner Koch <[email protected]> (cherry picked from commit e951782e937ce290be0d89d83e84b3daea997587) Resolved conflicts: NEWS g10/armor.c g10/gpg.c
* gpg: Do not require a trustdb with --always-trust.Werner Koch2013-10-114-101/+135
| | | | | | | | | | | | | | | | | | | | | | | | | * g10/tdbio.c (tdbio_set_dbname): Add arg R_NOFILE. * g10/trustdb.c (trustdb_args): Add field no_trustdb. (init_trustdb): Set that field. (revalidation_mark): Take care of a nonexistent trustdb file. (read_trust_options): Ditto. (get_ownertrust): Ditto. (get_min_ownertrust): Ditto. (update_ownertrust): Ditto. (update_min_ownertrust): Ditto. (clear_ownertrusts): Ditto. (cache_disabled_value): Ditto. (check_trustdb_stale): Ditto. (get_validity): Ditto. * g10/gpg.c (main): Do not create a trustdb with most commands for trust-model always. -- This slightly changes the semantics of most commands in that they won't create a trustdb if --trust-model=always is used. It just does not make sense to create a trustdb if there is no need for it. Signed-off-by: Werner Koch <[email protected]>
* gpg: Fix --version output and explicitly disable ECC.Werner Koch2013-10-1110-75/+105
| | | | | | | | | | | | | | | | | | | * g10/misc.c (openpgp_pk_algo_name): New. Replace all calls in g10/ to gcry_pk_algo_name by a call to this function. (map_pk_openpgp_to_gcry): Map algo PUBKEY_ALGO_ELGAMAL_E to GCRY_PK_ELG. (openpgp_pk_test_algo): Use PUBKEY_ALGO_ELGAMAL_E instead of GCRY_PK_ELG_E. Return an error for ECC algos. (openpgp_pk_test_algo2): Return an error for ECC algos. * g10/gpg.c (build_list): Avoid printing ECC two times. * include/cipher.h: Do not use GCRY_PK_* macros for PUBKEY_ALGO_*. -- Due to recent changes to adjust for use with Libgcrypt 1.6, "gpg --version" printed two question marks. This patches fixes that and also make sure that gpg does advertise any ECC features. The patch in build_list is not really needed. Signed-off-by: Werner Koch <[email protected]>
* gpg: Print a "not found" message for an unknown key in --key-edit.Werner Koch2013-10-041-0/+4
| | | | | | | | * g10/keyedit.c (keyedit_menu): Print message. -- GnuPG-bug-id: 1420 Signed-off-by: Werner Koch <[email protected]>
* gpg: Kludge not to bail out on ECC if build with Libgcrypt 1.6.Werner Koch2013-10-041-7/+36
| | | | | | | | | | | | | | | * g10/misc.c (print_pubkey_algo_note): Map the algo. (openpgp_pk_test_algo, openpgp_pk_test_algo2): Ditto. (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig) (pubkey_get_nenc): Return 0 for ECC algorithms. -- Libgcrypt 1.6 features algorithm 18 (generic ECC). Because of the missing mapping and no real support for the OpenPGP ECC format, this led to parsing errors of ECC packets. We better better explicitly tell gpg that we ECC is not supported. Signed-off-by: Werner Koch <[email protected]>
* gpg: Protect against rogue keyservers sending secret keys.Werner Koch2013-10-043-10/+22
| | | | | | | | | | | | | | | | | * g10/options.h (IMPORT_NO_SECKEY): New. * g10/keyserver.c (keyserver_spawn, keyserver_import_cert): Set new flag. * g10/import.c (import_secret_one): Deny import if flag is set. -- By modifying a keyserver or a DNS record to send a secret key, an attacker could trick a user into signing using a different key and user id. The trust model should protect against such rogue keys but we better make sure that secret keys are never received from remote sources. Suggested-by: Stefan Tomanek Signed-off-by: Werner Koch <[email protected]>
* gpg: Allow setting of all zero key flagsDaniel Kahn Gillmor2013-10-041-3/+0
| | | | | * g10/keygen.c (do_add_key_flags): Do not check for empty key flags. (cherry picked from commit b693ec02c467696bf9d7324dd081e279f9965151)
* gpg: Distinguish between missing and cleared key flags.Werner Koch2013-10-041-1/+7
| | | | | | | | | | | | | | | * include/cipher.h (PUBKEY_USAGE_NONE): New. * g10/getkey.c (parse_key_usage): Set new flag. -- We do not want to use the default capabilities (derived from the algorithm) if any key flags are given in a signature. Thus if key flags are used in any way, the default key capabilities are never used. This allows to create a key with key flags set to all zero so it can't be used. This better reflects common sense. (cherry picked from commit 4bde12206c5bf199dc6e12a74af8da4558ba41bf)
* Remove trailing white space from some files.Daniel Kahn Gillmor2013-10-042-216/+216
| | | | --
* gpg: Limit the nesting level of I/O filters.Werner Koch2013-10-041-30/+48
| | | | | | | | | | | | | | | | | | | * common/iobuf.c (MAX_NESTING_FILTER): New. (iobuf_push_filter2): Limit the nesting level. * g10/mainproc.c (mainproc_context): New field ANY. Change HAVE_DATA and ANY_SIG_SIGN to bit fields of ANY. Add bit field UNCOMPRESS_FAILED. (proc_compressed): Avoid printing multiple Bad Data messages. (check_nesting): Return GPG_ERR_BAD_DATA instead of UNEXPECTED_DATA. -- This is a more general fix for the nested compression packet bug. In particular this helps g10/import.c:read_block to stop pushing compression filters onto an iobuf stream. This patch also reduces the number of error messages for the non-import case. Signed-off-by: Werner Koch <[email protected]>
* gpg: Fix bug with deeply nested compressed packets.Werner Koch2013-10-021-9/+43
| | | | | | | | | | * g10/mainproc.c (MAX_NESTING_DEPTH): New. (proc_compressed): Return an error code. (check_nesting): New. (do_proc_packets): Check packet nesting depth. Handle errors from check_compressed. Signed-off-by: Werner Koch <[email protected]>
* gpg: Use 2048 as the default keysize in batch mode.Werner Koch2013-08-301-7/+7
| | | | | | | * g10/keygen.c (gen_elg, gen_dsa, gen_rsa): Set default keysize to 2048. Signed-off-by: Werner Koch <[email protected]>
* gpgv: Init Libgcrypt to avoid syslog warning.Werner Koch2013-08-191-4/+13
| | | | | | | | | * g10/gpgv.c (main): Check libgcrypt version and disable secure memory. -- GnuPG-bug-id: 1376 Signed-off-by: Werner Koch <[email protected]>
* gpg: Remove legacy keyserver examples from the template conf file.Werner Koch2013-08-061-9/+2
| | | | * g10/options.skel: Update.
* gpg: No need to create a trustdb when encrypting with --always-trust.Werner Koch2013-08-021-7/+20
| | | | | | | | | * g10/gpg.c (main): Special case setup_trustdb for --encrypt. -- Signed-off-by: Werner Koch <[email protected]> (cherry picked from commit 498b9a95dc65c43240835d64cc92d8fb43014d53)
* w32: Add icons and version information.Ian Abbott2013-05-072-3/+56
| | | | | | | | | | | | | | | | | | | * common/gnupg.ico: New. Take from artwork/gnupg-favicon-1.ico. * agent/gpg-agent-w32info.rc: New. * g10/gpg-w32info.rc: New. * scd/scdaemon-w32info.rc: New. * sm/gpgsm-w32info.rc: New. * tools/gpg-connect-agent-w32info.rc: New. * common/w32info-rc.h.in: New. * configure.ac (BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP) (BUILD_HOSTNAME): New. (AC_CONFIG_FILES): Add w32info-rc.h. * am/cmacros.am (.rc.o): New rule. * agent/Makefile.am, common/Makefile.am, g10/Makefile.am * scd/Makefile.am, sm/Makefile.am, tools/Makefile.am: Add stuff to build resource files. Signed-off-by: Werner Koch <[email protected]>
* Fix a typo and a wrong code indentation.Jedi2013-04-251-2/+2
| | | | | | -- Reported-by: NIIBE Yutaka <[email protected]>
* w32: Almost everywhere include winsock2.h before windows.h.Werner Koch2013-04-234-106/+118
| | | | | | | | | | | -- This is required by newer mingw toolchain versions which demand that winsock2.h is included before windows.h. Now, due to the use of socket definitions in pth.h we need to include winsock2.h also in pth.h, now pth.h is often included after an include of windows.h and thus the compiler spits out a warning. To avoid that we include winsock2.h at all places the compiler complains about.