1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-06 23:17:47 +02:00
Commit Graph

3712 Commits

Author SHA1 Message Date
NIIBE Yutaka
c92a67dde7 scd: handle reader/token removal.
* scd/apdu.c (pcsc_error_to_sw): PCSC_E_UNKNOWN_READER means
SW_HOST_NO_READER.
2012-06-24 10:45:49 +09:00
NIIBE Yutaka
a90f0fca55 scd: Fix updating slot status.
* scd/comman.c (do_reset): Let clear card_removed flag.
2012-06-22 10:51:12 +09:00
NIIBE Yutaka
ff40c05e8b scd: acquire lock in new_reader_slot.
* scd/apdu.c (new_reader_slot): Acquire lock.
  (open_ct_reader, open_pcsc_reader_direct, open_pcsc_reader_wrapped)
  (open_ccid_reader, open_rapdu_reader): Release lock.

--
Fixes a test case of:
   No libpcsclite1 installed.
   Run gpg-agent
   Run command "gpg-connect-agent learn /bye" with no card/token
   Sometimes it fails: ERR 100663356 Not supported <SCD>
   While it should be always: ERR 100663404 Card error <SCD>
2012-06-18 15:08:01 +09:00
NIIBE Yutaka
7f3ea44660 scd: move lock_slot, trylock_slot, unlock_slot functions.
* scd/apdu.c (lock_slot, trylock_slot, unlock_slot): Move.

--
This is for upcoming changes.
2012-06-18 14:52:53 +09:00
NIIBE Yutaka
29b431fcf9 Merge branch 'scd-backport-2-0' of git+ssh://playfair.gnupg.org/git/gnupg into scd-backport-2-0 2012-06-15 16:50:45 +09:00
NIIBE Yutaka
3e39a9aeaa scd: Fix merge mistake.
* scd/iso7816.c (iso7816_reset_retry_counter): Implement.
2012-06-15 16:46:59 +09:00
Werner Koch
d138fe5c30 scd: Prefer application Geldkarte over DINSIG.
* scd/app.c (select_application): Reorder application tests.
--

Although the DINSIG application is available on most German cards, it
is in reality not used.  Thus showing the Geldkarte application is
more desirable for a good user experience.

Conflicts:

	scd/app.c
2012-06-15 16:38:09 +09:00
Werner Koch
2586eac997 scd: Fix for card change returning GPG_ERR_CARD_RESET.
* scd/apdu.c (apdu_connect): Do not test for zero atrlen.
--
When gpg-agent prompts for insertion of a card this error would be
returned.

Co-authored-by: Ben Kibbey <bjk@luxsci.net>
2012-06-15 16:36:41 +09:00
NIIBE Yutaka
6859554448 Merge ccid_driver_improvement branch. (backport)
* scd/apdu.c (ccid_keypad_operation): Rename from ccid_keypad_verify.
(open_ccid_reader): Use ccid_keypad_operation for verify and modify.

* scd/ccid-driver.c (VENDOR_VASCO, VASCO_920): New.
(ccid_transceive_apdu_level): Permit sending packet where
apdulen <= 289.  Support receiving packets in a chain.
(ccid_transceive_secure): Maximum is 15 for VASCO DIGIPASS 920.
Support keypad_modify method such as CHANGE_REFERENCE_DATA: 0x24.
2012-06-15 16:35:19 +09:00
NIIBE Yutaka
f78cdf6d45 Add error log and debug log for pcsc_keypad_verify and pcsc_keypad_modify.
* scd/apdu.c (pcsc_keypad_verify): Add debug log and error log.
(pcsc_keypad_modify): Likewise.
2012-06-15 16:29:29 +09:00
NIIBE Yutaka
1b0968ce9a Fix pinpad input support for passphrase modification. (backport)
* apdu.c (pcsc_keypad_verify): Have dummy Lc field with value 0.
(pcsc_keypad_modify): Likewise.
(pcsc_keypad_modify): It's only for ISO7816_CHANGE_REFERENCE_DATA.
bConfirmPIN value is determined by the parameter p0.

* app-openpgp.c (do_change_pin): The flag use_keypad should be 0 when
reset_mode is on, or resetcode is on.  use_keypad only makes sense for
iso7816_change_reference_data_kp.

* iso7816.h (iso7816_put_data_kp): Remove.
(iso7816_reset_retry_counter_kp): Remove.
(iso7816_reset_retry_counter_with_rc_kp): Remove.
(iso7816_change_reference_data_kp): Add an argument: IS_EXCHANGE.

