Hi Andreas,

On Thursday 16 March 2006 11:56, Andreas Jellinghaus wrote:
> to write a new driver you could help with:
> a) cat/proc/bus/usb/devices - only the part for those devices,
>    so we can see how they look like / how to identify the hardware.
>    (usualy this is done with vendor and product id, but eutron had
>    several different tokens with the same values in the past making
>    this difficult)

Here it is:

T:  Bus=02 Lev=02 Prnt=110 Port=01 Cnt=02 Dev#=112 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=073d ProdID=0005 Rev= 1.71
S:  Manufacturer=Eutron S.p.a.
S:  Product=Crypto USB token
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 64mA
I:  If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)

I wonder if the FF class is causing the problem?  According to 'lsusb -v', the 
device has no detectable "endpoints" (so maybe they must be blindly accessed?  
I don't know much about usb..)

> b) use windows, install the sniffer (see openct page) and export
>    the resulting log as text file. best if the logs starts with a device
>    being inserted and then some playing around with some tool.

http://affinix.com/~justin/usbsnoop.log (1.5MB)

This is insert, loading SafeSign tokenadmin, waiting for tokenadmin to "see" 
the card, viewing the list of public objects on the card, closing tokenadmin, 
removing the card.  I think SafeSign also has a background service of some 
sort, so that might account for the extra log activity even when tokenadmin 
wasn't running.

> also if you want to give it a try, take a look at openct code, the
> ikey*, etoken or eutron drivers. they are all plain simple: some magic
> command sequences for initializing the hardware, and then simple
> usb control transfers for sending / receiving apdus. if eutron kepts
> the hardware as simple, the driver is only a couple of hours work
> at most.

Yes, ifd-eutron.c looks quite simple.  Syslog reports "eutron: failed to 
activate token", which is in eutron_card_reset(), so I should probably first 
look for problems there.

Could you briefly explain what each phase of this function is?  There seems to 
be a lot of calls to ifd_usb_control() in chunks or in loops.

-Justin
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to