Hello,
Just wanted to keep everyone up to date. I have had HUGE progress in the
last 2 weeks ! I will attach some sample configuration files for PC/SC
Unix etc. I am attaching a simple C program to begin communication
with the reader and establish card communication. Here is a list of the
current 'new' features: ......
PC/SC Resource Manager runs as it's own process now under an account which
does NOT have to be root but must have some hardware priveledges.
Using Mico CORBA compiled with SSL the client (Application) connects to
the Resource Manager using a secure encrypted channel.
I created a simple lexical configuration file reader. Upon execution of
the PC/SC server - the config files specified at the command line are
opened and reader/card information is read from them and stored in it's
database.
The application has really NO CLUE that it is talking to CORBA. It has to
initialize two variables CORBA::orb and CORBA::boa at the beginning of
it's main. Otherwise it creates objects of type ResourceDB and
ResourceQuery, etc like it would normally. Those 'local' classes just
forward requests to the CORBA PC/SC server.
The server may run in local or wide area mode. Basically it can accept
either connections from the localhost or from other sources.
Support for new readers/cards will be done using RedHat Package Manager
(RPM). Simply rpm -i GDStarCOS.rpm would be all one would need to
do to install new card or reader support.
The application does not have to know what card it is talking to for using
basic functionality ( Select, Create, DIR, etc ) This is all done
dynamically. The application does not have to know what it is talking to
unless it supports extended functionality in which it can create generic
classes for.
I have tested it with up to 4 applications running simultaneously. The
server is not yet threading but it seems to time share well with multiple
applications. I will probably work on threading the server this summer.
I'm planning on a release in the next 2 weeks. Unfortunately, I'm taking
a Compilers course now and it is taking up quite a bit of my time so I
have been working extra hard to make Beta Release date of March 6 since my
studies will become more intense as the semester progresses. After the
Beta release I will probably focus my time on the Formatting Utility for
PC/SC Unix and some card/reader support. Please email me if you have any
questions or if you would like a chart/flow-diagram on how everything ties
together. ( I will probably spend an ample amount of time with
documenting this in March ) The following is a sample program which
connects to the reader and attaches the card in that reader:
/* Test PC/SC utilization program - David Corcoran */
#include <SCard.h> /* PC/SC Header File */
#include <stdio.h>
CORBA::ORB_var orb; /* This is all it has to know about CORBA */
CORBA::BOA_var boa;
int main(int argc, char **argv) {
SCARDTRACK *strack;
RESOURCEMANAGER *rmgr;
SCARD *scard = 0;
/* Initializes the CORBA runtime services, connects to server */
rmgr = new RESOURCEMANAGER();
rmgr->EstablishContext( argc, argv );
/* Create the objects like you normally would */
scard = new SCARD( rmgr );
strack = new SCARDTRACK( rmgr );
scard->AttachByIFD("Towitoko ChipDrive", 0x00);
scard->Detach();
return 0;
}
Here is an example reader configuration file and card configuration file.
# PC/SC Reader Config File
# Schlumberger Reflex 62/64
FRIENDLYNAME "Schlumberger Reflex 62"
DEVICENAME SLB_RF_60
LIBPATH /root/source/pcsc/src/resmgr/modules/slb_rf60/slb_rf60.so
CHANNELID 0x0103F8
# Towitoko ChipDrive
FRIENDLYNAME "Towitoko ChipDrive"
DEVICENAME TOW_CD_EX
LIBPATH
/root/source/pcsc/src/resmgr/modules/tow_chpdv/.libs/libctapi-towitoko.so
CHANNELID 0x0102F8
# PC/SC Card Config File
# Schlumberger Cryptoflex 4K Mask 06
FRIENDLYNAME "Schlumberger Cryptoflex 4K M2"
DEVICENAME SLB_CRYPTO_4K-M2
ATRVALUE 3BE2000040204906
ATRMASK 06
LIBPATH /root/source/pcsc/src/iccsp/slb_crypto4k/libslb_crypto4k.so
# Schlumberger Cyberflex 4K Mask 10
FRIENDLYNAME "Schlumberger Cyberflex PRE 4K"
DEVICENAME SLB_CYBER_PRE_4K
ATRVALUE 3B3215004910
ATRMASK 10
LIBPATH /root/source/pcsc/src/iccsp/slb_cyber4k/libslb_cyber4k.so
In PC/SC reader/cards are identified by the Friendly ID string. The user
may create their own friendly ID which maps over to the original if
wanted.
Let me know if you have any questions....... I'll keep you up to date on
it's release date. I'm expecting in the next couple of weeks.
Thanks
Dave
*************************************************************
David Corcoran Internet Security/Smartcards
Home: Purdue University
2252 US Highway 52 West Department of Computer Science
West Lafayette, IN 47906 CERIAS/COAST Laboratory
Home: (765) 463-2455
Cell: (317) 514-4797
http://www.linuxnet.com
*************************************************************
***************************************************************
Linux Smart Card Developers - M.U.S.C.L.E.
(Movement for the Use of Smart Cards in a Linux Environment)
http://www.linuxnet.com/smartcard/index.html
***************************************************************