* iso7816.c (iso7816_put_data_kp): Remove.
(iso7816_reset_retry_counter_kp): Remove.
(iso7816_reset_retry_counter_with_rc_kp): Remove.
(iso7816_change_reference_data_kp): Add an argument: IS_EXCHANGE.
2012-06-15 16:27:02 +09:00
NIIBE Yutaka
b480f18e1d scd: Fix pinpad input support (backport from master)
* app-openpgp.c (do_change_pin): Fix pincb messages when
use_keypad == 1.
2012-06-15 16:17:45 +09:00
NIIBE Yutaka
7cd8b12e25 scd: PC/SC pinpad support (pinpad input for modify pass phrase). (backport)
* iso7816.h (iso7816_change_reference_data_kp): Remove arguments
of OLDCHV, OLDCHVLEN, NEWCHV, and NEWCHVLEN.

* iso7816.c (iso7816_change_reference_data_kp): Call
apdu_keypad_modify.
(iso7816_change_reference_data): Don't call
iso7816_change_reference_data_kp.

* apdu.h (apdu_keypad_modify): New.

* apdu.c (pcsc_keypad_modify, apdu_keypad_modify): New.
(struct reader_table_s): New memeber function keypad_modify.
(new_reader_slot, open_ct_reader, open_ccid_reader)
(open_rapdu_reader): Initialize keypad_modify.

* app-openpgp.c (do_change_pin): Handle keypad and call
iso7816_change_reference_data_kp if it is the case.
2012-06-15 15:33:44 +09:00
NIIBE Yutaka
6dc187f2db scd: PC/SC pinpad support. (Backported from master.)
* iso7816.h (iso7816_verify_kp): Remove arguments of CHV and CHVLEN.

* iso7816.c (iso7816_verify_kp): Call apdu_keypad_verify. Only
handle thecase with PININFO.
(iso7816_verify): Call apdu_send_simple.

* app-openpgp.c (verify_a_chv, verify_chv3): Follow the change of
iso7816_verify_kp.

* app-nks.c (verify_pin): Likewise.

* app-dinsig.c (verify_pin): Likewise.

* apdu.c: Include "iso7816.h".
(struct reader_table_s): New memeber function keypad_verify.
Add fields verify_ioctl and modify_ioctl in pcsc.
(CM_IOCTL_GET_FEATURE_REQUEST, FEATURE_VERIFY_PIN_DIRECT)
(FEATURE_MODIFY_PIN_DIRECT): New.
(pcsc_control): New.
(control_pcsc_direct, control_pcsc_wrapped, control_pcsc)
(check_pcsc_keypad, pcsc_keypad_verify): New.
(ccid_keypad_verify, apdu_keypad_verify): New.
(new_reader_slot): Initialize with check_pcsc_keypad,
pcsc_keypad_verify, verify_ioctl and modify_ioctl.
(open_ct_reader): Initialize keypad_verify with NULL.
(open_ccid_reader): Initialize keypad_verify.
(open_rapdu_reader): Initialize keypad_verify with NULL.
(apdu_open_reader): Initialize pcsc_control.

* pcsc-wrapper.c (load_pcsc_driver): Initialize pcsc_control.
(handle_control): New.
(main): Handle the case 6 of handle_control.
2012-06-15 15:29:12 +09:00
Werner Koch
cc13771675 Fix generated ChangeLog entry.
--
Finally Jim's git-fix-log thingy comes handy.
2012-06-13 09:35:41 +02:00
NIIBE Yutaka
a3ae21162a scd fixes on error.
* scd/apdu.c (open_pcsc_reader_wrapped): Show error number.

* scd/command.c (get_reader_slot): Return -1 on error.
2012-06-12 14:51:52 +09:00
NIIBE Yutaka
31584d3659 scd: Fix the changes of scd/command.c
* scd/command.c (do_reset): Assign slot after setting slot_table.
2012-06-08 13:18:06 +09:00
Werner Koch
ffd7ebf629 scd: Fix resetting and closing of the reader. (Backported by gniibe)
* scd/command.c (update_card_removed): Do no act on an invalid VRDR.
(do_reset): Ignore apdu_reset error codes for no and inactive card.
Close the reader before setting the slot to -1.
(update_reader_status_file): Notify the application before closing the
reader.
--

