From 5bdb1710268531eb657197f9fab3b1409db97777 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 11 Oct 2004 08:44:35 +0000 Subject: [PATCH] * configure.ac: New option --disable-finger. * keyserver.c (keyserver_spawn): Print an empty string in log_info if the host is not set (e.g. finger). * gpgkeys_finger.c: New. --- ChangeLog | 4 + configure.ac | 11 ++ g10/ChangeLog | 12 ++ g10/ccid-driver.c | 380 ++++++++++++++++++++++++++++++++++++--- g10/ccid-driver.h | 5 + g10/iso7816.h | 2 + g10/keyserver.c | 6 +- keyserver/ChangeLog | 4 + keyserver/Makefile.am | 5 +- keyserver/gpgkeys_finger | Bin 0 -> 140825 bytes 10 files changed, 398 insertions(+), 31 deletions(-) create mode 100755 keyserver/gpgkeys_finger diff --git a/ChangeLog b/ChangeLog index 42b961b5c..fc63de9ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-10-11 Werner Koch + + * configure.ac: New option --disable-finger. + 2004-09-17 Werner Koch * configure.ac: Don't check for usb_create_match or diff --git a/configure.ac b/configure.ac index 7404ae375..12bc382cc 100644 --- a/configure.ac +++ b/configure.ac @@ -303,6 +303,13 @@ if test "$use_exec" = yes ; then try_http=$enableval, try_http=yes) AC_MSG_RESULT($try_http) + AC_MSG_CHECKING([whether Finger key fetching support is requested]) + AC_ARG_ENABLE(http, + AC_HELP_STRING([--disable-finger], + [disable Finger key fetching interface]), + try_finger=$enableval, try_finger=yes) + AC_MSG_RESULT($try_finger) + AC_MSG_CHECKING([whether email keyserver support is requested]) AC_ARG_ENABLE(mailto, [ --disable-mailto disable email keyserver interface], @@ -492,6 +499,10 @@ if test x"$try_http" = xyes ; then AC_SUBST(GPGKEYS_HTTP,"gpgkeys_http$EXEEXT") fi +if test x"$try_finger" = xyes ; then + AC_SUBST(GPGKEYS_FINGER,"gpgkeys_finger$EXEEXT") +fi + dnl Must check for network library requirements before doing link tests dnl for ldap, for example. If ldap libs are static (or dynamic and without dnl ELF runtime link paths), then link will fail and LDAP support won't diff --git a/g10/ChangeLog b/g10/ChangeLog index 6af768e4d..b98a377f4 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2004-10-11 Werner Koch + + * keyserver.c (keyserver_spawn): Print an empty string in log_info + if the host is not set (e.g. finger). + 2004-10-10 David Shaw * card-util.c, keyedit.c, openfile.c, pkclist.c, delkey.c, @@ -51,6 +56,13 @@ revoked/expired/expires string change of 2004-09-29 was too simple. Use two styles for each tag. +2004-10-06 Werner Koch + + * ccid-driver.c (ccid_open_reader): Store the vendor ID. + (ccid_transceive_secure): New. + (parse_ccid_descriptor): Workaround for an SCM reader problem. + (send_escape_cmd): New. + 2004-10-05 David Shaw * passphrase.c (agent_get_passphrase): Use keystrs for agent diff --git a/g10/ccid-driver.c b/g10/ccid-driver.c index 77fea944b..287a8d87d 100644 --- a/g10/ccid-driver.c +++ b/g10/ccid-driver.c @@ -154,8 +154,6 @@ - - enum { RDR_to_PC_NotifySlotChange= 0x50, RDR_to_PC_HardwareError = 0x51, @@ -183,12 +181,21 @@ enum { }; +/* We need to know the vendor to do some hacks. */ +enum { + VENDOR_SCM = 0x04e6 +}; + + /* Store information on the driver's state. A pointer to such a structure is used as handle for most functions. */ struct ccid_driver_s { usb_dev_handle *idev; char *rid; + unsigned short id_vendor; + unsigned short id_product; + unsigned short bcd_device; int seqno; unsigned char t1_ns; unsigned char t1_nr; @@ -251,6 +258,8 @@ parse_ccid_descriptor (ccid_driver_t handle, handle->max_ifsd = 32; handle->ifsd = 0; handle->has_pinpad = 0; + DEBUGOUT_3 ("idVendor: %04X idProduct: %04X bcdDevice: %04X\n", + handle->id_vendor, handle->id_product, handle->bcd_device); if (buflen < 54 || buf[0] < 54) { DEBUGOUT ("CCID device descriptor is too short\n"); @@ -417,8 +426,25 @@ parse_ccid_descriptor (ccid_driver_t handle, "this is not available\n"); return -1; } - else - return 0; + + + /* SCM drivers get stuck in their internal USB stack if they try to + send a frame of n*wMaxPacketSize back to us. Given that + wMaxPacketSize is 64 for these readers we set the IFSD to a value + lower than that: + 64 - 10 CCID header - 4 T1frame - 2 reserved = 48 */ + if (handle->id_vendor == VENDOR_SCM + /* FIXME: check whether it is the same + firmware version for all drivers. */ + && handle->bcd_device < 0x0513 + && handle->max_ifsd > 48) + { + DEBUGOUT ("enabling workaround for buggy SCM readers\n"); + handle->max_ifsd = 48; + } + + + return 0; } @@ -436,7 +462,7 @@ get_escaped_usb_string (usb_dev_handle *idev, int idx, if (!idx) return NULL; - /* Fixme: The next line for the current Valgrid without support + /* Fixme: The next line is for the current Valgrid without support for USB IOCTLs. */ memset (buf, 0, sizeof buf); @@ -825,6 +851,9 @@ ccid_open_reader (ccid_driver_t *handle, const char *readerid) } (*handle)->idev = idev; (*handle)->rid = rid; + (*handle)->id_vendor = dev->descriptor.idVendor; + (*handle)->id_product = dev->descriptor.idProduct; + (*handle)->bcd_device = dev->descriptor.bcdDevice; DEBUGOUT_2 ("using CCID reader %d (ID=%s)\n", readerno, rid ); @@ -1082,6 +1111,43 @@ bulk_in (ccid_driver_t handle, unsigned char *buffer, size_t length, } +/* Note that this fucntion won't return the error codes NO_CARD or + CARD_INACTIVE */ +static int +send_escape_cmd (ccid_driver_t handle, + const unsigned char *data, size_t datalen) +{ + int i, rc; + unsigned char msg[100]; + size_t msglen; + unsigned char seqno; + + if (datalen > sizeof msg - 10) + return CCID_DRIVER_ERR_INV_VALUE; /* Escape data too large. */ + + msg[0] = PC_to_RDR_Escape; + msg[5] = 0; /* slot */ + msg[6] = seqno = handle->seqno++; + msg[7] = 0; /* RFU */ + msg[8] = 0; /* RFU */ + msg[9] = 0; /* RFU */ + memcpy (msg+10, data, datalen); + msglen = 10 + datalen; + set_msg_len (msg, datalen); + + DEBUGOUT ("sending"); + for (i=0; i < msglen; i++) + DEBUGOUT_CONT_1 (" %02X", msg[i]); + DEBUGOUT_LF (); + rc = bulk_out (handle, msg, msglen); + if (rc) + return rc; + rc = bulk_in (handle, msg, sizeof msg, &msglen, RDR_to_PC_Escape, seqno); + + return rc; +} + + /* experimental */ int ccid_poll (ccid_driver_t handle) @@ -1617,10 +1683,232 @@ ccid_transceive (ccid_driver_t handle, } +/* Send the CCID Secure command to the reader. APDU_BUF should contain the APDU template. PIN_MODE defines now the pin gets formatted: + + 1 := The PIN is ASCII encoded and of variable length. The + length of the PIN entered will be put into Lc by the reader. + The APDU should me made up of 4 bytes without Lc. + + PINLEN_MIN and PINLEN_MAX define the limits for the pin length. 0 + may be used t enable usbale defaults. PIN_PADLEN should be 0 + + When called with RESP and NRESP set to NULL, the function will + merely check whether the reader supports the secure command for the + given APDU and PIN_MODE. */ +int +ccid_transceive_secure (ccid_driver_t handle, + const unsigned char *apdu_buf, size_t apdu_buflen, + int pin_mode, int pinlen_min, int pinlen_max, + int pin_padlen, + unsigned char *resp, size_t maxresplen, size_t *nresp) +{ + int rc; + unsigned char send_buffer[10+259], recv_buffer[10+259]; + unsigned char *msg, *tpdu, *p; + size_t msglen, tpdulen, n; + unsigned char seqno; + int i; + size_t dummy_nresp; + int testmode; + + testmode = !resp && !nresp; + + if (!nresp) + nresp = &dummy_nresp; + *nresp = 0; + + if (apdu_buflen >= 4 && apdu_buf[1] == 0x20 && (handle->has_pinpad & 1)) + ; + else if (apdu_buflen >= 4 && apdu_buf[1] == 0x24 && (handle->has_pinpad & 2)) + return CCID_DRIVER_ERR_NOT_SUPPORTED; /* Not yet by our code. */ + else + return CCID_DRIVER_ERR_NOT_SUPPORTED; + + if (pin_mode != 1) + return CCID_DRIVER_ERR_NOT_SUPPORTED; + + if (pin_padlen != 0) + return CCID_DRIVER_ERR_NOT_SUPPORTED; + + if (!pinlen_min) + pinlen_min = 1; + if (!pinlen_max) + pinlen_max = 25; + + /* Note that the 25 is the maximum value the SPR532 allows. */ + if (pinlen_min < 1 || pinlen_min > 25 + || pinlen_max < 1 || pinlen_max > 25 + || pinlen_min > pinlen_max) + return CCID_DRIVER_ERR_INV_VALUE; + + /* We have only tested this with an SCM reader so better don't risk + anything and do not allow the use with other readers. */ + if (handle->id_vendor != VENDOR_SCM) + return CCID_DRIVER_ERR_NOT_SUPPORTED; + + if (testmode) + return 0; /* Success */ + + msg = send_buffer; + if (handle->id_vendor == VENDOR_SCM) + { + DEBUGOUT ("sending escape sequence to switch to a case 1 APDU\n"); + rc = send_escape_cmd (handle, "\x80\x02\x00", 3); + if (rc) + return rc; + } + + msg[0] = PC_to_RDR_Secure; + msg[5] = 0; /* slot */ + msg[6] = seqno = handle->seqno++; + msg[7] = 4; /* bBWI */ + msg[8] = 0; /* RFU */ + msg[9] = 0; /* RFU */ + msg[10] = 0; /* Perform PIN verification. */ + msg[11] = 0; /* Timeout in seconds. */ + msg[12] = 0x82; /* bmFormatString: Byte, pos=0, left, ASCII. */ + if (handle->id_vendor == VENDOR_SCM) + { + /* For the SPR532 the next 2 bytes need to be zero. We do this + for all SCM product. Kudos to to Martin Paljak for this + hint. */ + msg[13] = msg[14] = 0; + } + else + { + msg[13] = 0x00; /* bmPINBlockString: + 0 bits of pin length to insert. + 0 bytes of PIN block size. */ + msg[14] = 0x00; /* bmPINLengthFormat: + Units are bytes, position is 0. */ + } + msg[15] = pinlen_min; /* wPINMaxExtraDigit-Minimum. */ + msg[16] = pinlen_max; /* wPINMaxExtraDigit-Maximum. */ + msg[17] = 0x02; /* bEntryValidationCondition: + Validation key pressed */ + if (pinlen_min && pinlen_max && pinlen_min == pinlen_max) + msg[17] |= 0x01; /* Max size reached. */ + msg[18] = 0xff; /* bNumberMessage: Default. */ + msg[19] = 0x04; /* wLangId-High. */ + msg[20] = 0x09; /* wLangId-Low: English FIXME: use the first entry. */ + msg[21] = 0; /* bMsgIndex. */ + /* bTeoProlog follows: */ + msg[22] = handle->nonnull_nad? ((1 << 4) | 0): 0; + msg[23] = ((handle->t1_ns & 1) << 6); /* I-block */ + msg[24] = 4; /* apdulen. */ + /* APDU follows: */ + msg[25] = apdu_buf[0]; /* CLA */ + msg[26] = apdu_buf[1]; /* INS */ + msg[27] = apdu_buf[2]; /* P1 */ + msg[28] = apdu_buf[3]; /* P2 */ + msglen = 29; + set_msg_len (msg, msglen - 10); + + DEBUGOUT ("sending"); + for (i=0; i < msglen; i++) + DEBUGOUT_CONT_1 (" %02X", msg[i]); + DEBUGOUT_LF (); + + rc = bulk_out (handle, msg, msglen); + if (rc) + return rc; + + msg = recv_buffer; + rc = bulk_in (handle, msg, sizeof recv_buffer, &msglen, + RDR_to_PC_DataBlock, seqno); + if (rc) + return rc; + + tpdu = msg + 10; + tpdulen = msglen - 10; + + if (tpdulen < 4) + { + usb_clear_halt (handle->idev, 0x82); + return CCID_DRIVER_ERR_ABORTED; + } +#ifdef DEBUG_T1 + fprintf (stderr, "T1: got %c-block seq=%d err=%d\n", + ((msg[11] & 0xc0) == 0x80)? 'R' : + (msg[11] & 0x80)? 'S' : 'I', + ((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40)), + ((msg[11] & 0xc0) == 0x80)? (msg[11] & 0x0f) : 0 + ); +#endif + + if (!(tpdu[1] & 0x80)) + { /* This is an I-block. */ + /* Last block sent was successful. */ + handle->t1_ns ^= 1; + + if (!!(tpdu[1] & 0x40) != handle->t1_nr) + { /* Reponse does not match our sequence number. */ + DEBUGOUT ("I-block with wrong seqno received\n"); + return CCID_DRIVER_ERR_CARD_IO_ERROR; + } + + handle->t1_nr ^= 1; + + p = tpdu + 3; /* Skip the prologue field. */ + n = tpdulen - 3 - 1; /* Strip the epilogue field. */ + /* fixme: verify the checksum. */ + if (resp) + { + if (n > maxresplen) + { + DEBUGOUT_2 ("provided buffer too short for received data " + "(%u/%u)\n", + (unsigned int)n, (unsigned int)maxresplen); + return CCID_DRIVER_ERR_INV_VALUE; + } + + memcpy (resp, p, n); + resp += n; + *nresp += n; + maxresplen -= n; + } + + if (!(tpdu[1] & 0x20)) + return 0; /* No chaining requested - ready. */ + + DEBUGOUT ("chaining requested but not supported for Secure operation\n"); + return CCID_DRIVER_ERR_CARD_IO_ERROR; + } + else if ((tpdu[1] & 0xc0) == 0x80) + { /* This is a R-block. */ + if ( (tpdu[1] & 0x0f)) + { /* Error: repeat last block */ + DEBUGOUT ("No retries supported for Secure operation\n"); + return CCID_DRIVER_ERR_CARD_IO_ERROR; + } + else if (!!(tpdu[1] & 0x40) == handle->t1_ns) + { /* Reponse does not match our sequence number. */ + DEBUGOUT ("R-block with wrong seqno received on more bit\n"); + return CCID_DRIVER_ERR_CARD_IO_ERROR; + } + else + { /* Send next chunk. */ + DEBUGOUT ("chaining not supported on Secure operation\n"); + return CCID_DRIVER_ERR_CARD_IO_ERROR; + } + } + else + { /* This is a S-block. */ + DEBUGOUT_2 ("T1 S-block %s received cmd=%d for Secure operation\n", + (tpdu[1] & 0x20)? "response": "request", + (tpdu[1] & 0x1f)); + return CCID_DRIVER_ERR_CARD_IO_ERROR; + } + + return 0; +} + + #ifdef TEST + static void print_error (int err) { @@ -1682,6 +1970,9 @@ main (int argc, char **argv) unsigned int slotstat; unsigned char result[512]; size_t resultlen; + int no_pinpad = 0; + int verify_123456 = 0; + int did_verify = 0; if (argc) { @@ -1706,6 +1997,16 @@ main (int argc, char **argv) ccid_set_debug_level (1); argc--; argv++; } + else if ( !strcmp (*argv, "--no-pinpad")) + { + no_pinpad = 1; + argc--; argv++; + } + else if ( !strcmp (*argv, "--verify-123456")) + { + verify_123456 = 1; + argc--; argv++; + } else break; } @@ -1755,28 +2056,55 @@ main (int argc, char **argv) print_result (rc, result, resultlen); } - ccid_poll (ccid); + if (!no_pinpad) + { + } -/* if (!ccid->has_pinpad) */ -/* { */ -/* fputs ("verifying that CHV1 is 123456....\n", stderr); */ -/* { */ -/* static unsigned char apdu[] = {0, 0x20, 0, 0x81, */ -/* 6, '1','2','3','4','5','6'}; */ -/* rc = ccid_transceive (ccid, apdu, sizeof apdu, */ -/* result, sizeof result, &resultlen); */ -/* print_result (rc, result, resultlen); */ -/* } */ -/* } */ -/* else */ -/* { */ -/* fputs ("verifying CHV1 using the PINPad ....\n", stderr); */ -/* { */ -/* rc = ccid_secure_transceive (ccid, */ -/* result, sizeof result, &resultlen); */ -/* print_result (rc, result, resultlen); */ -/* } */ -/* } */ + if (!no_pinpad) + { + static unsigned char apdu[] = { 0, 0x20, 0, 0x81 }; + + + if (ccid_transceive_secure (ccid, + apdu, sizeof apdu, + 1, 0, 0, 0, + NULL, 0, NULL)) + fputs ("can't verify using a PIN-Pad reader\n", stderr); + else + { + fputs ("verifying CHV1 using the PINPad ....\n", stderr); + + rc = ccid_transceive_secure (ccid, + apdu, sizeof apdu, + 1, 0, 0, 0, + result, sizeof result, &resultlen); + print_result (rc, result, resultlen); + did_verify = 1; + } + } + + if (verify_123456 && !did_verify) + { + fputs ("verifying that CHV1 is 123456....\n", stderr); + { + static unsigned char apdu[] = {0, 0x20, 0, 0x81, + 6, '1','2','3','4','5','6'}; + rc = ccid_transceive (ccid, apdu, sizeof apdu, + result, sizeof result, &resultlen); + print_result (rc, result, resultlen); + } + } + + if (!rc) + { + fputs ("getting OpenPGP DO 0x5E ....\n", stderr); + { + static unsigned char apdu[] = { 0, 0xCA, 0, 0x5E, 254 }; + rc = ccid_transceive (ccid, apdu, sizeof apdu, + result, sizeof result, &resultlen); + print_result (rc, result, resultlen); + } + } ccid_close_reader (ccid); diff --git a/g10/ccid-driver.h b/g10/ccid-driver.h index cbadb40c1..9cb23253b 100644 --- a/g10/ccid-driver.h +++ b/g10/ccid-driver.h @@ -86,6 +86,11 @@ int ccid_slot_status (ccid_driver_t handle, int *statusbits); int ccid_transceive (ccid_driver_t handle, const unsigned char *apdu, size_t apdulen, unsigned char *resp, size_t maxresplen, size_t *nresp); +int ccid_transceive_secure (ccid_driver_t handle, + const unsigned char *apdu, size_t apdulen, + int pin_mode, + int pinlen_min, int pinlen_max, int pin_padlen, + unsigned char *resp, size_t maxresplen, size_t *nresp); diff --git a/g10/iso7816.h b/g10/iso7816.h index 8f2b150e6..97de9abbd 100644 --- a/g10/iso7816.h +++ b/g10/iso7816.h @@ -25,6 +25,8 @@ #include "cardglue.h" #endif +gpg_error_t iso7816_map_sw (int sw); + gpg_error_t iso7816_select_application (int slot, const char *aid, size_t aidlen); gpg_error_t iso7816_select_file (int slot, int tag, int is_dir, diff --git a/g10/keyserver.c b/g10/keyserver.c index cfdfe561b..5e29efdf2 100644 --- a/g10/keyserver.c +++ b/g10/keyserver.c @@ -894,7 +894,7 @@ keyserver_spawn(int action,STRLIST list,KEYDB_SEARCH_DESC *desc, log_info(_("requesting key %s from %s server %s\n"), keystr_from_desc(&desc[i]), - keyserver->scheme,keyserver->host); + keyserver->scheme,keyserver->host?keyserver->host:""); } fprintf(spawn->tochild,"\n"); @@ -1039,7 +1039,7 @@ keyserver_spawn(int action,STRLIST list,KEYDB_SEARCH_DESC *desc, log_info(_("sending key %s to %s server %s\n"), keystr(block->pkt->pkt.public_key->keyid), - keyserver->scheme,keyserver->host); + keyserver->scheme,keyserver->host?keyserver->host:""); release_kbnode(block); } @@ -1080,7 +1080,7 @@ keyserver_spawn(int action,STRLIST list,KEYDB_SEARCH_DESC *desc, fprintf(spawn->tochild,"\n"); log_info(_("searching for \"%s\" from %s server %s\n"), - searchstr,keyserver->scheme,keyserver->host); + searchstr,keyserver->scheme,keyserver->host?keyserver->host:""); break; } diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index 37dfa91cb..4b3855a62 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -1,3 +1,7 @@ +2004-10-11 Werner Koch + + * gpgkeys_finger.c: New. + 2004-08-27 Stefan Bellon * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by diff --git a/keyserver/Makefile.am b/keyserver/Makefile.am index ddf2a4c98..c9f58259d 100644 --- a/keyserver/Makefile.am +++ b/keyserver/Makefile.am @@ -19,17 +19,18 @@ ## Process this file with automake to produce Makefile.in INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl -EXTRA_PROGRAMS = gpgkeys_ldap gpgkeys_hkp gpgkeys_http +EXTRA_PROGRAMS = gpgkeys_ldap gpgkeys_hkp gpgkeys_http gpgkeys_finger EXTRA_SCRIPTS = gpgkeys_mailto libexecdir = @libexecdir@/@PACKAGE@ -libexec_PROGRAMS = @GPGKEYS_LDAP@ @GPGKEYS_HKP@ @GPGKEYS_HTTP@ +libexec_PROGRAMS = @GPGKEYS_LDAP@ @GPGKEYS_HKP@ @GPGKEYS_HTTP@ @GPGKEYS_FINGER@ libexec_SCRIPTS = @GPGKEYS_MAILTO@ noinst_SCRIPTS = gpgkeys_test gpgkeys_ldap_LDADD = ../util/libutil.a @LDAPLIBS@ @NETLIBS@ @LIBINTL@ @CAPLIBS@ @GETOPT@ @W32LIBS@ gpgkeys_hkp_LDADD = ../util/libutil.a @NETLIBS@ @SRVLIBS@ @LIBINTL@ @CAPLIBS@ @GETOPT@ @W32LIBS@ gpgkeys_http_LDADD = ../util/libutil.a @NETLIBS@ @SRVLIBS@ @LIBINTL@ @CAPLIBS@ @GETOPT@ @W32LIBS@ +gpgkeys_finger_LDADD = ../util/libutil.a @NETLIBS@ @LIBINTL@ @CAPLIBS@ @GETOPT@ @W32LIBS@ install-exec-hook: if GPGKEYS_LDAP diff --git a/keyserver/gpgkeys_finger b/keyserver/gpgkeys_finger new file mode 100755 index 0000000000000000000000000000000000000000..2e46a1e10e890d754086b31431f4cca1470f20ea GIT binary patch literal 140825 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 z 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 Ubhy@7!2}{L6vA*SaBN=wA4u&EnE(I) literal 0 HcmV?d00001