Yubico Forum
https://forum.yubico.com/

[SOLVED] ykneo-ccid-modeswitch binary where?
https://forum.yubico.com/viewtopic.php?f=26&t=982
Page 1 of 2

Author:  NilsyDK [ Fri Mar 01, 2013 2:06 am ]
Post subject:  [SOLVED] ykneo-ccid-modeswitch binary where?

Hey

I was messing around with my new Yubikey Neo, and I wanted to disable the CCID portion. I thought, I remembered the correct mode (the first one). However I forgot that engineers count from 0, so insted of disabling CCID I disabled OTP.

"No problem", I thought, "I'll just download ykneo-ccid-modeswitch and enable it again."

But I can't compile it on my ubuntu 12.04 box without commeting out

    AC_LIBTOOL_WIN32_DLL
    AC_PROG_LIBTOOL

in configure.ac. And when I try to run the binary I get an error.

So anyone got a compiled version for windows or linux(amd64)?

Regards,

Nils

Author:  Klas [ Fri Mar 01, 2013 8:42 am ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Hello,

You need to install libtool as well (I'll add it to the dependency list). And we'll work on finishing up that tool with releases and binary packages.

Did it work for you to remove those lines and use the tool?

/klas

Author:  NilsyDK [ Sun Mar 03, 2013 2:40 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Cheers.

    apt-get install libtool

clears out the error I get when I run autoreconfig on a unmodified source.

However

    ykneo-ccid-modeswitch -m0


still return the following error:

    error: SCardEstablishContext failed, rc=8010001d

It makes no diffrence whether I run the command as root or not.

Any suggestions?

A bit of info on my system:

    user@host:~> uname -a
    Linux piranha 3.2.0-38-generic #61-Ubuntu SMP Tue Feb 19 12:18:21 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    user@host:~> lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 12.04.2 LTS
    Release: 12.04
    Codename: precise

Author:  MickFlemm [ Mon Mar 04, 2013 7:26 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Same problem here, it seems pcsc doesn't recognize the CCID reader:

Code:
mick@makhs ~/tmp/ykneo-ccid-tools $ opensc-tool -a
0x9fa9f900 20:19:04.877 [opensc-tool] ctx.c:714:sc_context_create: ===================================
0x9fa9f900 20:19:04.877 [opensc-tool] ctx.c:715:sc_context_create: opensc version: 0.13.0
0x9fa9f900 20:19:04.877 [opensc-tool] reader-pcsc.c:666:pcsc_init: PC/SC options: connect_exclusive=0 disconnect_action=1 transaction_end_action=0 reconnect_action=0 enable_pinpad=1 enable_pace=1
0x9fa9f900 20:19:04.877 [opensc-tool] reader-pcsc.c:948:pcsc_detect_readers: called
0x9fa9f900 20:19:04.877 [opensc-tool] reader-pcsc.c:956:pcsc_detect_readers: Probing pcsc readers
0x9fa9f900 20:19:04.877 [opensc-tool] reader-pcsc.c:978:pcsc_detect_readers: Establish pcsc context
0x9fa9f900 20:19:04.878 [opensc-tool] reader-pcsc.c:973:pcsc_detect_readers: SCardListReaders failed: 0x8010002e
0x9fa9f900 20:19:04.878 [opensc-tool] reader-pcsc.c:1101:pcsc_detect_readers: returning with: -1101 (No readers found)
No smart card readers found.
0x9fa9f900 20:19:04.878 [opensc-tool] ctx.c:787:sc_release_context: called
0x9fa9f900 20:19:04.878 [opensc-tool] reader-pcsc.c:745:pcsc_finish: called


This is what pcscd gives on debug output

Code:
02695395 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1050, PID: 0x0112, path: /dev/bus/usb/003/012


I'll try to patch pcsc-lite and let you know...

Author:  MickFlemm [ Mon Mar 04, 2013 8:23 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

I added the usb id on supported_readers.txt of ccid driver and this is what I got:

Code:
00000037 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1050, PID: 0x0112, path: /dev/bus/usb/003/014
00000016 hotplug_libudev.c:312:HPAddDevice() Adding USB device: Yubikey NEO
00003771 readerfactory.c:978:RFInitializeReader() Attempting startup of Yubikey NEO 00 00 using /usr/lib/readers/usb/ifd-ccid.bundle/Contents/Linux/libccid.so
00000303 readerfactory.c:868:RFBindFunctions() Loading IFD Handler 3.0
00000042 ifdhandler.c:1840:init_driver() Driver version: 1.4.9
00000462 ifdhandler.c:1857:init_driver() LogLevel: 0x0003
00000018 ifdhandler.c:1868:init_driver() DriverOptions: 0x0000
00000117 ifdhandler.c:83:CreateChannelByNameOrChannel() Lun: 0, device: usb:1050/0112:libudev:0:/dev/bus/usb/003/014
00000033 ccid_usb.c:228:OpenUSBByName() Using: /usr/lib/readers/usb/ifd-ccid.bundle/Contents/Info.plist
00000422 ccid_usb.c:246:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau@free.fr)
00000017 ccid_usb.c:247:OpenUSBByName() ifdProductString: Generic CCID driver
00000015 ccid_usb.c:248:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00044080 ccid_usb.c:521:OpenUSBByName() Found Vendor/Product: 1050/0112 (Yubikey NEO)
00000014 ccid_usb.c:523:OpenUSBByName() Using USB bus/device: 3/14
00001920 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000013 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1310011 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -30310144 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 808927557 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1195587120 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 842281504 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 886452562 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1137618382 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000020 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 268439800 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 896 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 929 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 67108864 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 50332416 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 460033 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 512 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 3150 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 128 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 25 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 851973 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 395313152 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 100925440 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 17727745 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 0 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 15 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1742480885 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1335896063 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -792387604 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -414589209 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -2091954691 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1044291015 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 495873371 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -137889875 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1018380013 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 412819127 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1452577253 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 2116025833 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 1574345087 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 600338175 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -587473041 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -248037761 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: -1628138529 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1198954291 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 452247030 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: -546324679 bps
00000046 ccid_usb.c:1021:get_data_rates() declared: 1388052435 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 153014620 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -134809555 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1601732543 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 935913924 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1217149639 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1259403257 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1522925703 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 652103203 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 715890941 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1141142166 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1887371001 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1690093641 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1137500271 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1173334813 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -276891009 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1916838214 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1605257447 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -844687555 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 2078271806 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1235197559 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1617962179 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: -843943958 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -84075534 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 156216487 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1114979289 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -44566019 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1496465969 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1043054054 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1828922147 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1954884035 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1398317966 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 731967133 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1916271908 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -538087708 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1349563122 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -406790210 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1746002355 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -4448290 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1403928696 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -2025780099 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1969809164 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 2068535829 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -832049265 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -475062371 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: -818332273 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1283678143 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1628707355 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1462773441 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1363341481 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 2036316143 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: 1726851447 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: -547545474 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 259571180 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1423576101 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1062205355 bps
00000007 ccid_usb.c:1021:get_data_rates() declared: -1218807884 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1763543034 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 2003525191 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1835483770 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -277292235 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1043799794 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1467071839 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1527186119 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1513899491 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1446703839 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 891024623 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1023479819 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1842888408 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -59950193 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1137290773 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1220832911 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 937276565 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 752205112 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1024367351 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -36717790 bps
00024817 ccid_usb.c:1021:get_data_rates() declared: -2093040294 bps
00000013 ccid_usb.c:1021:get_data_rates() declared: -612706950 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: -1211173097 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: 1578821179 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: 781210186 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: -711688373 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: -1206412517 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: 2054966842 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: 650498041 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: -1283568473 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: -1516440721 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: 1963457609 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: -1918907538 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: 1771568971 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: -1836535298 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: -314982715 bps
00000010 ccid_usb.c:1021:get_data_rates() declared: -357459011 bps
00000009 ccid_usb.c:1021:get_data_rates() declared: -843188142 bps
00000014 ccid_usb.c:1021:get_data_rates() declared: -691638793 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -34043922 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1573627247 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -125924402 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 670481908 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -580927693 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 495816679 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 905836749 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1359159302 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1047656231 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -882463490 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -818386047 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -674758922 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -873694648 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 384017846 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -547419822 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1702786006 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -154096950 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 331055073 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1435545970 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 914323357 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1844910497 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1775752774 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1722117367 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -71596229 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1498128235 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1987009411 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -696952761 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1117029442 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -145015446 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1753934155 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1468420854 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 870076901 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1460797315 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 341175974 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -312877061 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1443715659 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -877003015 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -46875378 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -939889361 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 534284191 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -338332162 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -193866305 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -528352609 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -747602965 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -50497041 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1327291630 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1267570575 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -662852261 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -2046959882 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1306663502 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1284424241 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1698961815 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1139053065 bps
00000016 ccid_usb.c:1021:get_data_rates() declared: 1945195127 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 531482430 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -119919172 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1667096575 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1347085579 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1624877961 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 1740492775 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -979639301 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -235024550 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: 1827094311 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -378542697 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1142964248 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -1879714023 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1694041606 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 987348951 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -235416741 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: 684990359 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1377809642 bps
00000005 ccid_usb.c:1021:get_data_rates() declared: -674818757 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1853910732 bps
00000006 ccid_usb.c:1021:get_data_rates() declared: -1767958273 bps
00024552 ifdhandler.c:358:IFDHGetCapabilities() tag: 0xFB3, usb:1050/0112:libudev:0:/dev/bus/usb/003/014 (lun: 0)
00000016 readerfactory.c:332:RFAddReader() Using the reader polling thread
00002016 ifdhandler.c:358:IFDHGetCapabilities() tag: 0xFAE, usb:1050/0112:libudev:0:/dev/bus/usb/003/014 (lun: 0)
00000013 ifdhandler.c:446:IFDHGetCapabilities() Reader supports 1 slot(s)


Seems it is recognized...

Code:
opensc-tool -a
0x9c595900 21:18:41.910 [opensc-tool] ctx.c:714:sc_context_create: ===================================
0x9c595900 21:18:41.910 [opensc-tool] ctx.c:715:sc_context_create: opensc version: 0.13.0
0x9c595900 21:18:41.910 [opensc-tool] reader-pcsc.c:666:pcsc_init: PC/SC options: connect_exclusive=0 disconnect_action=1 transaction_end_action=0 reconnect_action=0 enable_pinpad=1 enable_pace=1
0x9c595900 21:18:41.910 [opensc-tool] reader-pcsc.c:948:pcsc_detect_readers: called
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:956:pcsc_detect_readers: Probing pcsc readers
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:978:pcsc_detect_readers: Establish pcsc context
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:1026:pcsc_detect_readers: Found new pcsc reader 'Yubikey NEO 00 00'
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:283:refresh_attributes: Yubikey NEO 00 00 check
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:307:refresh_attributes: current  state: 0x00000012
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:308:refresh_attributes: previous state: 0x00000000
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:362:refresh_attributes: card absent
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:1057:pcsc_detect_readers: Requesting reader features ...
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:1067:pcsc_detect_readers: Yubikey NEO 00 00:SCardConnect(DIRECT): 0x00000000
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:824:detect_reader_features: called
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:845:detect_reader_features: Reader feature 0a found
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:845:detect_reader_features: Reader feature 12 found
0x9c595900 21:18:41.911 [opensc-tool] reader-pcsc.c:919:detect_reader_features: Reader does not have a display.
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:1101:pcsc_detect_readers: returning with: 0 (Success)
0x9c595900 21:18:41.913 [opensc-tool] sc.c:231:sc_detect_card_presence: called
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:370:pcsc_detect_card_presence: called
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:283:refresh_attributes: Yubikey NEO 00 00 check
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:299:refresh_attributes: returning with: 0 (Success)
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:375:pcsc_detect_card_presence: returning with: 0 (Success)
0x9c595900 21:18:41.913 [opensc-tool] sc.c:236:sc_detect_card_presence: returning with: 0 (Success)
0x9c595900 21:18:41.913 [opensc-tool] sc.c:231:sc_detect_card_presence: called
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:370:pcsc_detect_card_presence: called
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:283:refresh_attributes: Yubikey NEO 00 00 check
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:299:refresh_attributes: returning with: 0 (Success)
0x9c595900 21:18:41.913 [opensc-tool] reader-pcsc.c:375:pcsc_detect_card_presence: returning with: 0 (Success)
0x9c595900 21:18:41.913 [opensc-tool] sc.c:236:sc_detect_card_presence: returning with: 0 (Success)
Card not present.
0x9c595900 21:18:41.914 [opensc-tool] ctx.c:787:sc_release_context: called
0x9c595900 21:18:41.914 [opensc-tool] reader-pcsc.c:745:pcsc_finish: called


However the command still fails...

Code:
error: SCardConnect failed, rc=8010000c


And gpg also fails...

Code:
gpg --card-status
gpg: selecting openpgp failed: Unsupported certificate
gpg: OpenPGP card not available: Unsupported certificate

Author:  MickFlemm [ Mon Mar 04, 2013 8:45 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Ok seems that when I touch the button, the card is present...

Code:
99999999 ifdhandler.c:1122:IFDHPowerICC() action: PowerUp, usb:1050/0112:libudev:0:/dev/bus/usb/003/015 (lun: 0)
00008006 eventhandler.c:372:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000020 eventhandler.c:387:EHStatusHandlerThread() Card inserted into Yubikey NEO 00 00
00000020 Card ATR: 3B FD 13 00 00 81 31 FE 45 41 37 30 30 36 43 47 20 32 34 32 52 31 D6
05003955 ifdhandler.c:1122:IFDHPowerICC() action: PowerDown, usb:1050/0112:libudev:0:/dev/bus/usb/003/015 (lun: 0)


So now opensc detects the card and tries to exchange ATRs but it's an unknown card to opensc (it should detect an openpgp card)...

Code:
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:189:sc_connect_card: trying driver 'javacard'
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:870:match_atr_table: ATR     : 3b:fd:13:00:00:81:31:fe:45:41:37:30:30:36:43:47:20:32:34:32:52:31:d6
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:881:match_atr_table: ATR try : 3b:db:18:00:80:b1:fe:45:1f:83:00:31:c0:64:c7:fc:10:00:01:90:00:fa
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:884:match_atr_table: ignored - wrong length
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:881:match_atr_table: ATR try : 3b:75:94:00:00:62:02:02:02:01
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:884:match_atr_table: ignored - wrong length
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:881:match_atr_table: ATR try : 3b:95:95:40:ff:ae:01:03:00:00
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:884:match_atr_table: ignored - wrong length
0xaf7d8900 21:38:19.598 [opensc-tool] card.c:189:sc_connect_card: trying driver 'default'
0xaf7d8900 21:38:19.599 [opensc-tool] card.c:196:sc_connect_card: matched: Default driver for unknown cards


Again gnupg doesn't work...

Code:
gpg --card-status
gpg: selecting openpgp failed: Unsupported certificate
gpg: OpenPGP card not available: Unsupported certificate


But at least the command did work...

Code:
./ykneo-ccid-modeswitch -m2   

SCardTransmit [NEO select aid]: 12 bytes
0000: 03 00 03 01 05 07 02 0f-00 00 90 00             <............    >

Version:       3.0.3
Seq:           1
Mode:          02
Flags:         00
CR timeout:    15
Eject time:    0

Commit? (y/n) [n]: y

SCardTransmit [NEO write config]: 8 bytes
0000: 03 00 03 02 05 07 90 00                         <........        >

Seq:           2
Update successful


However now the Yubikey has a different usb id so I again have to patch ccid to support it...

May I ask what version of pcsc-lite / ccid / opensc /gnupg have you used for your tests ? Did you test them on Linux ?

Author:  MickFlemm [ Mon Mar 04, 2013 9:08 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Also another thing that seems weird...

Code:
Card ATR: 3B FD 13 00 00 81 31 FE 45 41 37 30 30 36 43 47 20 32 34 32 52 31 D6


This translates to

Code:
;ø��1þEJCOPv24


Seems that the openpgp applet is not initialized ! Any ideas ?

Author:  Klas [ Mon Mar 11, 2013 1:09 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Hello.

Glad to see your interest and detailed posts!

I'll try to answer your previous posts, if I miss something, point it out to me again..

As you noticed, in mode 81 (flag-eject + ccid) you need to press the button to "insert" the card, press again and it's removed.

The ATR of the YubiKey NEO is not the same as the standard openpgp smart cards, this is because it's another implementation and as it's a javacard it can have more applications loaded than just the openpgp app, the YubiKey app being one. This makes it incompatible with the opensc openpgp driver (we're looking at other options for opensc support for the neo).

The NEO presents three different productIds depending on mode:
0x0110 pure OTP
0x0111 OTP+CCID
0x0112 pure CCID

0x0111 is added in pcsc-lite svn and 0x0112 should be (we messed up the submission a bit..)

The gnupg error you're getting seems to be a permission error. On debian (at least?) udev rules seem to be added by default for the pcscd group. We've mostly used gnupg with gpg-agent and scdaemon with pcscd to interface with the neo, but we've tested it with the builtin ccid driver in gnupg as well.

/klas

Author:  Jakob [ Fri Mar 15, 2013 1:46 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Ok - this issue has now finally been tracked down. What happens is that even though the device shows it does not support a list of clock- and data rates, this is queried anyway. The NEO does not stall (reject) these requests, causing garbage to show up there.

We've fixed this in the most recent firmware. If this causes any problems in your application, please let us know and we'll arrange with a replacement.

Thanks for reporting this issue.

With the best regards,

JakobE
Hardware- and firmware guy @ Yubico

Author:  NilsyDK [ Fri Mar 15, 2013 10:12 pm ]
Post subject:  Re: [QUESTION] ykneo-ccid-modeswitch binary where?

Jakob wrote:
Ok - this issue has now finally been tracked down. What happens is that even though the device shows it does not support a list of clock- and data rates, this is queried anyway. The NEO does not stall (reject) these requests, causing garbage to show up there.

We've fixed this in the most recent firmware. If this causes any problems in your application, please let us know and we'll arrange with a replacement.

Thanks for reporting this issue.

With the best regards,

JakobE
Hardware- and firmware guy @ Yubico


Does this mean that my yubikey neo in CCID only mode is locked int to CCID only mode?

Page 1 of 2 All times are UTC + 1 hour
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/