With this change the scd now works as it did in the past.  In
particular there is no more endless loop trying to open the reader by
the update_reader_status_file ticker function.  That bug basically
blocked all card operations until the scdaemon was killed.
2012-06-08 12:54:49 +09:00
Werner Koch
fae87058ea scd: Retry command SERIALNO for an inactive card.
* scd/command.c (cmd_serialno): Retry once for an inactive card.
2012-06-08 12:39:07 +09:00
Werner Koch
775a5f4b92 Fix detection of card removal and insertion.
* scd/apdu.c (apdu_connect): Return status codes for no card available
and inactive card.
* scd/command.c (TEST_CARD_REMOVAL): Also test for GPG_ERR_CARD_RESET.
(open_card): Map apdu_connect status to GPG_ERR_CARD_RESET.
2012-06-08 12:38:46 +09:00
Werner Koch
08178d1e13 Support the Cherry ST-2000 card reader.
* scd/ccid-driver.c (SCM_SCR331, SCM_SCR331DI, SCM_SCR335)
(SCM_SCR3320, SCM_SPR532, CHERRY_ST2000): New constants.
(parse_ccid_descriptor): Use them.
(scan_or_find_usb_device, ccid_transceive_secure): Handle Cherry
ST-2000.  Suggested by Matthias-Christian Ott.

Conflicts:

	scd/ccid-driver.c
2012-06-08 12:25:26 +09:00
NIIBE Yutaka
dafa7aa621 fix wLangId in ccid-driver.c
This is not a part of pin pad support series of mine.

As I found the bug while I am preparing the patches, I report this.

As CCID protocol is little endian, wLangId of US English = 0x0409
is represented as two bytes of 0x09 then 0x04.

It is really confusing that the code like following is floating
around:
	pin_verify -> wLangId = HOST_TO_CCID_16(0x0904);

But, it is 0x0409 (not 0x0904).  It is defined in the documentation:

    http://www.usb.org/developers/docs/USB_LANGIDs.pdf

and origin of this table is Microsoft.  We can see it at:

    http://msdn.microsoft.com/en-us/library/bb165625%28VS.80%29.aspx

Yes, it would be better not to hard-code 0x0409.  It would be better
to try current locale of the user, or to use the first entry of string
descriptor.  I don't have time to implement such a thing...
2012-06-08 12:15:02 +09:00
Werner Koch
b8d7b33d69 Add provisions to build with Libgcrypt 1.6.
Replace gcry_md_start_debug by gcry_md_debug in all files.

* agent/gpg-agent.c (fixed_gcry_pth_init): Use only if
GCRY_THREAD_OPTION_VERSION is 0
* scd/scdaemon.c (fixed_gcry_pth_init): Ditto.
--

Libgcrypt 1.6 will have some minor API changes.  In particular some
deprecated macros and functions will be removed.  PTH will also be
dropped in favor of a thread model neutral locking method.
2012-05-24 10:55:11 +02:00
Werner Koch
a4b22d8edf Print the hash algorithm in colon mode key listing.
* g10/keylist.c (list_keyblock_colon): Print digest_algo.
2012-05-24 10:50:14 +02:00
Werner Koch
3f75b9ca00 common: Remove generated files only during maintainer-clean.
* common/Makefile.am (CLEANFILES): Rename to MAINTAINERCLEANFILES.
--

