Hi Justin,

the smart card inside should be fine.
the problem is the usb part. I guess the current openct
driver won't work.

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)
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.

note: sometimes it is easy to write new usb drivers. but it can vary
a lot, and I'm not sure when to find time for it.

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.

> 3) Would I want to implement a PC/SC driver, just like Eutron?  Or would it
> make more sense to do this in OpenCT?

well, we started openct, because writing ifdhandler would be 99% 
of code duplication. look at eutron and etoken driver, both are
less than 200 lines. that is maybe 50 or 60 real lines of code, the
rest is open brakets, closing brakets, empty lines, etc.

> 4) What about the PKCS#11 layer?

opensc has a pkcs#11 module: opensc-pkcs11.so.
and if starsign is used to initialize the tokens, the result
is compatible with opensc. also if opensc is used to initialize
them, starsign should be able to use them fine as well.
except you need the same software for real changes
(add key, add cert etc.), as changes on tokens initialized
by other software are limited to change/unblock pin.

> 5) The device claims to support PKCS#15.

it is not a device issue. it is a software topic. both starsign
and opensc implement that standard, thats why our pkcs#11
modules can read/use cards initialized with each others software.

> 6) Anyone know about the legality of reverse-engineering protocols like
> this? What about using the binary driver as a reference?

reverse engineering for compatiblity is 100% legal in germany,
I think also in whole europe, and many other countries, maybe
even including USA (sure, the license text usualy forbids it, but
at least in germany we have a framework called AGBG that
sacks 99% of the nonsense in license texts anyway, so we don't
care much about wiered clauses in licenses or terms of services).

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

Reply via email to