aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* 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 ss->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.
* scd: change default value of pinpad maxlen.NIIBE Yutaka2013-03-212-4/+5
| | | | | | | | | | | | * 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.
* 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.
* Differentiate between success (full or partial), not-found, and failure.David Shaw2013-03-031-11/+76
| | | | | | * keyserver/gpgkeys_hkp.c (get_key): Use curl_easy_setinfo to get the HTTP status code so we can tell the difference between a successful retrieval, a partial retrieval, a not-found, or a server failed.
* Emulate curl_easy_getinfo and CURLINFO_RESPONSE_CODE in curl-shim.David Shaw2013-03-032-3/+31
| | | | | * keyserver/curl-shim.h, keyserver/curl-shim.c (curl_easy_getinfo): New. Return the HTTP status code for the last transfer.
* Bring the fix for bug 739 on 1.4 over to 2.0 (bug 1479)David Shaw2013-02-282-9/+5
| | | | | * http.h, http.c (http_wait_response, main): Remove HTTP_FLAG_NO_SHUTDOWN.
* Japanese: minor doc update.NIIBE Yutaka2013-02-121-1/+1
| | | | * doc/help.ja.txt: Update.
* Japanese: updated po and doc.NIIBE Yutaka2013-02-122-182/+234
| | | | * doc/help.ja.txt, po/ja.po: Updated.
* scd: Rename 'keypad' to 'pinpad'.NIIBE Yutaka2013-02-0817-130/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* scd: Fix check_keypad_request.NIIBE Yutaka2013-02-051-1/+1
| | | | * scd/app-openpgp.c (check_keypad_request): 0 means not to use pinpad.
* scd: Clean up.NIIBE Yutaka2013-02-052-22/+0
| | | | | * apdu.h (apdu_send_simple_kp): Remove. * apdu.c (apdu_send_simple_kp): Remove.
* SCD: Add vendor specific initalization.NIIBE Yutaka2013-02-051-1/+29
| | | | | * scd/ccid-driver.c (ccid_vendor_specific_init): New. (ccid_open_reader): Call ccid_vendor_specific_init.
* SCD: Support P=N format for login data.NIIBE Yutaka2013-02-051-24/+24
| | | | * scd/app-openpgp.c (parse_login_data): Support P=N format.
* SCD: Better interoperability.NIIBE Yutaka2013-02-051-2/+2
| | | | | | * scd/apdu.c: Fill bTeoPrologue[2] field. -- ccid-1.4.5 or older requires this field is filled by application.
* SCD: Defaults to use pinpad if the reader has the capability.NIIBE Yutaka2013-02-051-25/+25
| | | | | | * scd/app-openpgp.c (struct app_local_s): Remove VARLEN. (parse_login_data): "P=0" means to disable pinpad. (check_keypad_request): Default is to use pinpad if available.
* SCD: handle keypad request on the card.NIIBE Yutaka2013-02-051-6/+104
| | | | | | | | | * scd/app-openpgp.c: Add 2013. (struct app_local_s): Add keypad structure. (parse_login_data): Add parsing keypad request on the card. (check_keypad_request): New. (verify_a_chv, verify_chv3, do_change_pin): Call check_keypad_request to determine use of keypad.
* SCD: Minor fix of ccid-driver.NIIBE Yutaka2013-02-051-1/+1
| | | | * scd/ccid-driver.c (VENDOR_VEGA): Fix typo.
* SCD: Add support of Covadis VEGA_ALPHA reader.NIIBE Yutaka2013-02-051-93/+96
| | | | | | | * scd/ccid-driver.c: Add 2013. (VENDER_VEGA, VEGA_ALPHA):New. (ccid_transceive_secure): VEGA_ALPHA is same firmware as GEMPC_PINPAD. Change bNumberMessage to 0x01, as it works better (was: 0xff).
* SCD: Support fixed length PIN input for keypad (PC/SC).NIIBE Yutaka2013-02-052-23/+19
| | | | | | | * scd/apdu.c (pcsc_keypad_verify): SUpport fixed length PIN input for keypad. (pcsc_keypad_modify): Likewise. * scd/ccid-driver.c (ccid_transceive_secure): Clean up.
* SCD: Support fixed length PIN input for keypad.NIIBE Yutaka2013-02-056-22/+53
| | | | | | | | | | | | | | | * scd/iso7816.h (struct pininfo_s): Remove MODE and add FIXEDLEN. * scd/app-dinsig.c (verify_pin): Initialize FIXEDLEN to unknown. * scd/app-nks.c (verify_pin): Likewise. * scd/app-openpgp.c (verify_a_chv, verify_chv3, do_change_pin): Likewise. * scd/apdu.c (check_pcsc_keypad): Add comment. (pcsc_keypad_verify, pcsc_keypad_modify): PC/SC driver only support readers with the feature of variable length input (yet). (apdu_check_keypad): Set FIXEDLEN. * scd/ccid-driver.c (ccid_transceive_secure): Add GEMPC_PINPAD specific settings. Support fixed length PIN input for keypad.
* SCD: API cleanup for keypad handling.NIIBE Yutaka2013-02-0513-107/+84
| | | | | | | | | | | | | | | | | | | | | | | | | * scd/iso7816.h (struct pininfo_s): Rename from iso7816_pininfo_s. Change meaning of MODE. (pininfo_t): Rename from iso7816_pininfo_t. * scd/sc-copykeys.c: Include "iso7816.h". * scd/scdaemon.c, scd/command.c: Likewise. * scd/ccid-driver.c: Include "scdaemon.h" and "iso7816.h". (ccid_transceive_secure): Follow the change of PININFO_T. * scd/app.c: Include "apdu.h" after "iso7816.h". * scd/iso7816.c (iso7816_check_keypad, iso7816_verify_kp) (iso7816_change_reference_data_kp): Follow the change of API. * scd/apdu.c (struct reader_table_s): Change API of CHECK_KEYPAD, KEYPAD_VERIFY, KEYPAD_MODIFY to have arg of PININFO_T. (check_pcsc_keypad, check_ccid_keypad): Likewise. (apdu_check_keypad, apdu_keypad_verify, apdu_keypad_modify): Likewise. (pcsc_keypad_verify, pcsc_keypad_modify, ct_send_apdu) (pcsc_send_apdu_direct, pcsc_send_apdu_wrapped, pcsc_send_apdu) (send_apdu_ccid, ccid_keypad_operation, my_rapdu_send_apdu, send_apdu) (send_le): Follow the change of API. * scd/apdu.h (apdu_check_keypad, apdu_keypad_verify) (apdu_keypad_modify): Change the API. * scd/app-dinsig.c, scd/app-nks.c, scd/app-openpgp.c: Follow the change.
* SCD: Clean up. Remove PADLEN for keypad input.NIIBE Yutaka2013-02-056-51/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | * scd/apdu.c (struct pininfo_s): Use iso7816_pininfo_s. (struct reader_table_s): Remove last arg from check_keypad method. (check_pcsc_keypad, check_pcsc_keypad): Remove PIN_PADLEN. (pcsc_keypad_verify, pcsc_keypad_modify): Don't check PIN_PADLEN. (send_apdu_ccid, ccid_keypad_operation): Remove PIN_PADLEN. (apdu_check_keypad, apdu_keypad_verify, apdu_keypad_modify): Likewise. * scd/apdu.h (apdu_check_keypad, apdu_keypad_verify) (apdu_keypad_modify): Remove PIN_PADLEN. * scd/ccid-driver.c (ccid_transceive_secure): Remove PIN_PADLEN. * scd/ccid-driver.h (ccid_transceive_secure): Remove PIN_PADLEN. * scd/iso7816.c (iso7816_check_keypad, iso7816_verify_kp) (iso7816_change_reference_data_kp): Remove PADLEN. * scd/iso7816.h (struct iso7816_pininfo_s): Remove PADLEN, PADCHAR. -- In the OpenPGPcard specification, password comes with no padding. In GnuPG, we support keypad input for OpenPGPcard only. Thus, it is useless to try to support padding for keypad input.
* SCD: Add option enable-keypad-varlen and support for GEMPC_PINPAD.NIIBE Yutaka2013-02-053-0/+16
| | | | | | | | | | | | * scd/scdaemon.h (opt): Add enable_keypad_varlen. * scd/scdaemon.c (cmd_and_opt_values): Add oEnableKeypadVarlen. (opts, main): Add oEnableKeypadVarlen. * scd/ccid-driver.c (GEMPC_PINPAD): New. (ccid_transceive_secure): Add enable_varlen handling. Enable GEMPC_PINPAD. -- Note that GEMPC_PINPAD doesn't support variable length keypad input. The feature of fixed length keypad input will be added soon.
* SCD: Support not-so-smart card readers.NIIBE Yutaka2013-02-051-37/+253
| | | | | | | | | | | | | | | | | | * scd/ccid-driver.c (struct ccid_driver_s): Add auto_voltage, auto_param, and auto_pps. (parse_ccid_descriptor): Set auto_voltage, auto_param, and auto_pps. Support non-autoconf readers. (update_param_by_atr): New. (ccid_get_atr): Use 5V for PowerOn when auto_voltage is not supported. Use 0x10 when nonnull_nad for SetParameters. Call update_param_by_atr for parsing ATR, and use param for SetParameters. Send PPS if reader requires it and card is negotiable. When bNadValue in the return values of SetParameters == 0, clear handle->nonnull_nad flag. -- This change is to support more card readers by the internal driver. Tested with 08e6:3478 Gemplus PinPad Smart Card Reader.
* SCD: Hold lock for pinpad input.NIIBE Yutaka2013-02-041-3/+30
| | | | | * scd/apdu.c (apdu_check_keypad, apdu_keypad_verify) (apdu_keypad_modify): Hold lock to serialize communication.
* agent: kill pinentry by SIGINT, fixing a bug to be killed by SIGINT.NIIBE Yutaka2013-02-041-2/+11
| | | | | | | | | * agent/call-pinentry.c (atfork_cb): Reset signal mask and signal handler for child process. (agent_popup_message_stop): Send SIGINT (was: SIGKILL). -- pinentry-curses should be killed by SIGINT, so that it can reset terminal settings, but it didn't work.
* gpg: Fix honoring --cert-digest-algo when recreating a certChristian Aistleitner2013-01-111-0/+2
| | | | | * g10/sign.c (update_keysig_packet): Override original signature's digest algo in hashed data and for hash computation.
* Update Japanese Translation.NIIBE Yutaka2013-01-071-7/+6
| | | | | * po/ja.po: Fix wrong translations for designated revocation. Reported by Hideki Saito.
* gpg: Detect Keybox files and print a diagnostic.Werner Koch2013-01-032-3/+35
| | | | | | | | | | | | | | | | | * g10/keydb.c (KEYDB_RESOURCE_TYPE_KEYBOX): New. (keydb_add_resource): Handle scheme "gnupg-kbx:". Detect Keybox magic. Print wanrning note for Keybox. (keydb_new, keydb_release, keydb_get_resource_name) (lock_all, unlock_all, keydb_get_keyblock) (keydb_update_keyblock, keydb_insert_keyblock, keydb_delete_keyblock) (keydb_locate_writable, keydb_rebuild_caches, keydb_search_reset) (keydb_search2): Ignore Keybox type in switches. * g10/gpg.h (G10ERR_UNSUPPORTED): Map to correct gpg-error value. -- GnuPG 2.1 will support Keybox files in GPG and thus users might see weird error messages if they accidentally use a keybox file with 2.0. Better print a note here.
* Remove trailing white space from some files.Werner Koch2013-01-032-85/+85
| | | | --
* Update Japanese TranslationNIIBE Yutaka2012-12-291-282/+349
| | | | * po/ja.po: Fix terms and expressions.
* Update Japanese TranslationNIIBE Yutaka2012-12-291-543/+591
| | | | * po/ja.po: Translate all untranslated messages.
* Update Japanese TranslationNIIBE Yutaka2012-12-271-1174/+912
| | | | | * po/ja.po: Fix all fuzzy translations. Fill some of unstanslated messages.
* Update Japanese TranslationNIIBE Yutaka2012-12-271-954/+0
| | | | * po/ja.po: Remove old entries.
* Update Japanese TranslationNIIBE Yutaka2012-12-271-52/+24
| | | | * po/ja.po: Fix headers. Update by msgmerge -U ja.po gnupg2.pot.
* Update Japanese tranlationNIIBE Yutaka2012-12-271-1692/+1692
| | | | * po/ja.po: Change the encoding to UTF-8 (was: EUC-JP).
* Make sure srvcount is initialized.David Shaw2012-12-201-0/+2
| | | | * keyserver/gpgkeys_hkp.c (srv_replace): Initialize srvcount.
* gpg: Import only packets which are allowed in a keyblock.Werner Koch2012-12-201-1/+22
| | | | | | | | | | | | | | * g10/import.c (valid_keyblock_packet): New. (read_block): Store only valid packets. -- A corrupted key, which for example included a mangled public key encrypted packet, used to corrupt the keyring. This change skips all packets which are not allowed in a keyblock. GnuPG-bug-id: 1455 (cherry-picked from commit 3a4b96e665fa639772854058737ee3d54ba0694e)
* Fixed indentation and indented cpp directivesWerner Koch2012-12-192-58/+62
| | | | --
* gpg: Make commit 258192d4 actually workWerner Koch2012-12-191-2/+3
| | | | * g10/sign.c (update_keysig_packet): Use digest_algo.
* gpg: Suppress "public key already present" in quiet mode.Werner Koch2012-12-191-4/+6
| | | | | | | | * g10/pkclist.c (build_pk_list): Print two diagnostics only in non-quiet mode. -- (back-ported from commit 8325d616593187ff227853de0295e3269b96edcb)
* Remove trailing white space from a fileWerner Koch2012-12-191-62/+62
| | | | --
* State that disclaimers are not anymore needed for translations.Werner Koch2012-12-181-2/+6
| | | | --
* jnlib: Add meta option ignore-invalid-option.Werner Koch2012-12-182-5/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | * jnlib/argparse.c (iio_item_def_s, IIO_ITEM_DEF): New. (initialize): Init field IIO_LIST. (ignore_invalid_option_p): New. (ignore_invalid_option_add): New. (ignore_invalid_option_clear): New. (optfile_parse): Implement meta option. -- This option is currently of no use. However, as soon as it has been deployed in all stable versions of GnuPG, it will allow the use of the same configuration file with an old and a new version of GnuPG. For example: If a new version implements the option "foobar", and a user uses it in gpg.conf, an old version of gpg would bail out with the error "invalid option". To avoid that the following line can be put above that option in gpg.conf ignore-invalid-option foobar This meta option may be given several times or several option names may be given as arguments (space delimited). Note that this option is not available on the command line. (cherry-picked from commit 41d564333d35c923f473aa90625d91f8fe18cd0b)
* No point in defaulting try-dns-srv to on if we don't have SRV support.David Shaw2012-12-181-1/+8
| | | | | * keyserver/gpgkeys_hkp.c (main): Only default try-dns-srv to on if we have SRV support in the first place.
* Issue 1447: Pass proper Host header and SNI when SRV is used with curl.David Shaw2012-12-183-30/+114
| | | | | | | | | | | | * configure.ac: Check for inet_ntop. * m4/libcurl.m4: Provide a #define for the version of the curl library. * keyserver/gpgkeys_hkp.c (main, srv_replace): Call getaddrinfo() on each target. Once we find one that resolves to an address (whether IPv4 or IPv6), pass it into libcurl via CURLOPT_RESOLVE using the SRV name as the "host". Force the HTTP Host header to be the same.