aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* w32: Add icons and version information.Werner Koch2013-05-0715-24/+348
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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]> (cherry picked from commit 049b3d9ca0285d15c00c215ac9b533c994196ca4) Solved conflicts in: agent/Makefile.am common/Makefile.am g10/Makefile.am scd/Makefile.am sm/Makefile.am tools/Makefile.am
* doc: fix some Texinfo warnings.Ian Abbott2013-05-072-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | * doc/gpg.texi: Fix syntax and add missing menu entries. * doc/gpgsm.texi: Fix subsectioning. -- These five patches fix some warnings from Texinfo 5 by adding some missing nodes and changing some sections to subsections, and moving an '@end ifset' to the start of a line. I also noticed the 'Deprecated options' subsection didn't appear in the GPG options menu, so I added it. (Texinfo never warned about it because it was after the last node in the menu.) 1) doc/gpg.texi: move '@end ifset' to start of line 2) doc/gpg.texi: Add missing node for 'Compliance options' section. 3) doc/gpg.texi: add node for 'Deprecated options' subsection. 4) doc/gpg.texi: make 'Unattended key generation' a subsection 5) doc/gpgsm.texi: fix subsectioning for Unattended Usage (all 5 merged into one patch by wk) (cherry picked from commit 4d67f59a336bfa0ff19fc23209940724196fd886) Signed-off-by: Werner Koch <[email protected]>
* Fix potential heap corruption in "gpg -v --version".Werner Koch2013-04-221-43/+40
| | | | | | | | | | | | | | | | | | | * g10/gpg.c (build_list): Rewrite to cope with buffer overflow in certain locales. -- This fixes an obvious bug in locales where the translated string is longer than the original. The bug could be exhibited by using LANG=ru_RU.utf8 gpg -v --version. En passant we also removed the trailing white space on continued lines. Reported-by: Dmitry V. Levin" <ldv at altlinux.org> (cherry picked from commit 3402a84720e7d8c6ad04fc50eacb338a8ca05ca1) Signed-off-by: Werner Koch <[email protected]>
* gpgsm: Remove non-implemented commands from --help.Werner Koch2013-04-191-4/+4
| | | | | | | | | | * sm/gpgsm.c (opts): Removed commands --clearsign, --symmetric, --send-keys, and --recv-keys. -- GnuPG-bug-id: 1064 Signed-off-by: Werner Koch <[email protected]>
* Make sure to call fflush if estream_t is backed with stdioDaiki Ueno2013-04-191-0/+1
| | | | * common/estream.c (es_func_fp_write): Call fflush after fwrite.
* doc: Formatting fixes.Werner Koch2013-04-195-17/+24
| | | | | | | | | | | * doc/Makefile.am (.fig.jpg): Correct to use -L jpeg. * doc/gpg.texi: Fix cross reference for --options. * doc/gpgsm.texi: Likewise. * doc/gpl.texi: Fix enumerate and re-indent examples. -- Reported-by: Ian Abbott Signed-off-by: Werner Koch <[email protected]>
* Add missing file.Werner Koch2013-04-171-0/+29
| | | | --
* Fix doc for the Expire-Date key generation parameter.Werner Koch2013-04-041-10/+12
| | | | --
* scd: move SCDaemon to libexecdir.NIIBE Yutaka2013-04-012-4/+5
| | | | | | * common/homedir.c (gnupg_module_name): It's now libexecdir. * scd/Makefile.am (libexec_PROGRAMS): Add scdaemon (bin_PROGRAMS): Remove scdaemon.
* copyright assignments are not anymore required.Werner Koch2013-03-294-155/+224
|
* scd: PC/SC status fix.NIIBE Yutaka2013-03-262-6/+10
| | | | | | | * scd/apdu.c (pcsc_get_status_direct): Check PCSC_STATE_MUTE only when PCSC_STATE_PRESENT. * scd/pcsc-wrapper.c (handle_status): Ditto.
* scd: PC/SC cleanup (more).NIIBE Yutaka2013-03-261-6/+6
| | | | | | * scd/apdu.c (control_pcsc_direct, control_pcsc_wrapped, control_pcsc) (check_pcsc_pinpad, pcsc_pinpad_verify, pcsc_pinpad_modify): Use pcsc_dword_t.
* scd: call update_card_removed only when detecting removal.NIIBE Yutaka2013-03-251-4/+2
| | | | | | | | | | | | | * scd/command.c (update_reader_status_file): Add condition vr->status == 0. -- To reproduce the bug: (1) insert card, (2) run "gpg2 --card-status", (3) remove card, (4) invoke "gpg2 --card-edit", (5) invoke some command like "verify" The last step fails (but with no error message to user).
* scd: PC/SC cleanup.NIIBE Yutaka2013-03-222-109/+137
| | | | | | | | | | | | | | * scd/apdu.c (pcsc_dword_t): New. It was named as DWORD (double-word) when a word was 16-bit. (struct reader_table_s): Fixes for types. (struct pcsc_readerstate_s) [__APPLE__]: Enable #pragma pack(1). Throughout: Fixes for types. * scd/pcsc-wrapper.c: Likewise. -- Problem reported for 1.4.x by the issue 1358.
* po: Enable ja.po.NIIBE Yutaka2013-03-211-1/+1
| | | | * po/LINGUAS: Enable ja.po.
* scd: change default value of pinpad maxlen.NIIBE Yutaka2013-03-212-5/+6
| | | | | | | | | | | | * scd/apdu.c (pcsc_pinpad_verify, pcsc_pinpad_modify): Default value of maxlen for pinpad input is now 15 (was: 25). * scd/ccid-driver.c (ccid_transceive_secure): Likewise. -- For newer PC/SC, it is better to use FEATURE_GET_TLV_PROPERTIES to get bMaxPINSize.
* Merge branch 'master' into key-storage-workkey-storage-workWerner Koch2013-03-2026-259/+482
|\ | | | | | | --
| * gpg: Print indicator for unknown key capability.Werner Koch2013-03-192-0/+4
| | | | | | | | * g10/keylist.c (print_capabilities): Print '?' for unknown usage.
| * gpg: Allow setting of all zero key flagsDaniel Kahn Gillmor2013-03-191-3/+0
| | | | | | | | * g10/keygen.c (do_add_key_flags): Do not check for empty key flags.
| * gpg: Distinguish between missing and cleared key flags.Werner Koch2013-03-192-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * scd: ccid-driver supporting larger APDU.NIIBE Yutaka2013-03-141-1/+1
| | | | | | | | | | | | | | | | | | * scd/ccid-driver.c (ccid_transceive_apdu_level): Support larger APDU. -- This is still ad hoc change, but it's OK. Supporting full extended APDU exchange level is not worth yet.
| * scd: fix missing close paren.NIIBE Yutaka2013-03-141-1/+1
| | | | | | | | | | | | * scd/app-openpgp.c (du_auth): Fix. --
| * scd: support ECDSA signing.NIIBE Yutaka2013-03-091-7/+24
| | | | | | | | | | | | | | | | | | | | | | * scd/app-openpgp.c (do_sign): Only prepend message digest block for RSA or do_auth. (do_auth): Remove message digest block for ECDSA. -- If we don't need to check the message digest block by SCDaemon, we don't requite the message digest block for ECDSA by gpg-agent.
| * scd: support ECDSA public key.NIIBE Yutaka2013-03-081-94/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * scd/app-openpgp.c (key_type_t): New. (CURVE_NIST_P256, CURVE_NIST_P384, CURVE_NIST_P521): New. (struct app_local_s): Change keyattr to have key_type and union. (get_ecc_key_parameters, get_curve_name): New. (send_key_attr, get_public_key): Support ECDSA. (build_privkey_template, do_writekey, do_genkey): Follow the change of the member KEY_ATTR. (parse_historical): New. (parse_algorithm_attribute): Support ECDSA. -- Add ECDSA support to OpenPGP card.
| * Update RFC references to RFC 4880Daniel Kahn Gillmor2013-03-051-2/+2
| | | | | | | | --
| * Require libgpg-error 1.11.Werner Koch2013-03-052-11/+1
| | | | | | | | | | | | * configure.ac: Require libgpg-error 1.11. * common/util.h (GPG_ERR_NO_KEYSERVER, GPG_ERR_INV_CURVE) (GPG_ERR_UNKNOWN_CURVE): Remove fallback definitions.
| * agent: pksign result conversion to sexp to upper layer.NIIBE Yutaka2013-02-284-36/+98
| | | | | | | | | | | | | | | | | | | | | | * agent/agent.h (divert_pksign): Add R_SIGLEN argument. * agent/divert-scd.c (divert_pksign): Return length at R_SIGLEN. * agent/call-scd.c (agent_card_pksign): Move composition of S-expression to... * agent/pksign.c (agent_pksign_do): ... here. -- Composing S-expression would be better to be done by SCDaemon.
| * Use has_leading_keyword in the assuan callbacks.Werner Koch2013-02-226-80/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | * agent/call-pinentry.c (inq_quality): Use has_leading_keyword. * agent/call-scd.c (inq_needpin, inq_writekey_parms): Ditto. * g10/call-agent.c (inq_writecert_parms, keyinfo_status_cb): Ditto. (inq_genkey_parms, inq_ciphertext_cb, inq_import_key_parms): Ditto. * g10/call-dirmngr.c (ks_put_inq_cb): Ditto. * sm/call-agent.c (default_inq_cb, inq_ciphertext_cb): Ditto. (inq_genkey_parms, istrusted_status_cb, learn_status_cb): Ditto. (keyinfo_status_cb, inq_import_key_parms): Ditto. * sm/call-dirmngr.c (inq_certificate, isvalid_status_cb): Ditto. (lookup_status_cb, run_command_inq_cb, run_command_status_cb): Ditto.
| * Remove some unused variables.Werner Koch2013-02-223-15/+11
| | | | | | | | | | | | | | * tools/gpgconf-comp.c (gc_process_gpgconf_conf): Remove unused used_components. * agent/command-ssh.c (ssh_signature_encoder_ecdsa): Mark unused arg. * g13/g13.c (main): Comment variable of yet unimplemented options.
| * gpg: Fix a memory leak in batch key generationWerner Koch2013-02-222-26/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g10/keygen.c (append_to_parameter): New. (proc_parameter_file): Use new func to extend the parameter list. * g10/passphrase.c (passphrase_to_dek_ext): Print a diagnostic of gcry_kdf_derive failed. * g10/keygen.c (proc_parameter_file): Print a diagnostic if passphrase_to_dek failed. -- Due to an improper way of using the linked list head, all memory for items allocated in proc_parameter_file was never released. If batched key generation with a passphrase and more than ~200 keys was used this exhausted the secure memory.
| * gpg: Handle the agent's NEW_PASSPHRASE inquiry.Werner Koch2013-02-221-2/+3
| | | | | | | | * g10/call-agent.c (default_inq_cb): Take care of NEW_PASSPHRASE.
| * common: Add func has_leading_keyword.Werner Koch2013-02-222-0/+25
| | | | | | | | * common/stringhelp.c (has_leading_keyword): New.
| * Remove build hacks for FreeBSD.Werner Koch2013-02-221-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac [freebsd]: Do not add /usr/local to CPPFLAGS and LDFLAGS. -- Back in ~2000 we introduced a quick hack to make building of Libgcrypt on FreeBSD easier by always adding -I/usr/local/include and -L/usr/local/lib . It turned out that this is a bad idea if one wants to build with library version which is not installed in /usr/local. The hack made was eventually (in 2003) copied from Libgcrypt to GnuPG-2.
| * agent: fix two bugs.NIIBE Yutaka2013-02-222-1/+2
| | | | | | | | | | | | | | | | * agent/command.c (cmd_keytocard): Decrement KEYDATALEN. * agent/findkey.c (agent_public_key_from_file): Increment for ELEMS. -- For ECDSA and ECDH, there are 6 elements.
| * gpg: fix keytocard and support ECC card for key attribute.NIIBE Yutaka2013-02-222-4/+10
| | | | | | | | | | | | * g10/call-agent.c (agent_keytocard): Supply PARM arg. * g10/card-util.c (card_status): Support ECC. (card_store_subkey): Don't assume RSA.
| * Update .gitignore for non-VPATH builds.Werner Koch2013-02-121-9/+19
| | | | | | | | --
* | Add code to allow for late memory cleanup.Werner Koch2013-03-203-18/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * common/init.c (mem_cleanup_item_t): New. (run_mem_cleanup): New. (_init_common_subsystems): Add an atexit for it. (register_mem_cleanup_func): New. * g10/kbnode.c (cleanup_registered): New. (release_unused_nodes): New. (alloc_node): Call register_mem_cleanup_func. -- It is often time consuming to figure out whether still allocated memory at process termination is fine (e.g. a cache) or a problem. To help for that register_mem_cleanup_func may now be used to cleanup such memory. The run time of the program will be longer; if that turns out to be a problem we can change the code to only run in debugging mode.
* | kbx: Remove unused macro.Werner Koch2013-03-201-6/+0
| | | | | | | | * kbx/keybox.h (KEYBOX_WITH_OPENPGP): Remove unused macro.
* | po: Autoupdates for de and fr. Update gitignore.Werner Koch2013-03-203-92/+158
| | | | | | | | --
* | gpg: Fix a memory leak in batch key generationWerner Koch2013-02-212-26/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g10/keygen.c (append_to_parameter): New. (proc_parameter_file): Use new func to extend the parameter list. * g10/passphrase.c (passphrase_to_dek_ext): Print a diagnostic of gcry_kdf_derive failed. * g10/keygen.c (proc_parameter_file): Print a diagnostic if passphrase_to_dek failed. -- Due to an improper way of using the linked list head, all memory for items allocated in proc_parameter_file was never released. If batched key generation with a passphrase and more than ~200 keys was used this exhausted the secure memory.
* | gpg: Handle the agent's NEW_PASSPHRASE inquiry.Werner Koch2013-02-211-2/+3
| | | | | | | | * g10/call-agent.c (default_inq_cb): Take care of NEW_PASSPHRASE.
* | common: Add func has_leading_keyword.Werner Koch2013-02-212-0/+25
| | | | | | | | * common/stringhelp.c (has_leading_keyword): New.
* | Remove build hacks for FreeBSD.Werner Koch2013-02-201-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac [freebsd]: Do not add /usr/local to CPPFLAGS and LDFLAGS. -- Back in ~2000 we introduced a quick hack to make building of Libgcrypt on FreeBSD easier by always adding -I/usr/local/include and -L/usr/local/lib . It turned out that this is a bad idea if one wants to build with library version which is not installed in /usr/local. The hack made was eventually (in 2003) copied from Libgcrypt to GnuPG-2.
* | Update .gitignore for non-VPATH builds.Werner Koch2013-02-121-9/+19
| | | | | | | | --
* | Merge branch 'master' into key-storage-workWerner Koch2013-02-1243-5016/+6184
|\|
| * gpg: Implement card_store_subkey again.NIIBE Yutaka2013-02-123-147/+123
| | | | | | | | | | | | | | | | * g10/call-agent.h (agent_keytocard): New. * g10/call-agent.c (agent_keytocard): New. * g10/card-util.c (replace_existing_key_p): Returns 1 when replace. (card_generate_subkey): Check return value of replace_existing_key_p. (card_store_subkey): Implement again using agent_keytocard.
| * agent: Add KEYTOCARD command.NIIBE Yutaka2013-02-124-0/+197
| | | | | | | | | | | | | | | | * agent/agent.h (divert_writekey, agent_card_writekey): New. * agent/call-scd.c (inq_writekey_parms, agent_card_writekey): New. * agent/command.c (cmd_keytocard, hlp_keytocard): New. (register_commands): Add cmd_keytocard. * agent/divert-scd.c (divert_writekey): New.
| * Japanese: update po and doc.NIIBE Yutaka2013-02-122-517/+388
| | | | | | | | * doc/help.ja.txt, po/ja.po: Updated.
| * scd: Rename 'keypad' to 'pinpad'.NIIBE Yutaka2013-02-0817-130/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * NEWS: Mention scd changes. * agent/divert-scd.c (getpin_cb): Change message. * agent/call-scd.c (inq_needpin): Change the protocol to POPUPPINPADPROMPT and DISMISSPINPADPROMPT. * scd/command.c (pin_cb): Likewise. * scd/apdu.c (struct reader_table_s): Rename member functions. (check_pcsc_pinpad, pcsc_pinpad_verify, pcsc_pinpad_modify, check_ccid_pinpad, ccid_pinpad_operation, apdu_check_pinpad apdu_pinpad_verify, apdu_pinpad_modify): Rename. * scd/apdu.h (SW_HOST_NO_PINPAD, apdu_check_pinpad) (apdu_pinpad_verify, apdu_pinpad_modify): Rename. * scd/iso7816.h (iso7816_check_pinpad): Rename. * scd/iso7816.c (map_sw): Use SW_HOST_NO_PINPAD. (iso7816_check_pinpad): Rename. (iso7816_verify_kp, iso7816_change_reference_data_kp): Follow the change. * scd/ccid-driver.h (CCID_DRIVER_ERR_NO_PINPAD): Rename. * scd/ccid-driver.c (ccid_transceive_secure): Use it. * scd/app-dinsig.c (verify_pin): Follow the change. * scd/app-nks.c (verify_pin): Follow the change. * scd/app-openpgp.c (check_pinpad_request): Rename. (parse_login_data, verify_a_chv, verify_chv3, do_change_pin): Follow the change. * scd/scdaemon.c (oDisablePinpad, oEnablePinpadVarlen): Rename. * scd/scdaemon.h (opt): Rename to disable_pinpad, enable_pinpad_varlen. * tools/gpgconf-comp.c (gc_options_scdaemon): Rename to disable-pinpad.
| * gpg: Add pinentry-mode feature.Werner Koch2013-02-0710-81/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g10/gpg.c: Include shareddefs.h. (main): Add option --pinentry-mode. * g10/options.h (struct opt): Add field pinentry_mode. * g10/passphrase.c: Include shareddefs.h. (have_static_passphrase): Take care of loopback pinentry_mode. (read_passphrase_from_fd): Ditto. (get_static_passphrase): New. (passphrase_to_dek_ext): Factor some code out to ... (emit_status_need_passphrase): new. * g10/call-agent.c (start_agent): Send the pinentry mode. (default_inq_cb): Take care of the PASSPHRASE inquiry. Return a proper error code. (agent_pksign): Add args keyid, mainkeyid and pubkey_algo. (agent_pkdecrypt): Ditto. * g10/pubkey-enc.c (get_it): Pass new args. * g10/sign.c (do_sign): Pass new args. * g10/call-agent.c (struct default_inq_parm_s): New. Change all similar structs to reference this one. Change all users and inquire callback to use this struct, instead of NULL or some undefined but not used structs. This change will help to eventually get rid of global variables. -- This new features allows to use gpg without a Pinentry. As a prerequisite the agent must be configured to allow the loopback pinentry mode (option --allow-loopback-pinentry). For example gpg2 --pinentry-mode=loopback FILE.gpg may be used to decrypt FILE.gpg while entering the passphrase on the tty. If batch is used, --passphrase et al. may be used, if --command-fd is used, the passphrase may be provided by another process. Note that there are no try-again prompts in case of a bad passphrase.