In general this is not required because automake does this for files
in BUILT_SOURCES anyway.  However, having them in CLEANFILES is wrong.
This is bug#1398.
2012-05-08 16:02:54 +02:00
Werner Koch
c08546d602 Fix copyright years.
* scripts/git-log-footer: Add more years; we actually published the
first code in 1997.
2012-05-08 15:57:18 +02:00
Werner Koch
1731ed8849 Cast second value of a ?: to void in estream.c.
* common/estream.c (ESTREAM_MUTEX_LOCK): Cast pth_mutex_acquire result
to void.  Some compilers choke on mixing void and int in an
conditional operator.  Reported by Nelson H. F. Beebe.
2012-03-30 15:29:35 +02:00
Werner Koch
3656aa9343 Fix --with-pth-prefix help string.
--
2012-03-30 15:21:30 +02:00
Werner Koch
295c43bc36 Write the announce message.
--
2012-03-27 11:19:32 +02:00
Werner Koch
659e2c56b3 Post release updates
--
2012-03-27 11:13:50 +02:00
Werner Koch
539073d0f5 Release 2.0.19. 2012-03-27 10:19:40 +02:00
Werner Koch
f7ad5cb3c6 Update zh_TW translation. 2012-03-27 10:15:11 +02:00
Werner Koch
3bd5000c85 Update config.{sub,guess} to version 2012-02-10.
* scripts/config.guess, scripts/config.sub: Update.
2012-03-27 10:10:54 +02:00
Werner Koch
e23ca51ba0 Update texinfo source from master.
* doc/gpg-agent.texi, doc/gpg.texi, doc/gpgsm.texi
* doc/scdaemon.texi,  doc/tools.texi: Update.
* doc/yat2m.c: Update.
2012-03-27 10:05:59 +02:00
Werner Koch
cc4de72e7d Add target to update the texinfo files from master.
* doc/Makefile.am (update-source): New.
2012-03-27 10:03:48 +02:00
Werner Koch
1622d63b27 Gettext triggered update of uk.po.
--
2012-03-27 09:33:56 +02:00
Werner Koch
e1367da57f Fix make rules for audit-events.h et al.
* common/Makefile.am (audit-events.h, status-codes.h): Fix target file
name.
2012-03-26 20:31:46 +02:00
Werner Koch
8e183f41ff Update samplekeys and NEWS.
* doc/samplekeys.asc: Update.
2012-03-26 15:20:18 +02:00
Werner Koch
88633bf3d4 Allow compressed data with algorithm 0.
* g10/mainproc.c (proc_compressed): Remove superfluous check for
an algorithm number of 0.  This is bug#1326.
2012-03-26 15:14:55 +02:00
Werner Koch
8b9fb19a90 Typo fixes in de.po.
--
This is bug#1276 and http://bugs.debian.org/594343
2012-03-26 14:37:48 +02:00
David Shaw
258192d4d4 Honor --cert-digest-algo when recreating a cert.
* g10/sign.c (update_keysig_packet): Honor --cert-digest-algo when
  recreating a cert.

This is used by various things in --edit-key like setpref, primary,
etc.  Suggested by Christian Aistleitner.
2012-01-31 21:41:03 -05:00
Werner Koch
4a9d69ca87 Update copyright year. 2012-01-31 18:08:24 +01:00
Werner Koch
92844f475b Require an installed gitlog_to_changelog for make dist.
* scripts/gitlog-to-changelog: Remove.
* Makefile.am (GITLOG_TO_CHANGELOG): New.
(gen-ChangeLog): Use it.  Add set -e.
2012-01-31 18:01:17 +01:00
Werner Koch
a4b3a420a1 Add Ukrainian translation.
* po/uk.po: New.
* po/LINGUAS: Add uk.po.
2012-01-31 15:43:33 +01:00
Werner Koch
4b5267de86 Update NEWS for the next release.
--
2012-01-31 15:41:29 +01:00
Werner Koch
582857b6da estream: Avoid printing leading zeroes by %p on 32 bit systems.
* common/estream-printf.c (pr_pointer): Synchronize definition of
AULONG with its use.
2012-01-31 15:29:30 +01:00
Werner Koch
f772757ea1 gpg: Add a DECRYPTION_INFO status.
* common/status.h (STATUS_DECRYPTION_INFO): New.
* g10/encr-data.c: Include status.h.
(decrypt_data): Emit STATUS_DECRYPTION_INFO line.
--

DECRYPTION_INFO <mdc_method> <sym_algo>
    Print information about the symmetric encryption algorithm and
    the MDC method.  This will be emitted even if the decryption
    fails.
2012-01-31 15:14:20 +01:00
Werner Koch
66e93807a9 Do not copy default merge commit log entries into the ChangeLog.
* scripts/gitlog-to-changelog: Skip merge commits.
2012-01-20 11:22:41 +01:00
Werner Koch
4e7ec0bb83 Add files to .gitignore 2012-01-20 11:20:55 +01:00
David Shaw
333b870929 Changes to --min-cert-level should cause a trustdb rebuild (issue 1366)
* g10/gpgv.c, g10/trustdb.c (read_trust_options): Add min_cert_level

* g10/trustdb.c (check_trustdb_stale): Request a rebuild if
  pending_check_trustdb is true (set when we detect a trustdb
  parameter has changed).

* g10/keylist.c (public_key_list): Use 'l' in the "tru" with-colons
  listing for min_cert_level not matching.

* g10/tdbio.c (tdbio_update_version_record, create_version_record,
  tdbio_db_matches_options, tdbio_dump_record, tdbio_read_record,
  tdbio_write_record): Add a byte for min_cert_level in the tdbio
  version record.
2012-01-19 23:03:56 -05:00