cloned from http://git.hcoop.net/git/docelic/scez.git
License
12019/scez-ng
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
$Id: README 1113 2002-08-16 09:36:08Z zwiebeltu $ SCEZ ==== Introduction: ------------- My goal is to write a useful, portable, (relatively) easy to use chipcard library. So SCEZ is not very useful as it is, but has to be included in other programs. To do this you should be a programmer and have at least a bit of an understanding of the programming language C. If you ask yourself "What are these .c files?" SCEZ is most probably not suited for you. I have not much experience with programming, so suggestions on programming style and library structure are welcome. Welcome are also all other suggestions, found errors, patches, etc.. Documentation is not up to date, but it should give you some ideas how SCEZ is structured. What I'm especially interested is: - Documentation about cards and readers, sources for cards and readers in small quantities ("You want what? 10 cards? Ha! Ha! Ha!") and even better free samples of cards and readers. - Test vectors for 3DES-MAC for the Cryptoflex or other help solving this problem. (If it is solvable.) Also help regarding 3DES decrypting with Internal Authentication is welcome. ___________ | | | Smartcard | |___________|_____________________ | | | Basiccard/Cryptoflex/Cyberflex/ | | Geldkarte/GPK4000/GSM SIM/MFC/ | | Multiflex/Proton/STARCOS/ | | Sm@rtCafe/TCOS | |_________________________________|__________ | | | | PTS | Reader | |_____|______________________________________| | | | ACR20/Blue Dot Connector/CT-API/Dumb Mouse | | GCR 400/GPR 400/Reflex 60/Towitoko | |___________ | | | | | | T=0 | T=1 | | |_____|_____| | | | |____________________________________________| | | | | SIO | CT-API driver | |_____________________|______________________| A bit simplified structure of SCEZ. Motivation: ----------- - To have fun. - To learn about chipcards. - To make it easier for other people to learn about chipcards. - To make information technology more secure. For this reason I release this program with BSDish license. The value of security can only be measured when you don't have security (i.e. how much damage could have been avoided, if you had security). This can't be shown, when you decide to do the investments in security. Buy making this so cheap I hope to help making the decision in favor of security. - To make security technology more transparent. Security firms are still very reluctant in releasing information about their products, which have IMO no know how. They do it in the name of security. When I see this, I ask myself "How insecure is their product, when the secrecy of this information is relevant for security?". So I won't recommend products, where the manufacturer has this information policy. This attitude of the security has to change. Chipcard security: ------------------ All cards can be broken, so put no more secrets on a card than are really necessary and try to design you application, so that when one card is broken not all other cards are compromised. What I won't ever put on a card are unencrypted secret/private keys for encryption of storage or communication data. When the card is broken they will get all your data! Signature keys on cards are acceptable, because they can be revoked. Installation: ------------- Download: http://www.franken.de/crypt/scez.html ftp://ftp.franken.de/pub/crypt/chipcards/scez/ Unix/Palm: 1) Unpack 2) Adjust Makefile to select reader for test applications and to set some parameters. 3) "make" and choose your system. 4) "make <system>" MS Windows: 1) Unpack 2) Adjust Makefile.vc5 to select reader for test applications and to set some parameters. 3) "nmake -f Makefile.vc5" and choose your system. or something like that. If something gives an error, because include "pa.h" can't be found, just remove this line. Before compiling the test programs make sure they have the correct keys set. If you want to reduce the size of the library, here the dependencies of the object files: All depend on scgeneral, screader, scsmartcard. scmultiflex depends on sccryptoflex. scacr20 depends on sct0, sio(light). scdumbmouse, sctowitoko depend on scpts, sct0, sct1, sio(light). screflex60 depends on sct0, sct1, sio(light). So some possible combinations are: Library for SIMMan with only CT-API driver: scgeneral, screader, scsmartcard, scctapi, scgsmsim. Library for a Geldkarte application Palm Pilot with only Dumb Mouse driver: scgeneral, screader, scsmartcard, scpts, sct0, sct1, sio(light), scdumbmouse, scgeldkarte. In this case don't forget to set the correct defines in scgeneral.h. New (at least in august 2000) is the public CVS access to SCEZ. Use cvs -d:pserver:cvs@cvs.gnumonks.org:/cvsroot login to login with the password "cvs". To download the sources run cvs -z6 -d:pserver:cvs@cvs.gnumonks.org:/cvsroot checkout -P scez It is also possible to access it by http: http://www.gnumonks.org/cgi-bin/cvsweb.cgi/scez/ If you want to help developing SCEZ, you can get a CVS login. SCEZ is currently coded with tabstop size of 4 and indentation only with tabs. You're free to choose youre tabstop size (I don't see it. :) ), but please use only tabs and no spaces for indentation. To make mandatory locking work correctly under Linux you have to do following two things: 1) Mount the filesystem with the device on it with the option "mand". 2) Set the setgid-bit while not setting the group exec bit. Files: ------ - sc* are the card library source files. - sio.* slog.* is SIO written by Tim Hudson. - t* are the source files for the library test programs. - bcupload loads applications onto a BasicCard and changes the run state. - cafeman loads applets onto a SmartCafe card. - cardcheck will be an automagic card analysing programm. - cfupload can be used to load files on Cyberflex cards. - crdetect detects the supported card readers installed. - cyflexman loads applets onto a Cyberflex card. - flexpasswd changes the master key of a Multiflex/Cryptoflex. - gendivkey is a simple program to generate a diversified key. - getcert reads the certificates from a Telesec SigG key card. - scanclains scans for valid CLA/INS combinations. - scdir prints interesting data about the card in the reader. - scsh is used like a shell and sends APDUs to a smart card. - scwait waits for the insertion of a Cyberflex card. - simdump reads and writes the phone book of a GSM SIM card. - simman reads and writes the phone book, language settings and SMSes of a GSM SIM card. Many of these programs call scReaderGetConfig to get the reader configuration. See the comment above scReaderGetConfig in screader.c to get more information about the mechanism. Supported Hardware/Software: ---------------------------- - Cards: - BasicCard: Support is discontinued. (Don't forget to load the images in bc/test/ for testing with tbasiccard. USE ONLY A VIRGIN ENHANCED BASICCARD!) - Cryptoflex - Cyberflex Access - Geldkarte: Only few commands. - GPK4000-s(p): Mostly tested. - GPK8000: A bit tested. Uses the GPK4000 driver. - GSM SIM: Partly tested (see tgsmsim and simman). - MFC: Untested and no SM. - Multiflex: Tested with 3K and 8K (mask 80 and 95). Uses many Cryptoflex commands. - Proton: Only few commands. - Quick: Only a bit. - Sm@rtCafe - STARCOS: TODO. - TCOS: Tested with Telesec SigG card and NetKey card. - Operating systems: - Linux: Used as development platform. - FreeBSD: Tested an older version with FreeBSD 2.2.7. - Alpha OSF/1: Works with Towitoko Chipdrive, but not with Dumb Mouse. - HP HP-UX: Untested. - SGI IRIX: Untested. - Sun Solaris: Somebody compiled an earlier version. - MS-Windows: Ported with Visual C++ 5. The only reliable reader driver is CT-API. All others appear to work now, but test it more, before you use it for anything important! Compiles with Visual C++ 6. - Unix: All other unices untested. I'll look if the non-commercial Unixware license allows development of software with BSD-style license and where I get enough hard disk space for it. - PalmOS: Supports Towitoko reader and at least on my Palm III with direct chip programming the Dumb Mouse. The library is built with gcc (prc-tools 0.5.0, pilrc 2.4) as a GLib shared library. Cards with inverse convention do not work. - Readers: - ACR20/Cybermouse: Only serial model. Has some bugs. Dunno if it will ever work correctly. See entry from 1999/12/31. To summarize it: Shake well and good luck. - Blue Dot Connector: "card reader" for Java iButtons. Not very much tested. - CT-API: Compiled and tested under Linux, FreeBSD and MS-Windows. - Dumb Mouse: JP2 and JP5 are set. Schematics are at http://cuba.xs4all.nl/hip/dumbmouse.html. Should also work with UniProg and MAKInterface, but both untested. - GCR 400: Tested with GCR 410. - GPR 400: Working with T=0. - Reflex 60: Tested with Reflex64. - Towitoko: Tested with Chipdrive micro and extern I. Limitations: ------------ - CT-API: Not thread safe. - Dumb Mouse: Detection if card is present doesn't work with UniProg on all operating systems, because SIO does no support DCD by default. - General: scGeneralGetRandStr returns *NOT* true random numbers! - DES: libdes from Eric Young, cryptlib 2.1beta or newer from Peter Gutmann or OpenSSL is required for some commands. - Multiflex: TESA7 not supported (Use Scotch tape.). - Readers: No control of Vpp. Untested: --------- - CT-API: CT-BCS (scCtapiBcs*). - Cryptoflex: LoadCert, VerifyPubKey and VerifyData only checked, but not tested with a card. - Cyberflex: A few Java related commands. - Dumb Mouse: UniProg, MAKInterface. - GPK4000: All public key commands are untested. SetCardStatus is only checked. (see tgpk4000) - GSM SIM: Many. - T=1: Some S-Blocks, transmission errors and CRC. - TCOS: Update Binary, Update Record and Manage Security Environment. (see ttcos) Bugs and problems: ------------------ - ACR20: Does not working correctly with T=0 cards. Maybe another bug in this reader. - Cryptoflex: 3DES does not work with PRO commands. Also Update Enciphered appears to use DES even with a 3DES key. So maybe PRO commands really don't support 3DES. Also after encrypting and decrypting with DesCrypt with DES results in the start string, but not with 3DES. - Cryptoflex: RSA Sign and RSA Key Gen need to much power to work on a Dumb Mouse powered only by a serial port. - GPK4000: Needs to much power to work with a Dumb Mouse powered only by a serial port. - Towitoko: Sometimes scTowotokoInit returns an IO error. Call then Shutdown and Init again. Maybe the reader has to few electrons at the beginning. I don't have this problem since I put a batterie at it. Maybe a little rest between raising DTR/CTS and type detection or a batterie would help. - Towitoko: E.g. in tmultiflex the second reset doesn't work. Removing and reinserting the card was the only way to make this second reset work again. Don't ask me why. - Towitoko: Problems with T=1, when the transmitting I-Blocks do not fit entirely into one Send Data sequence. TODO: ----- - ACR20: Do better check of SW from reader. - CardOS: Get documentation. - const static UpdateDocumentation - CT-API: Call direct access functions from encapsulate functions - CT-API: Detect available ports? - CT-API: Library name should be suppliable with param. - CT-API: Return more informative exit codes than SC_EXIT_UNKNOWN_ERROR. - CT-API: Support for different reader types at the same time. - CT-API: Wipe arrays. - CT-API: Wrapper for own drivers. - Dox: Links to card documentation into TeXInfo file and onto homepage. - Driver: Development of a driver description language, which should make it easer to generate a card driver. - Dumb Mouse: TC1=0xFF? - Find something nice and Y2k-proof. - Full test suite - General: Split scgeneral.h into sc.h and scgeneral.h. - GPK4000: CLA for Init Hashed. - GPK4000: EEPROM unit handling in tgpk4000. - GSM SIM: Get second value in GetCap from TA1. - Multiflex: Check of Increase/Decrease Stamped - Oscar: Get one. - PalmOS: Split scdir into applications for Geldkarte, Bradesco, GSM SIM, etc.. - Scdir: Detect DIR(PKCS15). - Scdir: Read EF(DIR) and print AIDs. - Smartcard: More flexible ATR matching. - Smartcard: Write common commands (ISO7816 and CEN726). - STARCOS: Do everything. - PKCS#15: Implement card independent functions which are required for an implementation of PKCS#11/PKCS#15. - Quick: Find out more about it. - Specifying included modules at compile time. - Support for other Cards. - Support for other Readers. - Support for GPK2000, MPCOS-EMV, OSCAR. - T=0,T=1: Make support optional. - TCOS: Write utility program for SigG and NetKey card. - Windows: Test it more and with more compilers. Things to be donner better: --------------------------- - Insert SC_CARD_INFO into SC_READER_INFO. - Insert void pointer into SC_READER_INFO for the data needed by the reader. - Working only with APDU may make the command case info optional. - Supplying NAD for T=1 needed in reader drivers. - Use ExchangeBlock instead of WriteBuffer/ReadBuffer. - Device library (like SIO but without serial line handling) Sources for Cards and Reader: ----------------------------- - ACS URL: http://www.acs.com.hk Comment: Did not reply to emails sent directly. Did reply to emails sent via Zeitcontrol, but did nowhere try to answer the questions. There is no good documentation available, the support is non-existent, the reader has a problem with Le=0 and sends reproducible malformed responses, so I can dissuade from buying a ACR20 either directly from ACS or indirectly from Zeitcontrol. Readers: Cybermouse/ACR20 - Aladdin Knowledge Systems URL: http://www.aladdin.de (They are also in other countries.) Comment: Ordering there was not perfect, but like a walk through a blooming meadow on a sunny day in may without hay fever compared to Schlumberger. Maybe they don't sell the cards anymore which would be very bad. Cards: Multiflex 8K (called CC3), Cryptoflex (called CC4) - Deutsche Telekom / Telesec URL: http://www.telekom.de, http://www.telesec.de Comment: The NetKey card and the readers are in the Deutsche Telekom Katalog. Got so far only a description of the software interface of the B1 card readers, which is based on the CT-API interface. Mail for more detailed information about the hardware interface was until now not answered, which is a pity, because the B1 Pro would be a nice card reader with PIN pad and display. And it is not discontinued. Talked with Telesec support line. New documentation is not available. They will contact me, when it is available. Meanwhile I'm waiting for the B1 Pro to arrive. I ordered it on 2000/01/12. Let's see, if I receive it until the end of the year. It did arrive on 2000/04/19! This reader was manufactured by Kobil. Cards: German signature law (SigG) compliant PKS-Card and the NetKey card. Readers: Kobil Kaan (with Telesec label) and B1 card readers. - Epsilon URL: http://www.eps.no Comment: Not ordered something, yet. First response came very fast, response to second email never. Cards: Memory and microprocessor cards from Gemplus, also contactless. Readers: Readers from Gemplus. - Gemplus URL: http://store.gemplus.com Comment: Sells only to the USA and Canada. Cards: Some Gemplus cards. Readers: Some. - Giesecke & Devrient URL: http://www.gdm.de Comment: Maybe you can buy cards in small quantities there. Cards: STARCOS. Readers: Mostly robust readers for (public) commercial use. - Integra URL: mailto:integra.stuttgart@integra.e-mail.com Comment: This is the German distributor of Gemplus stuff. They are very helpful. Cards: Gemplus Cards Readers: Gemplus Readers - Intertex URL: www.intertex.se Comment: Documetation online available. Good service. Readers: PCMCIA and serial - Kobil URL: http://www.kobil.de Comment: Interface for their pocket reader is proprietary and secret. Their other readers have the Telekom B1 interface, which Kobil didn't want to or couldn't supply me with details. So my advice is to avoid Kobil. The B1 readers are the same Deutsche Telekom sells, but more expensive. Readers: Kobil Kaan and some B1 readers. - SBS URL: http://www.sbs.net Comment: German distributor of Intertex readers. Friendly service. Readers: Intertex IX2 and others - Schlumberger URL: http://www.slb.com Comment: Ordering the first time was an odyssey. I had no problems with my second order. Cards: Pay-, Multi-, Crypto-, Cyberflex Documentation: Cryptoflex: http://www.cryptoflex.slb.com/Support/support.html Cyberflex: http://www.cyberflex.slb.com/Support/support.html Multiflex: Visit the Schlumberger Smart Card Marketplace https://www.cardstore.slb.com/ , to download a free copy of the Multiflex Reference Manual. When you go to the store, select either of the card pages(1-99 or bulk), and then select any Multiflex card entry. The manual link will be on the resulting product "detail" page. Readers: Reflex card readers. - Towitoko URL: http://www.towitoko.com, http://www.towitoko.de Comment: The Chipdrive micro is cheap and you get what you pay for. Documentation is bad. There is also a cheaper source for their card readers in the US, but I have the URL currently at one of my other computers. Cards: SLE4428, SLE4442, I2C Readers: Chipdrive - Zeitcontrol URL: www.basiccard.com, www.cybermouse.de, www.zeitcontrol.de Comment: Their cards are the cheapest smart cards I know of. Manual is on their web server. Ordering there was fine. About Cybermouse, see my comment above in the ACS entry. Cards: BasicCards Readers: Chipi, ACS Cybermouse/ACR20 Misc: ----- * Mailing list: I have installed a mailing list at home about SCEZ. Currently it is more of an announcement mailing list, but discussions and questions are welcome. To subscribe send a mail with the message body "subscribe" (BODY! NOT SUBJECT!) to scez-request@mbsks.franken.de. The mails for the mailing list go to scez@mbsks.franken.de. * Provide the maximum possible space for response data when you know not for certain, that the card does not respond with more data. Some cards do not honor fully the Le byte, e.g. the BasicCard with encrypted transmission. For this reason I have removed the limitation to Le response bytes from my T=1 implementation. * If you killed, i.e. locked yourself out, a Multiflex 3K, get the chip module out. It is embedded only in transparent resin and nice to look at under a microscope. You can verify that it is a Motorola 68HC05SC21. * SIM adapters (ID-000->ID-1): Take an empty phone card or some killed smart card. Take your SIM card and the frame where you have broken it out. Draw with the help of this the lines on the soon to be adapter around the edges of the SIM card. Get a good knife and cut at the inside of the lines. Now make in the middle of this, where the chip was, a hole with the knife and cut from here to the corners of the line marks. Break the triangles out. Try out, if your SIM card fits in there. If not cut with the knife a little at the whole away until it fits just in. Now fasten some stripes of adhesive tape from the back of the card over the opening. Then fasten a stripe of tape over the opening from the front. Cut with a sharp knife ad the edge of the opening the front tape (and only the front tape) and press it to the back tape. Now remove the rest of the front tape. And ready is the adapter card. At least I make it this way. * For the Palm Pilot I use the HotSync cable and following cable/plug between it and the Towitoko/DumbMouse reader. This adapter is not symmetrical. So mark the sides so that you know where to connect the Palm and where the reader. Palm side Reader side For readers 9pin, male 9pin, male 2 (RD) <-> 3 (RD) All 3 (TD) <-> 2 (TD) All 5 (SG) <-> 5 (SG) All 6 (DSR) <-> 4 (DTR) All 7 (RTS) <-> 6 (DSR) Dumb Mouse, to PIN 1 (DCD) for UniProg 8 (CTS) <-> 7 (RTS) All For modem cables (not tested): Palm side Reader side 25pin,male? 9pin, male 2 (RD) <-> 3 (RD) 3 (TD) <-> 2 (TD) 4 (CTS) <-> 7 (RTS) 5 (RTS) <-> 6 (DSR) 7 (SG) <-> 5 (SG) 20 (DSR) <-> 4 (DTR) * Reader functions may change with the support of more reader types, e.g. for readers with keypad. * There is a project to write a PC/SC framework for Unix called MUSCLE (http://www.linuxnet.com/smartcard/). * The command documentation of OSCAR cards is online available, although OSCAR is a bit strange (http://www.gis.co.uk/products/oscar/index.htm). Copyright: ---------- Following files are Copyright (C) 1997 Tim Hudson (tjh@cryptsoft.com) (See COPYRIGHT.sio.): platform.h sio.c sio.h sio.html slog.c slog.h varadic.h Rest of the files are Copyright (C) 1999,2000 by Matthias Bruestle (m@mbsks.franken.de) (See COPYRIGHT.). Thanks to: ---------- - Bodo Bellut: For the Geldkarte and his testing of the Chipdrive. - Matthias Gaertner: For his help with the Dumb Mouse. - Peter Gutmann: For the GPK4000's, various code fragments and his help. - Marco Hofmann and Giesecke&Devrient: For the donation of a STARCOS Toolkit with each two STARCOS S2.1 and SPK2.1 cards and a card reader and for the SmartCafe cards. - Uwe Horn: For Testing with UniProg. - Tim Hudson: For writing SIO and releasing it under a BSD style license. - Christian Kahlo: For some cards. - Eric A. Young: For libdes and releasing it under a BSD style license. Changes: -------- 1999/02/01 - Began work on SCEZ. 1999/02/25 - Multiflex,Cryptoflex: BYTE *fid -> WORD fid - Multiflex,Cryptoflex: scReaderT0 -> scReaderSendAPDU - tmultiflex: updated 1999/02/26 - Multiflex,Cryptoflex: IntAuth checks correctness of response. - tcryptoflex,tmultiflex,tsmartcard,ttowitoko,tctapi: updated - Geldkarte: Very basic support. - Scdir: Included Geldkarte. - Moved wwt and getrsp from SC_CARD_INFO to SC_T0_INFO and updated all necessary files. 1999/02/27 - Multiflex,Cryptoflex: Fixed bug with response. 1999/02/28 - GPK4000: Adding useful defines. - Ate four Gniedla. 1999/03/01 - GPK4000: scReaderT0 -> scReaderSendAPDU 1999/03/02 - GPK4000: Beginning checking commands and implementing Crycks commands. 1999/03/05 - Smartcard: Included ATRs for Payflex. 1999/03/07 - Ate three Gniedla. 1999/03/09 - Multiflex: Why does Int Auth not work with the CC3 from Aladdin? Fsck! - Cryptoflex: Tried out 3DES retail MAC. Without success. Fsck! - README,scdir,u_change,u_serial,u_write: Updated. - General: Included defines for TCOS cards. 1999/03/10 - TCOS: Ordered Telesec SigG card. 1999/03/11 - Making first distribution. 1999/03/12 - General: Included defines for BasicCard. - Smartcard: Included ATR for BasicCard. 1999/03/16 - Multiflex: Call scCryptoflexCreateRecordMAC 1999/03/17 - Basiccard: Updated ATR. Can distinguish now between Compact and Enhanced. - Cryptoflex,GPK4000,Multiflex: SW set to 0 at beginning of command. - Cryptoflex: Updated Key Enciphered with 3DES. - Multiflex: CC3 (Mask 95) has Full DES Int Auth, so it requires P1=0x01 to be "normal" IntAuth. - Multiflex: DesCrypt. - Smartcard: Separate ATR for CC3. 1999/03/18 - Smartcard: Added ATR for Cryptoflex 8K. - Moved BYTE sw[2] to SC_CARD_INFO. 1999/03/19 - GPK4000: Implementing Crycks and encrypted commands and first checking pass done. 1999/03/24 - Dumb Mouse: Reset working. 1999/03/25 - T0,Reader,Towitoko,Dumb Mouse: Reorganization. Moved T=0 implementation to sct0.c and did [Read|Write][Buffer|Char] for Towitoko and Dumb Mouse. - Dumb Mouse: T=0 is working. Wrote tdumbmouse. Default configuration is with jumper at Active High Reset. - GPK4000: SelectFk tested. 1999/03/27 - Scdir: For Multiflex and Cryptoflex with Directory. - t0,Towitoko,Dumb Mouse: Inversion is now done in the readerspecific read/write functions. - Dumb Mouse: SetSpeed. - GPK4000: Converted function names into abrevated command names from GPK4000 reference manual. 1999/03/28 - Dumb Mouse: Set etu. - GPK4000: CrtDirCrycks CLA corrected. Challenge removed for Crycks commands. - Dumb Mouse: Dumb Mouse/UniProg auto detection. 1999/03/29 - Dumb Mouse: CardStatus does work with Dumb Mouse. 1999/03/30 - Dumb Mouse: Bug in GetTS removed. - Smartcard: GetCardType with BasicCards tested. 1999/04/03 - T=1: Implemented. - Geldkarte: Debugged Select. 1999/04/04 - T=1: Debugged. - BasicCard: Commands implemented and partly tested. - BasicCard: Killed a card with EEPROM CRC with data from EEPROM SIZE. Returned after a reset not the ATR, but the last response from EEPROM CRC: 00 00 02 6A 00 68. Maybe it got too less power, but why did it then have enough power to write to the EEPROM? Also the voltage would have to drop from 4.8V to below 2.7V. Should sometimes look at it with an oscilloscope. 1999/04/05 - Ate three Gniedla. - BasicCard: tbasiccard.c written. - BasicCard: Communication encryption routines (DES and 3DES) written. - BasicCard: Added SG-LFSR algorithm. 1999/04/06 - BasicCard: bcupload for uploading image files generated with zcbasic. - T=1: Chaining to ICC didn't work, because the content of each packet did start at the beginning of the block. - BasicCard: Length of response data is more then Le. Removed limitation in T=1 implementation. Is IMO a violation of ISO7816-4 5.3. - BasicCard: tbasiccard tests all commands and DES/3DES encryption. 1999/04/07 - T=1: Changed ABORT handling. Added checksum error counter. 1999/04/08 - T=1: Changed ABORT handling to the old method. - General: GetRandStr. This function does *NOT* return true random numbers. It is only done with time() and rand(). - BasicCard: bcupload modified. - BasicCard: Encryption with LFSR/LFSR-CRC implemented. Tested with the examples in the BasicCard manual. - BasicCard: tbasiccard updated for LFSR/LFSR-CRC. 1999/04/09 - GPK4000: CrtDirCrycks works! - BasicCard: (See 1999/04/04) The reason is, that a BasicCard can be damaged if a EEPROM CRC or EEPROM CLEAR is executed and it was never an image uploaded. 1999/04/10 - Smartcard: ATRs for GPK4000-sdo, TELESEC card. - BasicCard: tbasiccard: Get Application ID also at RUN State. 1999/04/11 - GPK4000: Fixed some bugs and added commands to tgpk4000. 1999/04/12 - Cryptoflex: Put RsaSign into tcryptoflex. tcfkeygen for key generation test because of long key generation time (around 4 minutes). Need some big integer library to test the rest of the RSA commands. - Cryptoflex: RsaSign and RsaKeyGen need to much power for my Dumb Mouse. Probably the other RSA commands too. - Towitoko: Added a sleep before first communication with the reader to give it some time to save some electrons. - Cryptoflex: GetChall with variable challenge size. 1999/04/13 - Cryptoflex: Added UpdateEnc and DesCrypt to tcryptoflex. - GPK4000: Checked would be commands of payment and public key commands. - General: Exit code for locked. 1999/04/14 - GPK4000: Tested payment commands. (see tgpk4000) 1999/04/15 - Compiled with Borland C++ 4.5. - T=0: Reissuing command with new Le after 6CXX. - T=0: Check return of CardStatus. - T=1: Removed argument blocklen from GetN. - T=1: Argument ifsd in ChangeIFSD was not used. - GPK4000: Removed check for BYTE var > 256. - Multiflex: ExtAuth/IntAuth with #ifdef WITH_DES. - Multiflex: Stamped now St because of 32 character limit of Borland C++ 4.5. - Multiflex: No return of GenerateAuth. - Towitoko: Return b in ReadChar if inverse. - Scdir: break after default. 1999/04/16 - Smartcard: Checks TCK of ATR. - CT-API: CHAR to unsigned char. - General: Changed defines. - T=1: Check return of scReaderCardStatus. - Towitoko: Include dos.h for sleep. - CT-API: SCARD_LIBNAME -> SC_CTAPI_LIB. - bcupload and scdir compiled and tested successfully with Borland C++ 4.5. 1999/04/18 - Multiflex: Borland C++ 4.5's 32 character limit can be expanded, but there are certainly other compilers with 32 character limit so I leave the Stamped abrevated. - FreeBSD: Compiled and tested a bit under FreeBSD 2.something. Sometimes problems and sometimes not with Towitoko and/or Dumb Mouse. Is SIO the problem? 1999/04/23 - Multiflex,Cryptoflex: flexpasswd program to change transport key. - Multiflex,Cryptoflex: gendivkey generates with a masterkey and the card serial number a diversified card key by encryption with DES. - General: Removed SC_DIR defines. - Removed spaces before #.... . 1999/04/28 - Makefile,scctapi.h,scdumbmouse.h: Modified for __linux__, __FreeBSD__, sun. - Makefile: $(READER) again in CFLAGS. 1999/05/03 - TCOS: Got Telesec SigG card. 1999/05/04 - TCOS: Beginning implementing support for Telesec card. 1999/05/06 - Cryptoflex: Wait time and Get Response moved into RsaKeyGen. - Scdir: Added AID list. - TCOS: ttcos tests commands (nearly) as far as it is possible with the Telesec SigG card. - TCOS: Wrote getcert to extract the certificates from the card. 1999/05/19 - Set des_check_key to 0 before des_setkey to make Cryptlib working. 1999/05/21 - Reader: Fixed FreeBSD ifdef in Ports. - Reader: Added else section to Ports. - SIO: Fixed setup of tv_sec/tv_usec in SIO_WaitForData. FreeBSD works now. - CT-API: Debugging, i.e. mostly debugging of the towitoko CT-API driver for Unix. + Does not distinguish between reset of IFD and reset of ICC. + Reset does not work properly. + Get Status does not distinguish between status of IFD and ICC. + TCK isn't returned. + tmultiflex gives after a few commands an ERR_TRANS and after that ERR_CT. - CT-API: Full path is needed for loading lib in FreeBSD. - CT-API: Underscore is needed before function names in FreeBSD. - CT-API: Empty functions for systems which can not load librarys dynamically at runtime. 1999/05/23 - Changed defines for cryptlib. - General: Added scInit and scEnd. - General: Initialization of cryptlib in scInit and scEnd. 1999/05/24 - Makefile: Changed, so that SIO from cryptlib is used when available. - Dumb Mouse: DCD is not used with cryptlib. - General: Initialization of of cryptlib in scInit and scEnd is commented out, because else SIO doesn't work properly. Why? - General: Use sio.h from cryptlib if compiled with cryptlib. 1999/05/25 - Cleaned up includes, so programs which use SCEZ have to only include the needed includes and the includes be where the programmer wants. Although no file is included automagically if it is required by an include. - T=1: Returns at most 256+2 bytes, even if RESPECTS_LE is not set. - Makefile: Some cleanup. 1999/05/26 - DES: Fixed bugs in t* when compiled without DES. - CT-API: Tested with the Towitoko driver under Windows. - CT-API: Fixed bugs in scCtapiCardStatus, scCtapiT0 and scCtapiT1 which haven't shown with the Linux driver. - Included rename script, which converts filenames to 8.3. - BasicCard: Added extended EC demo application. 1999/05/27 - OpenSSL: Added defines and tested. - GPK4000: kats/kpts -> ci.crypt.key - GPK4000: !success -> SC_EXIT_BAD_CHECKSUM - Cryptoflex: !success -> SC_EXIT_BAD_CHECKSUM - Multiflex: !success -> SC_EXIT_BAD_CHECKSUM - Smartcard: Removed common commands. They have to be redone for ISO7816-4 and CEN726. - Adjusted t* to changes in scgpk4000, sccryptoflex, scmultiflex, scsmartcard. 1999/05/28 - CT-API: Removed UNDERSCORE. 1999/05/30 - PKCS#15: Beginning with PKCS#15. Trying to find a good function structure which is simple, flexible and fully card independent. Not easy. 1999/07/24 - Got a GPK4000-sdo. 1999/08/05 - Changing function names. (SC_Xxxxx_Yyyy -> scXxxxxYyyy) - cr -> ri - Reorganizing main card and reader functions with function pointers. - PKCS#15: Deleted. 1999/08/06 - Changing function names. (SC_Xxxxx_Yyyy -> scXxxxxYyyy) - Alpha port. - BOOLEAN motor and pinpad in SC_READER_INFO. - General: scGeneralCleanCI cleans keys and protocol parameters. - Reader,specific drivers: scGeneralCleanCI after reset. 1999/08/07 - Reorganized Makefile. - Got two Bradesco Moeda Eletronica. - smartcard: Added GPK4000-sdo to scSmartcardInit. - Scdir: Added GPK4000-sdo - GPK4000: Added support for Bradesco card. 1999/08/08 - Scdir: Added Bradesco card. 1999/08/12 - PalmOS: Got Palm Pilot III. 1999/08/16 - PalmOS: Compiled the necessary des files. - PalmOS: Compiled SCEZ. 1999/08/17 - PalmOS: Wrote SIO. 1999/08/22 - PalmOS: SIO should work now. 1999/08/24 - Towitoko,Dumbmouse: si=NULL after SIO_Close. - PalmOS: Writing scdir. 1999/08/25 - Towitoko: sleep(1)->sleep(2) for PalmOS before accessing reader. - Towitoko: Clean up serial port if an error occurs in scTowtitokoInit. - PalmOS: scdir works now. 1999/08/26 - Dumbmouse,Towitoko: while(SIO_ReadChar) -> SIO_Flush for PalmOS. 1999/08/27 - PalmOS: scdir: Menu, Alerts, disabling of update Button, other small changes. 1999/08/28 - PalmOS: SCEZ with GPK4000 support. - PalmOS: scdir: With GPK4000 support. - PalmOS: scdir: Expanded Menu. - PalmOS: scdir: Made function from printarray define, which reduced size very much. - gpk4000: tgpk4000 works now without DES. - PalmOS: SIO_Log2DB function. Although a bit flaky. 1999/08/29 - PalmOS: Functions which use arrays larger than 15 bytes which are filled at declaration don't work. GCC does fill these with with bcopy. Compiler or libc bug? - PalmOS: Rewrite larger arrays after declaration. - PalmOS: scdir: Some more resources. - smartcard: Changed ATR mask for Geldkarte. - PalmOS: scdir: Added scrollbar. 1999/08/30 - Happy Birthday! (You know, if you are meant. Even if you don't want to know it.) 1999/08/31 - Mailed Kobil for reader documentation. Let's see, what they respond. - bcupload: scSmartcardGetCardData -> scBasiccardGetCardData because of new SCEZ organization with function pointers. - dox: Added a little documentation about the Moeda Eletronica Bradesco. 1999/09/02 - PalmOS: sio: Added control of RTS and CTS. - PalmOS: sio: Remove term_state from SIO_INFO. - PalmOS: Added scdumbmouse.o to SCEZmain.prc 1999/09/04 - PalmOS: Split SCEZmain into SCEZmain and SCEZreader. - PalmOS: sio: Debug RTS/CTS handling. Dumbmouse works now. - README: Converted to new naming convention. - README: Entry for Kobil. 1999/09/05 - README: Added schematics for Palm modem cable adapter. - PalmOS: scdir: Changed menus. - PalmOS: scdir: Changed field size. - PalmOS: scdir: Reader type selectable by menu. 1999/09/16 - Cryptoflex: #include <stdlib.h> for Visual C++. - GPK4000: & 0xFF - Smartcard: #include <memory.h> for Visual C++. - T1: #include <memory.h> for Visual C++. - TCOS: & 0xFF - Towitoko: #include <stdlib.h> for Visual C++. - Towitoko: n,offset,read -> LONG 1999/09/17 - Scdir: Added Geldkarte. - PalmOS: scdir: Added Geldkarte. 1999/09/19 - PalmOS: scdir: Fixes some bugs in printfs. - PalmOS: Switched to pilotSSLeay-2.01 because it is testet and to save space when used also by other applications. 1999/09/27 - GSM: Got a card. - Dumb Mouse,Towitoko: Fixed some bugs regarding inverse convention. - General: SC_CARD_GSM_SIM - Smartcard: Single string for SIM card detection. More sophisticated method would be nice. 1999/09/28 - Cryptoflex,Geldkarte,GPK4000,Multiflex: sizeof for correct length of swok/swav in scGeldkarteGetCardData. - Geldkarte: More sane returns in GetChall. - GSM SIM: Writing functions. - Geldkarte: Response for SelectFile was to long. 1999/09/29 - Bradesco: Cleaned up tbradesco. - GSM SIM: Writing tgsmsim. - General: SC_CARD_GSM_SIM -> SC_CARD_GSMSIM - Smartcard: Entry in scSmartcardInit for GSM SIM. 1999/09/30 - GSM SIM: Bytes added to swok. - Towitoko: Fixed parity bug in ResetCard. Works now with inverse convention. 1999/10/01 - Removed ProcessSW. I think it is not so useful. - Scdir: Added GSM SIM card. - Smartcard: Added some more GSM SIM ATRs which are not very specific. 1999/10/02 - GSM SIM: Fetch/GetResp read bytes to read from sw. - GPK4000: ifdefed unused variables, when compiling without DES. - GSM SIM: Removed 0x92 from swok. - Dumb Mouse,Towitoko: SetSpeed changed. - Dumb Mouse,Towitoko: Check ri->si before execution of functions. - Dumb Mouse,Towitoko: Shutdown in Init, when a port is already open. - PalmOS: scdir: Added entry for GSM SIM card. - General: Card and reader capability structs. 1999/10/03 - BasicCard,Cryptoflex,GPK4000,GSM SIM,Multiflex,TCOS: GetCap added. 1999/10/04 - Scdir: Removed nibbleswap of SIM ICCID. - PTS: Started. - Bradesco: Included and cleaned up tbradesco.c. 1999/10/05 - General: Changed SC_CARD_CAP. f and d now in one array. Added the same array to SC_READER_CAP. This is to make it easier to find a match. - BasicCard,Cryptoflex,GPK4000,GSM SIM,Multiflex,TCOS: Updated for above change. - PalmSIO: Cleaned up. - PTS: When no characters are received SC_EXIT_TIMEOUT. - Cryptoflex,Multiflex: Added SetFD. 1999/10/06 - General: New/FreeReader/CardCap - General: t0.d and t0.wi in SC_CARD_INFO and necessary changes in Smartcard. - GSM SIM: Added SetFD. - Cryptoflex: The Reference Manual is correct, the "Technical Highlights" not. It does not support PTS. - TCOS: Added SetFD. - TCOS: The Telesec SigG card is strange. It works only with 9600bps. It reacts not to PTS requests and does not work with 38400bps as advertised in TA1. - GPK4000: Added SetFD. - Bradesco: SwtSpd works not correctly. Maybe it needs other parameters. - Palm: Added scpts.o to Makefile.palm. 1999/10/07 - Faster transmission speed does not improve the overall speed much, e.g. tmultiflex runs 19.3s with 9600bps and 17.3s with 38400bps. - Updated rename. - PTS: memcmp of received bytes. - cryptlib: Wonders happen. SCEZ works now with cryptlib. - Makefile: Programs which require DES will not be compiled, if compiled without a DES library. - Makefile: PalmSIO moved to the root directory. 1999/10/11 - PKCS#15: Added pkcs15/p15cryptoflex.txt with suggestions about PKCS#15 General Interface and some implementation details for the Schlumberger Cryptoflex. Suggestions welcome. 1999/10/13 - README: Added some URLs. 1999/10/14 - PKCS#15: Updated p15cryptoflex.txt. - Added #error for missing including scgeneral.h to include files. 1999/10/16 - PKCS#15: Changed P15_INFO. - PKCS#15: Added p15cryptoflex.c/h. - Set UID/GID of files to 0/0. - README: Nice ASCII picture of SCEZ structure. - T=0: Fixed a possible buffer overflow with a hostile or buggy card. - T=0,T=1: Reduced array sizes to really needed size. - Dumb Mouse,Towitoko: Check ATR length. - Basiccard,Cryptoflex,Geldkarte,GPK4000,GSM SIM,Multiflex,TCOS: Wipe command and response arrays and key schedules after usage. - Put tabs where tabs should be. - GPK4000: Use SC_GENERAL_SHORT_DATA_SIZE. - T=0,T=1: Wipe arrays. - Dumb Mouse,Towitoko: Wipe arrays. 1999/10/17 - PKCS#15/Cryptoflex: GetPaths. BER processing is not so easy, at least at the moment for me. - Cryptlib: Included -I.. in Makefile and changed the include of ../crypt/des.h to crypt/des.h 1999/10/18 - Dumb Mouse: tdumbmouse would be in an endless loop, if opening of port was not successful. - Makefile: Modified for libpkcs15. - PKCS#15/General: Included structures into p15general.h. - PKCS#15/Cryptoflex: p15cryptoflex.c compiles. - Scdir: DIR file for Cryptoflex and Multiflex. 1999/10/19 - Scdir: Removed second scReaderInit. 1999/10/20 - General: In scgeneral.h __WINDOWS__ -> WINDOWS. - Cryptoflex,Towitoko: Included windows.h and changed sleep to Sleep for Windows. 1999/10/21 - Dumbmouse,PTS,T=1,Towitoko: Modified include path of sio.h for cryptlib. - PKCS#15/Cryptoflex: Wrote tp15cryptoflex. - Makefile: Added tp15cryptoflex. - Makefile: Changed Libpath for cryptlib. 1999/10/22 - PKCS#15/Cryptoflex: Debugged p15CryptoflexGetPaths. 1999/10/23 - PKCS#15/Cryptoflex: p15CryptoflexGetPaths fills unspecified file paths. - PKCS#15/Cryptoflex: p15CryptoflexWriteEfDir. - Killed a Multiflex 8K. Fsck! Has now 168 bytes more space, believes to have 255 EFs and denies any file creation or deletion, but EF_ExtAuth and EF_Serial are still there. Don't know, how this happened. Chipcards are an expensive hobby. The decision to use a Multiflex 8K for the first testing of the PKCS#15 functions was correct. If you buy cards, buy 10 pieces if possible or at least 5 pieces. - General: Wrote scGeneralBinHex for some reader drivers, e.g. GCR 400. - T=1: SIO_WaitForData -> SIO_Delay, which is correct. 1999/10/24 - GCR 400: Wrote driver. Hopefully I'll have sometime a GCR 400 to test the driver. Some parts of the documentation are not really clear to me. 1999/10/27 - Scdir: Added AID of the German health card and the RID of Wolfgang Rankl. 1999/10/29 - Sent application for a RID. 1999/10/30 - Basiccard: Be careful with the test image for the Enhanced Basiccard. It made two of my cards unusable. Either it is a bug in bcupload, but oder applications work, or it is a bug in the compiler or Basiccard. The symptom of a unusable card is the response 0x6581 to all commands. Maybe this only happens, when the image is loaded on a card, which had already another application with commands loaded. I just don't want to risk my last usable Enhanced Basiccard. I'll order the next days new cards. Programming with chipcards makes you a serial killer. 1999/10/31 - Ordered BasicCards, also the new ZC2.4 with 16kB EEPROM, and a Cybermouse. 1999/11/01 - ECCard: It is probably not possible to write an application, where the EC-160 private key is only encrypted in the EEPROM. The application needs 42 bytes free RAM for the Public variables and I found no way to get this free while having still the full EC-160 functionality. Also I don't know what the EC-160 and SHA-1 libraries and the communication routines do write to the EEPROM. So we do have to wait longer to get the first smart card which does asymmetric algorithm calculations and stores the private key encrypted. It is for this reason removed from the SCEZ distribution. - ACR20: Wrote driver. - TCOS: Changed SC_CARD_TELESEC to SC_CARD_TCOS_SIGG and added SC_CARD_TCOS_NETKEY. - GCR 400: Fixed some bugs. - General: Added maxc and maxr to SC_READER_INFO. 1999/11/03 - Got RID: D2 76 00 00 92. 1999/11/04 - Changed SC_CARD_* defines for major minor to high/low byte. - Basiccard: Changed application ID. 1999/11/11 - Got serial Zeitcontrol Cybermouse(==ACS Cybermouse==ACS ACR20S) and some BasicCards. - Removed memory card "support" from Towitoko Chipdrive driver, because it is brain damaged. See http://homepages.teuto.net/flavour/chip_faq.txt - ACR20: Renamed cybermouse to acr20. - ACR20: Added tacr20. - Reader: Included ACR20 include. - General: Debugged scGeneralBinHex. - ACR20: Most functions work. 1999/11/12 - ACR20: Added support for extended length. - ACR20: All functions should work now as I understand the documentation, but the communication with the cards doesn't work properly. I'll reread the Cybermouse documentation and hope to find the error. 1999/11/13 - ACR20: Works now. See comment above function scAcr20T. - Basiccard: SG-LFSR/DES/3DES is always case 4, when not EndEncr. - Basiccard: Le of GetApplId is 0x0F, to get SG-LFSR with the ACR20 going. - T=0: Strip Le-Byte in scT0SendAPDU only if present. - GPK4000: SelFil is case 2 if parent is selecte. 1999/11/15 - T=0: scT0SendAPDU is now more flexible with sending T=0 TPDUs like APDUs. 1999/11/18 - ACR20: haridas@acs.com.hk: "The ACS Proprietary Driver uses Le=0 for "no expected bytes". We can't change this for compatibility reasons." 1999/12/04 - Smartcard: Added ATR for GSM SIM card. 1999/12/07 - Smartcard: Added ATRs for GSM SIM cards and Dutch money cards. - General: Added SC_CARDs for Dutch money cards. - RPM: Wrote spec file for RPM building. - Palm: Added Libc.prc. - Palm: Moved pilotSSLeay into the directory palm. - README: Added entry for ACS and updated other entries. 1999/12/08 - Smartcard: Added ATRs for two GSM SIM cards. - CRDetect: Added crdetect. This program tries to detect ACR20S, Dumb Mouse and Chipdrive on COM1-4. 1999/12/25 - Scdir: Outputs now more data about GSM SIM cards. 1999/12/26 - Scsh: Wrote a simple Smart Card Shell. - SIO: Merged PalmSIO and SIO into a SIOLight which has only the functionality that SCEZ uses and misses logging. 1999/12/27 - Simdump: Added Simdump from Gerd Rausch <gerd@alf.gun.de>. Thanks. 1999/12/28 - crdetect: sleep->Sleep and windows.h for MS Windows. - Makefile: Wrote Makefile.vc5 for MS Visual C++ 5.0. - DES: Added VC++5 compiled libdes. - Makefile: Changed unix makefile for SIOLight. - Palm: Changed makefile for SIOLight and removed PalmSIO. - Palm: Changed makefile for onepass. - Palm/scdir: SC_CARD_TELESEC -> SC_CARD_TCOS_SIGG. - Removed not needed #includes. - Removed PalmSIO, rename and Borland C++ 3.1 project files. - crdetect: scDumbmouseDetect tries a reset of the card. - README: Entry for mailing list. - crdetect: Added CT-API. - Serial ports begin now at 0. (0=COM1, 1=COM2, ...) This is because it doesn't look good, if crdetect detects to different card readers at the same port number. - Palm: Added GSM SIM. - crdetect: Less verbose output. - crdetect: The unix towitoko driver does "successfully" reset an ACR20S reader. Change a bit the probabilities. - I'll do more with VC++5 this evening, but it will show in the "release" of tomorrow. 1999/12/29 - crdetect: Hangs on a port used by an old gpm(?). - CT-API: #include <windows.h> - simdump: #include <windows.h>. getpass is not available under MS Windows. Needs replacement. - crdetect: Hangs with original Towitoko CT-API driver at ports where no reader is. Also the reader at COM2 is accessible at port 0 and 2. Maybe port 0 is the default reader. Access to COM2 is blocked, when shortly before the CT-API driver is used. - crdetect: Added some CT-API library names. - crdetect: Many other unix CT-API drivers give false positives with only Reset CT. Probably they do nothing at Reset CT. So I added Get Status ICC. With this I get no false positives with the unix CT-API drivers. Changed probability. - crdetect: Added the library path "/usr/lib" for FreeBSD. Other possible locations? - Makefile.vc5: Added /D__WIN32__. - scsh: Did activate instead of deactivate. - General: Added SC_READER_CONFIG struct. - Reader: Added scReaderGetConfig. Evaluates the environment. - All mains with "int argc, char *argv[]". - All programs with scReaderGetConfig. - Reader: scReaderGetConfig evaluates the program arguments. - scdir: Commented out argument handling, because it needs to be redone with getopt. 1999/12/30 - Windows/SIO: Rounded timedelays up and fixed a bug (at least it makes now sense). First tests have shown no errors anymore. So it appears it works now. Further tests will show. 1999/12/31 - Reader: Ports were skewed by one if there was no special translation. - Windows/SIO: It works better than before, but it still has transmission errors. - GPK4000: Checksum checking of RdBinCrycks and RdRecCrycks didn't work, because cmd was cleard before calculating Crycks. - ACR20: Running card tests: tbasiccard: Ok tbradesco: scGpk4000CmdSelFil(Parent): Error (malformed packet from reader) tcryptoflex: scCryptoflexCmdRsaSign: Error (power?) scdir with Geldkarte: Ok tgpk4000: Ok. tgsmsim: Ok (Error with inverse convention) tmultiflex: Ok Not bad for this reader. 2000/01/02 - Dumb Mouse: Added minor type DEJAN for dumb readers which have no line to detect if a card is inserted. - simman: Beginning parsing and reading routines. 2000/01/03 - simman: Parsing, reading and writing routines done and "sand box" debugged. Writing needs testing with real writing, but I don't want to use my mothers card for this. - scdir: Changed sequence of ICCID presentation. 2000/01/04 - GSM SIM: scGsmsimPackStr and scGsmsimUnpackStr written. 2000/01/05 - simman: Added and tested dump_sms. - simman: Accepts all GSM and Unknown cards. - simman: Read EFiccid to test if it is a GSM card. - simparse: Ignore lines in section SMS. - simman: Built SMS struct. 2000/01/06 - simparse: Parsing routines for SMS written. - RPM: Added simman. - simman: restore_sms written. - simman: dump_sms missed '+' in phone numbers. - simman: dump_sms added 7bit packed phone numbers. - GSM SIM: scGsmsimUnpackStr needs only character length. - simparse: Improved parsing if data contained : or (. - simparse: Accept invalid SMS phone numbers. 2000/01/08 - crdetect: Added code, which works probably with a Kobil/Siemens/Telesec B1 card reader. (The TCrypt from Telesec sends 00 C0 00 C0 to the reader. This is a S(Resynch)-block. If the protocol is like T=1, the response should be 00 E0 00 E0.) 2000/01/09 - Palm/scdir: Remove pilotSSL from Makefile. - palmsio.h -> siolight.h. - T=1: Added some stuff for B1 reader. - T=1: Changed ns, nr, ifsc, ifsd and rc to BYTE. - Reader: Added T=1 struct to READER_INFO. - T=1: Chooses T=1 struct from reader or card depending on reader. - T=1: SIO_WaitForData -> scReaderWaitForData. - Reader: Added scReaderWaitForData. - Dumb Mouse: Added scDumbmouseWaitForData. - Towitoko: Added scTowitokoWaitForData. - Smartcard: Modified ATR for BasicCard 2.4. - PTS: SIO_WaitForData -> scReaderWaitForData. - Reader: Added scReaderDelay to make it independent from SIO. This is useful, if no serial reader is used, but e.g. an USB or keyboard reader. - Windows/SIO: Fixed a bug in doSleep. - Windows/SIO: After adding 15ms to every timeout multiple test runs of tbasiccard, tgsmsim and tmultiflex on the Dumb Mouse and a few test runs on the Towitoko did show no error. 10ms did show occasional errors, maybe every 50-100 commands. 2000/01/10 - Reader: scReaderGetConfig recognizes also lowercase reader name in environment variable and program argument. - GSM SIM: Got old card for testing. Thanks! - Smartcard: Added ATR for e-plus card. - simman: Call scSmartcardProcessATR for unknown card. - simman: Set other card parameters if unknown. - simman: Language dump corrected. - GSM SIM: Functions for character translation. (OK, the do not more than a table lookup, but e.g. on the Palm, applications can not access "global" variables in "shared" libraries.) - simman: Character translation for phone book. - Towitoko: Added new type for Chipdrive Micro. - Smartcard: Removed nonspecific GSM SIM ATRs. - simman: restore_phone translated to many characters. - simman: Clearing EFsms writes full records. - simparse: Fixed parse error which occurred, if there was only a phone number as parameter for a SMS. - simman: MR was one to low on newly created SMSes. - simparse: Recognizes parameter "unsent". - simparse: BINARY did not work. - simman: Outputs DCS in case it is unrecognized. - simman: Corrected VP handling. - GSM SIM: 'ä' was translated wrong with iso2gsm. - simman: Rejects PIN shorter 4 and longer 8 before they are sent to the card. - simman: EFadm/EFsms records only cleaned, when necessary. 2000/01/12 - README: Added manufacturing guide for a sim adapter card. - General: Added type for STARCOS cards from G&D. - Smartcard: Added type for STARCOS 2.1 card. - README: Updated a bit. - TCOS: Ordered two cards. - B1: Ordered a B1 Pro from Deutsche Telekom. 2000/01/15 - Makefile: Removes simman executable. - RPM: Added libdes-4.01.spec. - RPM: Reversed chronological order of changelog. - TCOS: Got NetKey cards. 2000/01/16 - TCOS: Added ATR for NetKey card. - scdir: Does not work properly for Geldkarte, but I have no Geldkarte which was used, so I can debug it. - simman: Also empty record, when status==0xFF. 2000/01/17 - simman: Automagic MR handling removed, because the cellular does it. (At least the C25 does is.) - simman: C25 does not send automagically unsent SMSes. 2000/01/29 - simman: Added simman.txt. 2000/01/30 - scdir: Interprets AID in EF(DIR) of a TCOS card. 2000/02/01 - Cyberflex: Ordered 10 Cyberflex Access Augmented Crypto cards and a Reflex 64 card reader. 2000/02/02 - First date with only even digits since 888/8/28. - General: Added defines for Cyberflex Access Crypto and Augmented Crypto. - Smartcard: Added ATR for Cyberflex Access Crypto and Augmented Crypto. 2000/02/04 - Bradesco: Added scGpk4000SelPK to tbradesco. - Cyberflex: "FedEx" wanted probably deliver the cards today, but nobody was at home. - TCOS: Added dox/netkey.txt which contains the file structure of the Telesec NetKey card. 2000/02/05 - General: Added variable cla to SC_CARD_INFO. 2000/02/06 - Cryptoflex: cmd[4]=0 for scCryptoflexCmdDirectory. - Cyberflex: Added "Service Provider". 2000/02/07 - Cyberflex: Received Cyberflex Access Augmented Crypto cards. - Payflex: Received MicroPayflex cards. - Reflex64: Received Reflex 64. - Smartcard: Added ATR for MicroPayflex. - Smartcard: Corrected ATR length for Payflex 4k. - Dumb Mouse: Initial Waiting Time correctly set. - Towitoko: Initial Waiting Time correctly set. - T=1: Returns, when the fourth R-Block in sequence is received. - Cyberflex: Began tcyberflex. - Scdir: Added name for Cyberflex Access and MicroPayflex. - Cyberflex: A bit debugging. 2000/02/08 - Cyberflex: More tcyberflex and more debugging. - Cyberflex: Dunno what size to choose for creating a cyclic file. - crdetect: Added Towitoko reader type 0x64. 2000/02/09 - CT-API: Some drivers do reset the ICC and return the ATR when they only should reset the IFD. Adapted scCtapiInit. - CT-API: Argh! Get Status of a free CT-API driver returns only a single byte and no status word. Did I already say, that I hate these free "CT-API" drivers? 2000/02/11 - Cyberflex: The record length of a cyclic file is 4 bytes longer than the data you can access. So the minimum record length for creating is 5 bytes. - General: Added BOOLEAN display to SC_READER_INFO. - CT-API,Dumb Mouse,GCR400,Towitoko: Set display and pinpad in Init. - General: Added type for Reflex 60 series card readers. - Reflex60: Began driver. - Reflex60: Began treflex60. 2000/02/12 - Reflex60: Finished treflex60. - Reflex60: Finished driver and debugged. T=1 support missing. It seams that the reader exchanges only the blocks supplied, but why does it then need to know the EDC? - scdir/Geldkarte: Try Select A200 if Select AID does fail. - crdetect: Added scReflex60Detect. - crdetect: Fixed bug in scCtapiDetect. - The library itself has over 20000 lines. 2000/02/13 - CT-API: Added cttest, which tests CT-API/CT-BCS compliance of libraries. - Dox: Added timings.txt. 2000/02/19 - scdir: Added atrSTable to identify unsupported cards. - Smartcard: Added ATR for D2 CallYa GSM supplied by Heiko Stamer. 2000/02/20 - Reflex60: Wrote scReflex60WriteBuffer, scReflex60ReadBuffer, scReflex60ReadChar, scReflex60WaitForData. - Reflex60: Uses now sct1 to communicate with T=1 cards. - Fixed GetConfig call in programs. - Reflex60: Seting Read Timeout removed. 2000/02/22 - Cyberflex: Changed Status defines. - Cyberflex: Added define SC_CYBERFLEX_STATUS_INCREASE. (Thanks for this most informative manual. NOT!) - General: ri->scGetCap=NULL in NewReader. 2000/02/26 - Was at the CeBIT. Very interesting. I got lent a Proton card. 2000/02/27 - Towitoko: Changed CS in the LED command to 0xB4. Thanks Lukasz. 2000/02/28 - Smartcard: Added scSmartcardGetCardTypeExt. - Smartcard: Changed processing ATR at the end of scSmartcardGetCardType*. 2000/02/29 - scdir: Fixed bug, which cause the program to loop endlessly with a Geldkarte. - Proton: Added. - Smartcard: Added Proton ATR. - scdir: Outputs further information about Proton cards. 2000/03/01 - General: Added define for Multiflex 4k. - Smartcard: Added new ATRs for Multiflex 4k and 8k. 2000/03/02 - PAM: Added SCEZ PAM module with support for Multiflex and Geldkarte. - README: Added links to Cryptoflex/Cyberflex/Multiflex documentation. - PAM: Added PAM card init program with support for Multiflex. 2000/03/05 - Reflex60: Set Readtimeout to 100000us, because of some communication problems with scpaminit. 2000/03/06 - Reader: Removed getopt support from scReaderGetConfig. - PAM: Added getopt support to scpaminit. 2000/03/07 - PAM: Removed from scez distribution and packed separately. 2000/03/08 - Makefile: Builds now shared libraries for Linux. To run the programs directly from the source directory without installing the libraries, you need to set LD_LIBRARY_PATH accordingly. - flexpasswd: Getopted. - flexpasswd: Added Cyberflex Access. - flexpasswd: Added Int Auth for Cryptoflex/Multiflex. - scdir: Added verbose output for Cyberflex. 2000/03/09 - cyflexman: Wrote this to manage applets. - RPM: Install include files. - Makefile: Added entry for building RPM. 2000/03/10 - Cyberflex: Defines for ACL flags. - General: scGeneralGetRandStr returns status. Calls changed in pam_scez.c and scbasiccard.c. 2000/03/11 - General: Added function pointer scVerifyPIN to SC_READER_INFO. - Reader: Added function scReaderVerifyPIN. - Reader: Added defines for PIN coding. - Reflex60: Added function scReflex60VerifyPIN. 2000/03/15 - Reader: Fixed bug in scReaderGetConfig. - Towitoko: Set CWT to at least the CWT of the Chipdrive. - Towitoko: Removed delay in SendData. - Towitoko: Set maximum command size for sending data to 255. - Geldkarte/Towitoko: This combination works now MUCH better. - Payflex: Added first hack for driver. Will not be compiled into the library by default. - scdir: Added basic support for Payflex. 2000/03/18 - getcert: Modified to read certs from NetKey card, too. 2000/03/19 - scdir: Card type was wrong with Cyberflex Access cards. Thanks Christian. - Towitoko: Longer pause after initialization when defined TOWITOKO_LOW_POWER. 2000/03/20 - GPK4000: scGpk4000CmdGetChal -> scGpk4000CmdGetChall. - scanclains: Added. - General,Reader,T=0,T=1: Added callback function for waiting time extension requests from the card. - Towitoko: Longer pause after card activation when defined TOWITOKO_LOW_POWER. Pause after initialization changed back to normal. 2000/03/21 - cyflexman: Is only compiled, when DES is available. - OSF1: Inserted some breaks after default. - OSF1: Compiles cleanly, but can't reset card in Dumb Mouse. 2000/03/24 - SIO: Changed ifdefs for OSF1. - Makefile: Changed OSF1 entries. - General: LONG for OSF1 defined as unsigned int. - Makefile: Looks if ranlib exists. - Makefile: Added IRIX entries. - Makefile: Added HP-UX entries. 2000/03/25 - SIO: Changed ifdefs for HP-UX. - General: LONG for 64bit HP-UX defined as unsigned int. 2000/03/26 - Reader: Added scReaderCheckApdu which checks if an APDU is built correctly according to the case of the APDU. - T=0,T=1,ACR20,CT-API,Reflex60: Uses scReaderCheckApdu to check APDU. - ttcos: Supports NetKey card. - Geldkarte: Fixed classes of SelectFile. - Reflex60: Inserted little pause in scReflex60SendCmd:0x67. - Running tests under Linux: Schlumberger Reflex64 -------------------------------------- Dumb Mouse -------------------------------------------- | ACS Cybermouse (ACR20S) -------------------------- | | V V V tbasiccard + Compact BasicCard 1.1 + + + tbasiccard + Enhanced BasicCard 2.3 + + + tbradesco + Moeda Eletronica Bradesco -[1] + + tcryptoflex + Cryptoflex w/ Key Gen -[2] + + tcyberflex + Cyberflex Augmented Crypto (00) -[3] + + tgpk4000 + GPK4000-s + + + tgsmsim + Old French SIM card -[4] + + tmultiflex + Multiflex 8K ver.0x80 + + + ttcos + NetKey card -[5] + + scdir + Compact BasicCard 1.1 + + + scdir + Enhanced BasicCard 2.3 + + + scdir + Moeda Eletronica Bradesco + + + scdir + Cryptoflex w/ Key Gen + + + scdir + Cyberflex Augmented Crypto (00) -[3] + + scdir + Cyberflex Augmented Crypto (F0) -[3] + + scdir + Geldkarte + + + scdir + GPK4000-s + + + scdir + Eplus SIM card -[2] + + scdir + Old French SIM card -[4] + + scdir + Multiflex 8K ver.0x80 + + + scdir + Cash -[4] + + scdir + NetKey card -[5] + + Working cards 5 13 13 Not working cards 8 0 0 [1] Reader returns nonsense. Probably a bug in the reader. [2] Reader reports a card failure. [3] Reader reports an error and the ATR after trying to reset the card. Error is not described in the documentation. A bug in the reader? [4] Inverse convention. Dunno how I get this working. [5] Because Le==0 is not supported. - GSM SIM: Added Le for scGsmsimCmdSelect. 2000/03/29 - STARCOS: Received STARCOS Toolkit. Thanks Marco and thanks G&D! And now I can test the LED of the Chipdrives. - Running tests under Linux: G&D PCT 200 aka Towitoko Chipdrive extern I ------ V tbasiccard + Compact BasicCard 1.1 + tbasiccard + Enhanced BasicCard 2.3 + tbradesco + Moeda Eletronica Bradesco + tcryptoflex + Cryptoflex w/ Key Gen + tcyberflex + Cyberflex Augmented Crypto (00) + tgpk4000 + GPK4000-s + tgsmsim + Old French SIM card + tmultiflex + Multiflex 8K ver.0x80 + ttcos + NetKey card + scdir + Compact BasicCard 1.1 + scdir + Enhanced BasicCard 2.3 + scdir + Moeda Eletronica Bradesco + scdir + Cryptoflex w/ Key Gen + scdir + Cyberflex Augmented Crypto (00) + scdir + Cyberflex Augmented Crypto (F0) + scdir + Geldkarte + scdir + GPK4000-s + scdir + Eplus SIM card + scdir + Old French SIM card + scdir + Multiflex 8K ver.0x80 + scdir + Cash + scdir + NetKey card + Working cards 13 Not working cards 0 2000/03/31 - General: Defines for Sm@rtCafe. - Smartcard: ATRs for STARCOS and Sm@rtCafe. - Scdir: Added names of STARCOS and Sm@rtCafe. 2000/04/02 - Makefile: Remove shared libs on clean. - General: Added defines for MFC. - Smartcard: Added ATR for MFC 4.1. - MFC: Added first hack. - scdir: Added some support for MFC. 2000/04/06 - SmartCafe: Implemented driver. - Makefile: Remove scanclains when doing clean. - Smartcard: Call ScSmartcafeInit. - Smartcard: Added tsmartcafe. - scdir: Added basic support for Sm@rtCafe. - SmartCafe: RIP. 2000/04/07 - SmartCafe: Tested without card. - SmartCafe: Added scSmartcafeAuthApplet. 2000/04/08 - SmartCafe: tsmartcafe should be run until the end with a functional Sm@rtCafe. - SmartCafe: scSmartcafeAuthApplet works with encryption, but not with signature. 2000/04/14 - CardMan: Utimaco wanted to send me a free CardMan card reader. Today a funny NDA arrived. The penalty would be 10 million Euros. And especially funny is the last paragraph which handles situations not covered by the NDA. These shoule be handled as they would have been regulated if the signees of the NDA would have known about them. I'm not going to sign this just to get the documentation for a card reader. It is not my business to help to sell their card readers. I'll probably order soon a PC Card reader from Schlumberger. Their documentation is freely downloadable from the internet. 2000/04/19 - B1: Finally I received the B1 Pro from Deutsche Telekom, which I ordered on 2000/01/12. (See entry there.) Its firmware version is 0.91. Is this bananaware? 2000/06/07 - Dumbmouse,Towitoko: Reset of cards with an ATR without historical data works now. 2000/06/12 - Dox: Began writing real documentation in the texinfo format. 2000/06/19 - Scanclains: Fixed bug regarding SW. Wonder why it worked before. 2000/05/20 - Smartcard: Added ATR for SamOS v2.7. 2000/05/21 - Ordered Reflex 20, Reflex 72, Cryptoflex 8K, Cryptoflex for W2k from Schlumberger. 2000/05/25 - cfupload: Simple tool to upload transparent files to a Schlumberger Cyberflex. (And remove them and create DFs.) This has to be extended to make it possible to create record files. - flexpasswd: Keys will also be written as characters. 2000/05/26 - Received Reflex 20, Reflex 72, Cryptoflex 8K, Cryptoflex for W2k. - Added ATR for Cryptoflex 8K (Cryptoflex for W2k). - Flexpasswd: Added transport key of Cryptoflex for W2k. - Scdir: Added getopt functionality. 2000/06/07 - Dumb Mouse,Towitoko: Fixed bug for cards with an ATR without historical data. - README: Updated. 2000/06/11 - Dox: Added new documentation as texinfo. 2000/06/12 - Dox: Finished example.c. - Dox: Finished chapter 'Example application'. - Dox: Added appendix 'Example application source'. 2000/06/13 - Dox: Wrote chapter scGeneral functions, section functions. 2000/06/22 - Scanclains: Fixed bug. - Smartcard: Added ATR for SamOS v2.7. 2000/06/25 - Flexpassed: A bit improved. - Cfupload: Added. This is a simple tool to upload files to Schlumberger Cyberflex cards. 2000/06/26 - Smartcard: Added ATR for Schlumberger Cyberflex 8K. - Flexpasswd: Added transport key of Cryptoflex for W2k. - Scdir: Added getopt functionality. - Cryptoflex: Added transport key of Cryptoflex to tcryptoflex.c. 2000/06/29 - Dox: Added scez.texi to Makefile. 2000/07/10 - Inserted 'extern "C"' into header files for C++. - Smartcafe: tsmartcafe compiles now without DES. - Changed "apdu.class" to "apdu.cse" for C++. 2000/07/12 - README: Updated. 2000/07/13 - Changed every occurence of "new" to make it more C++ compatible. - Added defines for Reflex 20. Hopefully I will get it working. 2000/07/17 - Reader: Added support for keeper configuration database. - Reader: scReaderGetConfig should have no memory leak. 2000/07/18 - General: Added nr to SC_READER_CONFIG to allow multiple configurations. 2000/07/20 - Got ten G&D SmartCafe cards. Thanks Marco. 2000/07/22 - Smartcard: New ATR for GSM card. 2000/07/23 - Reflex 60: Extended ACK waiting time to 250ms. - SmartCafe: Changed INSTALL Load to working format like in the Appendix of the documentation. - SmartCafe: Tested with tsmartcafe. Now everything besides signed and/or encrypted applet loading should work. 2000/07/25 - Starcos: Changed SPK2.2 ATR definition to detect the HBCI card. 2000/07/26 - scdir: Added AID for HBCI. 2000/07/31 - Smartcard: "Added" ATR for TCOS 1.2. - sio,siolight: Added O_EXCL to open in Unix. 2000/08/03 - Reader: Fixed bug in scReaderGetConfig. Thanks Per. 2000/08/03 - Added patch from Per Harald Myrvang with following improvements. Thanks. - Compiles on free BSDs. - Towitoko: Driver uses LED to signal what it does. - scwait: Added scwait. This waits for a Cyberflex card to be inserted. - sio,siolight: A second access does not block. 2000/08/04 - scwait: Including unistd.h. 2000/08/06 - General: Extended SC_CARD_VENDOR* defines to 32 bit. So mask should be 0xFFFFFF00. - scdir: Cleaned up card type output. - Towitoko: Cleaned up versions in sctowitoko.h. 2000/08/08 - icons: Added SCEZ icons. 2000/08/10 - TCOS: Got a new PKS-Card from Telesec using the SLE66 chip from Infineon. Maybe they think, that the SLE44 is not anymore secure enough. 2000/08/12 - TCOS: Changed SC_CARD_TCOS_SIGG to SC_CARD_TCOS_44 and SC_CARD_TCOS_NETKEY to SC_CARD_TCOS_66. Changed all files according to this. 2000/08/13 - cttest: Modified Makefile to compile cttest. - cttest: Added commend about not verifying dad/sad handling. - Makefile: Included icons. - rpm: Updated scez.spec.in. 2000/08/23 - Called Deutsche Post Signtrust asking about their SigG-compatible signature card. This guy had humour. Let's see, when I get my papers. 2000/08/24 - Changed license to BSD 2. 2000/08/26 - Got my papers from Signtrust for the first round and sent them back. 2000/08/27 - First release of the application programmers documentation. 2000/08/28 - Palm: Compiles again cleanly for the Palm Pilot. - README: Comment about CVS. 2000/09/01 - CVS: Added Id to every source file. Always learning something new. - cardcheck: Added. This is a program to help you get information about an unknown card. 2000/09/02 - Signtrust refused my rejection of §2 (3) of the therms of the contract. §2 (3) states, that you have to return the chip card upon termination of the contract. I rejected this, because I think the card is my property because I payed for it. And because on the card is a RSA key for encryption/decryption. Files and mails encrypted with his key are not decipherable without the card. So Signtrust has lost one customer. Telesec has no similar regulation in its therms of contract. 2000/09/03 - Everything SC_EXIT_OK. (Besides the test programs.) - MFC: scMfcCmdRehabilidate -> scMfcCmdRehabilitate. - MFC: scMfcCmdRehabilitate: INS=0x44. - Smartcard: ATRs only included, when module is included. - cardcheck: Added. This tests unknown (and also known cards) for commands and in future files. 2000/09/04 - cardcheck: Fixed some typos. - RPM: Updated scez.spec.in. 2000/09/08 - General: Defines for GPK8000 and GPK16000. - Smartcard: ATRs for GPK8000 and GPK16000. 2000/09/15 - Smartcard: ATR for Viag Interkom Loop card. 2000/09/16 - Smartcard: Using GPK4000 driver for GPK8000. - GPK4000: Disabled GetCap for GPK8000 - scdir: Works with GPK8000 using GPK4000 driver. - scdir: Description for GPK8000 cards. - scdir: Reads max session key from GPK4000/8000 cards. 2000/09/17 - cardcheck: Added some fingerprinting code. (Inspiration from the nmap TCP/IP fingerprinting.) Even simple fingerprinting works very well. 2000/09/20 - Gemplus: Got GPK8000s, GemPC400 and GemPC410. 2000/09/21 - GCR410: Reset works. 2000/09/22 - scSmartcard: Added ATR for Paycard. - GCR410: Works with most commands. Dunno why it returns A2 or E4 with some commands. (Which are some to many.) 2000/10/18 - Quick: Simple support. - Quick: Added quick.txt with the file structure and contents of a Quick card. - scdir: Prints serial number of Quick card. 2000/10/21 - Changed rsp[ ... ] to rsp[ SC_GENERAL_SHORT_DATA_SIZE+2 ] in every card driver. 2000/10/25 - Moved ci.status to ri.status. 2000/10/26 - GPK4000: Fixed bug in GetChallenge. 2000/10/29 - Bradesco: Updated information about the data in dox/bradesco.txt. 2000/11/13 - scdir: Added AID for SigG/OIC. 2000/12/05 - SIO: Using flock under Linux to lock serial port. (nonblocking) - Reader: Fixed bug in scReaderGetConfig (malloc one to small). 2000/12/06 - SIO: Added flock to siolight. - Perl5: Tried to make a perl5 interface with SWIG. SWIG has problems with the word "WORD". 2000/12/07 - SIO: Removed O_EXCL from open. Didn't make any sense. (sio and siolight) - SIO: Added fcntl for locking. (sio and siolight) - README: Added description of mandatory locking for Linux. - Makefile: Changed CRYPTLIBPATH to /usr/local/lib. - Perl5: Module compiles cleanly and some helper functions have been added. Header files with "#ifndef SWIG" or "#ifndef SWIG_C". 2000/12/08 - Perl5: A bit tested. 2000/12/12 - README: Added define for Intertex reader. - Intertex: Added fully undebugged driver. (3 hours of hacking) 2000/12/18 - Intertex: Ordered an Intertex IX2 PCMCIA smart card reader. It does not cost 120 DEM, but 249 DEM. The person from Sweden, who made the error to write DEM instead of US$ would have sold me one for the lower price. But even their German distributor, who did not make the error, sells me one for a much reduced price. Very friendly people. I I ordered the reader in Germany. I means less paying problems and faster delivery. 2000/12/19 - Makefile: Creates now tar file with path. - SPEC: Addjusted for above change. - Running tests under Linux: Gemplus GemPC410 aka GCR410 ---------------------- V tbasiccard + Compact BasicCard 1.1 + tbasiccard + Enhanced BasicCard 2.3 + tbradesco + Moeda Eletronica Bradesco - [1] tcryptoflex + Cryptoflex w/ Key Gen + tcyberflex + Cyberflex Augmented Crypto (00) - [2] tgpk4000 + GPK4000-s + tgsmsim + Old French SIM card + tmultiflex + Multiflex 8K ver.0x80 - [3] ttcos + NetKey card - [4] scdir + Compact BasicCard 1.1 + scdir + Enhanced BasicCard 2.3 + scdir + Moeda Eletronica Bradesco + scdir + Cryptoflex w/ Key Gen + scdir + Cyberflex Augmented Crypto (00) + scdir + Geldkarte + scdir + GPK4000-s + scdir + Eplus SIM card + scdir + Old French SIM card + scdir + Multiflex 8K ver.0x80 - [3] scdir + NetKey card - [5] Working cards 7 Not working cards 4 [1] A2 (Card malfunction) after a Select File Parent. (Works now) [2] A2 (Card malfunction) after a Select File. [3] E4 (Card sent an invalid procedure byte) after Select File. [4] F7 (Card removed) after a Select File MF. [5] A2 (Card malfunction) after a Select File. 2000/12/20 - Smartcard: Added ATRs for GSM SIM cards. Saenks kju. 2000/12/22 - GSM SIM: Bug fixed in scGsmsimCmdRunGsmAlgo. Saenks Uwe Horn. 2000/12/23 - Inserted const where appropriate. - texi: Updated function declarations for const. - Makefile: By default compiled with Intertex IX2 reader driver. - Got a Kobil KAAN Pro for testing. - Running tests under Linux: Kobil B1 Pro v0.91 via CT-API -------------------------- Kobil KAAN Pro v1.03 via CT-API ------------------ | V V tbasiccard + Compact BasicCard 1.1 + + tbasiccard + Enhanced BasicCard 2.3 + + tbradesco + Moeda Eletronica Bradesco - [1] - [4] tcryptoflex + Cryptoflex w/ Key Gen - [2] - [2] tcyberflex + Cyberflex Augmented Crypto (00) + + tgpk4000 + GPK4000-s + + tgsmsim + Old French SIM card + + tmultiflex + Multiflex 8K ver.0x80 - [3] - [3] ttcos + NetKey card + + scdir + Compact BasicCard 1.1 + + scdir + Enhanced BasicCard 2.3 + + scdir + Moeda Eletronica Bradesco + + scdir + Cryptoflex w/ Key Gen - [2] - [2] scdir + Cyberflex Augmented Crypto (00) + + scdir + Geldkarte + + scdir + GPK4000-s + + scdir + Eplus SIM card + + scdir + Old French SIM card + + scdir + Multiflex 8K ver.0x80 - [3] - [3] scdir + NetKey card + + simman + Eplus SIM card + + Working cards 8 8 Not working cards 3 3 [1] Hangs for 256 seconds after a Select File Parent and returns with an error. [2] Reset fails. [3] Hangs for 8 seconds after a Select File command. [4] Hangs a short while after a Select File Parent and returns with an error. This is after analysing each error and fixing the bugs in the following lines. I looked at the communication of the CT-API driver with the reader and IMO the errors left are because of the reader. - Cyberflex: Fixed bug in scCyberflexCmdSeek. - GPK4000: Fixed bug in scGpk4000CmdSelFil. - GPK4000: Fixed bug in scGpk4000CmdSetCodCrycks. - Adjusting function names to naming convention. (Acronyms in function names are written as capitals.) List of changes: sed -e 's/scBasiccardDecrRApdu/scBasiccardDecrRAPDU/' sed -e 's/scBasiccardEncrCApdu/scBasiccardEncrCAPDU/' sed -e 's/scGsmsimCmdChangeChv/scGsmsimCmdChangeCHV/' sed -e 's/scGsmsimCmdDisableChv/scGsmsimCmdDisableCHV/' sed -e 's/scGsmsimCmdEnableChv/scGsmsimCmdEnableCHV/' sed -e 's/scGsmsimCmdUnblockChv/scGsmsimCmdUnblockCHV/' sed -e 's/scGsmsimCmdVerifyChv/scGsmsimCmdVerifyCHV/' sed -e 's/scPtsCalcPck/scPtsCalcPCK/' sed -e 's/scPtsCheckPck/scPtsCheckPCK/' sed -e 's/scPtsDoPts/scPtsDoPTS/' sed -e 's/scReaderCheckApdu/scReaderCheckAPDU/' sed -e 's/scReaderPts/scReaderPTS/' sed -e 's/scSmartcafeCmdSetPin/scSmartcafeCmdSetPIN/' sed -e 's/scSmartcafeCmdVerifyPin/scSmartcafeCmdVerifyPIN/' sed -e 's/->scPts/->scPTS/' Relevant may be here for applications programmers: scGsmsimCmdChangeChv -> scGsmsimCmdChangeCHV scGsmsimCmdDisableChv -> scGsmsimCmdDisableCHV scGsmsimCmdEnableChv -> scGsmsimCmdEnableCHV scGsmsimCmdUnblockChv -> scGsmsimCmdUnblockCHV scGsmsimCmdVerifyChv -> scGsmsimCmdVerifyCHV scSmartcafeCmdSetPin -> scSmartcafeCmdSetPIN scSmartcafeCmdVerifyPin -> scSmartcafeCmdVerifyPIN 2000/12/24 - CT-API: Recognises, if tag is sent by a Get Status. - GPK4000: Changed case of select parent to case 4. It works then with the GCR410. - Intertex: Started debugging. Intertex IX2 ------------------------------------- V tbasiccard + Compact BasicCard 1.1 + tbasiccard + Enhanced BasicCard 2.3 + tbradesco + Moeda Eletronica Bradesco + tcryptoflex + Cryptoflex w/ Key Gen + tcryptoflex + Cryptoflex 8K + tcyberflex + Cyberflex Augmented Crypto (00) - [1] tgpk4000 + GPK4000-s + tgsmsim + Old French SIM card + tmultiflex + Multiflex 8K ver.0x80 - [2] ttcos + NetKey card - [3] scdir + Compact BasicCard 1.1 + scdir + Enhanced BasicCard 2.3 + scdir + Moeda Eletronica Bradesco + scdir + Cryptoflex w/ Key Gen + scdir + Cryptoflex 8K + scdir + Cyberflex Augmented Crypto (00) - [1] scdir + Geldkarte + scdir + GPK4000-s + scdir + Eplus SIM card + scdir + Old French SIM card + scdir + Multiflex 8K ver.0x80 - [2] scdir + NetKey card - [3] simman + Eplus SIM card + Working cards 9 Not working cards 3 [1] 140 (Bad Procedure Byte) after Get Response after Select File MF. [2] 129 (Unresponsive card) after Select File. [3] 129 (Unresponsive card) while changing IFSD. Same error after a Select File MF and each resynchronisation attempt. 2000/12/25 - Summary of reader tests: Reader Cards Reader working type ACS ACR20S aka Cybermouse 38% i Dumb Mouse 100% d G&D PCT-200 aka Towitoko Chipdrive extern I 100% d Gemplus GCR410 aka GemPC410 64% i Intertex IX2 75% si Kobil B1 Pro v0.91 73% i Kobil KAAN Pro v1.04 73% i Schlumberger Reflex64 100% si Towitoko Chipdrive micro 100% d Reader type: d: dumb, si: semi-intelligent, i: intelligent - Cryptoflex: Changed ChangePIN, Directory, UnblockPIN, VerifyPin for Cryptoflex 8k. - Cryptoflex: Added RSAKeyGenUpd, SHA1Interm, SHA1Last for Cryptoflex 8k. - Added dox/newfunctionstr.txt, which contains proposed macros for card driver writing. - Added dox/cryptoflex.txt, which contains the file structure of a Cryptoflex 8K for Windows 2000. 2000/12/28 - MFC: Got a Xerox copy card (MFC 4.1 8kB). Thanks kju. - MFC: Fixed bug in Select. 2001/01/02 - scdir: Fixed bug in MFC section. Erase password may not be set, in which case the Addess of MF was off by one byte. - Dumb Mouse: Set filter echo, when an UniProg is found. Thanks, Uwe Horn. - Dumb Mouse: Usage of DCD by the UniProg is inverse. Thanks, Uwe Horn. - Dumb Mouse: Special reset sequence for UniProg. Thanks, Uwe Horn. 2001/01/03 - cardcheck: Fingerprint status words are written to a file. 2001/01/15 - SmartCafe: Added a Get Response, just to be sure. 2001/01/16 - SmartCafe: Wrote cafeman. 2001/01/17 - scdir: A bit more information about the SmartCafe. - Smartcard: Added ATR for Postbank Geldkarte. 2001/01/18 - T=1: Datalen of WTX answer was 0. 2001/01/20 - SmartCafe: Encryption and signing of applets with DES and 3DES produce the correct result. - SmartCafe: Added parameter maclen to CreateML. - SmartCafe: Tested with DES/3DES encryption and signing. - SmartCafe: Added PIN and key change to cafeman. - SmartCafe: Added PIN verification to Clear Memory in cafeman. - SmartCafe: With cafenman signed/encrypted applets can be stored in a file and then again read and uploaded into the card. 2001/01/21 - SmartCafe: scSmartCafeCmdGetResp -> scSmartcafeCmdGetResp. - Geldkarte: Added command Get Statistics. - scdir: Formated output. - scdir: Added output of Get Statistics. - cardcheck: CLA in fingerprinting can begin with 6 or 9. 2001/01/22 - Basiccard,tbasiccard: Disabled ClearEeprom and WriteEeprom for BC3.*. 2001/01/31 - Intertex: Sent them the three non-working cards. Probably a problem with the PTS. The IX2 is trying to run e.g. the Multiflex at 170kbps. - cyflexman: Select and deselect should hopefully work. 2001/02/01 - Kobil: Sent them the three non-working cards. 2001/02/02 - Intertex: Wow! They received today the cards. - dox/smartcafe: Comment about heap. 2001/02/03 - cyflexman: Execution of applets requires public read access. - sct1,scacr20,scctapi: Not pedantic about APDU case when NO_APDU_CHECK is defined. 2001/02/05 - Intertex: Wow!^2 I received today a mail from Mats. It is indeed the speed. Let's see, when I get the new firmware. 2001/02/06 - Intertex: Wow!^3 I got this morning the new firmware. I will test it soon. - Intertex: Testing Intertex IX2 ------------------------------------- V tbasiccard + Compact BasicCard 1.1 + tbasiccard + Enhanced BasicCard 2.3 + tcryptoflex + Cryptoflex 8K + tcyberflex + Cyberflex Augmented Crypto (00) + tgpk4000 + GPK4000-s + tgsmsim + Old French SIM card + tmultiflex + Multiflex 8K ver.0x96 + tsmartcafe + SmartCafe + ttcos + Telesec old SigG card + scdir + Compact BasicCard 1.1 + scdir + Enhanced BasicCard 2.3 + scdir + Cryptoflex 8K + scdir + Cyberflex Augmented Crypto (00) + scdir + Geldkarte + scdir + GPK4000-s + scdir + MFC 4.1 + scdir + Multiflex 3K + scdir + Multiflex 8K ver.0x96 + scdir + Quick + scdir + Eplus SIM card + scdir + Old French SIM card + scdir + SmartCafe + scdir + Netkey card + scdir + Telesec old SigG card + simman + Eplus SIM card + Working cards 15 Not working cards 0 Very good. - Current summary of reader tests: Reader Cards Reader working type ACS ACR20S aka Cybermouse 38% i Dumb Mouse 100% d G&D PCT-200 aka Towitoko Chipdrive extern I 100% d Gemplus GCR410 aka GemPC410 64% i Intertex IX2 100% si Kobil B1 Pro v0.91 73% i Kobil KAAN Pro v1.04 73% i Schlumberger Reflex64 100% si Towitoko Chipdrive micro 100% d Reader type: d: dumb, si: semi-intelligent, i: intelligent - tgpk4000: Executes Erase Card command depending on card type. 2001-02-07 - Intertex: Removed scIntertexSetSpeed. Didn't do anything and wasn't used. 2001-02-09 - scdir: Added AID for IBM PKCS#11. 2001-02-11 - OpenPlatform: Added basic and untested OpenPlatform commands. - Intertex: Get every ca. 500 activates/resets and error and about every 2000 commands. So this reader is currently not usable for scanning and fingerprinting. 2001-02-12 - SmartCard: Added more ATRs for Multiflex. Thanks Matthias Eckermann. - ttcos: Does read the AID. Thanks Matthias Eckermann. - Perl: Added scopenplatform.h 2001-02-13 - Makefile: Added scmacros.h 2001-03-01 - Reader: Check for NULL pointer in apdu. - Dox: Added comment about reponse buffer size. - Smartcard: Added ATR for Debitel D2. - OpenPlaform: Fixed INS for Load. - Cardcheck: Added INS bytes for OpenPlatform. 2001-03-20 - Towitoko: sleep -> select in Linux because of incompatibility with Netscape. Thanks Regis Gaschy. - STARCOS: Added basic drivers. Thanks Regis Gaschy. - Makefile: Added scstarcos.* - General: Added WITH_STARCOS - Smarcard: Added Starcos. 2001-03-21 - crdetect: Restructured. - Reader: Added SC_READER_DETECT_INFO. - Intertex,Dumbmouse,Towitoko,ACR20,Reflex60,CT-API: Added sc*Detect. - CT-API: T0 Case 1 commands are stripped to 4 bytes. 2001-04-03 - CT-API: Stubs for missing dynamic linking compile now again. Thanks Matthias Bauer, for pointing this out. 2001-04-12 - scdir: Works now with Geldkarte v3. - reader: Moved definition of NAMENUMBER to screader.h. 2001-04-18 - That was v1.0. 2001-05-16 - smartcard: ProcessATR uses only first specified protocol in ATR. - SmartCafe: Removed explicit setting of protocol. 2001-05-17 - SmartCafe: Added typecast in scSmartcafeAuthApplet. - STARCOS: Added scSmartcardProcessATR to GetCardData. 2001-05-19 - Makefile: Added scgpr400. - General: Added ri->fd and setting it in scGeneralNewReader. - General: Added SC_READER_GPR400. - Reader: Added GPR400 funktions and variable table entry. - GPR400: Added first driver version. T=0 works. It seams, that the GPR400 has problems with the same cards as the GCR400. - Running tests under Linux: Gemplus GemPC400 aka GPR400 ---------------------- V tbradesco + Moeda Eletronica Bradesco + tcryptoflex + Cryptoflex w/ Key Gen - [1] tcyberflex + Cyberflex Augmented Crypto (00) - [2] tgpk4000 + GPK4000-s + tgsmsim + Old French SIM card + tmultiflex + Multiflex 8K ver.0x80 - [2] scdir + Moeda Eletronica Bradesco + scdir + Cryptoflex w/ Key Gen + scdir + Cyberflex Augmented Crypto (00) - [3] scdir + GPK4000-s + scdir + Eplus SIM card + scdir + Old French SIM card + scdir + Multiflex 8K ver.0x80 - [4] Working cards 7 Not working cards 3 [1] Increase succeeds, when it should fail without sending data. [2] A2 (Card malfunction) after a Select File. [3] A2 (Card malfunction) after a Get Data. [4] E4 (Card sent an invalid procedure byte) after Select File. The GPR400 has very similar failures as the GCR410. The failure reasons of the IX2 suggest, that the GPR400 has problems with fast cards too. 2001-05-29 - Makefile: Moved cafeman from progs to desprogs. 2001-07-09 - scdir: Added determination of HBCI support for GeldKarte. - GeldKarte: Added Verify PIN command. 2001-09-05 - Corrected scez.texi. 2001-09-13 - tcos: Added many command functions. 2001-09-15 - General: Added defines for Blue Dot Connector and JiB. - Smartcard: Added "ATR" for iButton. - Smartcard: Added 1-Wire support to scSmartcardProcessATR. - Blue Dot: Added. - tbluedot: Added. - crdetect: Added Blue Dot Connector. - Intertex: Made detection more reliable. (Blue Dot detected did confuse the Intertex detection.) - Smartcard: Fixed bug in scSmartcardGetCardTypeExt. - README: Updated. 2001-09-16 - License: SCEZ is now made available under a BSD2 license and alternatively unter the LGPL. 2001-09-24 - SIO Light: Fix for FreeBSD. Saenks Toni. - GPR400: Fix for FreeBSD. Saenks Toni. 2001-11-06 - Smartcard: Added ATR for VictorVox GSM card. 2002-01-10 - Dumb Mouse: Added support for the Phoenix reader. Sanks h.berlioz@freesurf.fr. - EasyCheck: Added. Sanks Mikael Nystrom. 2002-01-25 - T1: Bug fixed. resplen was uchar and not int. 2002-02-06 - cardcheck: MULTOS commands added to list. 2002-02-10 - scsh: Added readline support. 2002-02-13 - T=1: Cleaned up by Andreas Jellinghaus. 2002-02-14 - Proton: Removed AskRandom. - Proton: Added some comments. - Proton: Added cash.txt. 2002-02-15 - automake: Added support for crosscompiling for ARM-Linux. 2002-02-18 - README: Added "-z6" to cvs checkout. 2002-02-19 - Smartcard: Added ATRs for Schlumberger Cyberflex Access Developer 32k, Cryptoflex 16k and Swiss Postcard. 2002-03-05 - Season: Added software for Season logger. 2002-03-22 - filescan: Added. 2002-04-9 - Carte Bancaire: Added. - scdir: Added support for Carte Bancaire. 2002-04-13 - Smartcard: Added ATR mask for Carte Bancaire. - Carte Bancaire: Added scCartebPin2Hex. 2002-04-29 - scsh: Added support for ;-comments. 2002-06-18 - T=1: Bugfix (reset of errcntr) 2002-06-20 - ctapi: Fixed autoconf defines. 2002-07-04 - autoconf: Works now with RH 6.2 and 7.0 default installation. - rpm: Updated spec file. 2002-07-11 - scdir: Added output for GeldKarte with HBCI application. Mahlzeit Matthias Bruestle <m@mbsks.franken.de> aka endergone Zwiebeltuete BHEF
Releases
No releases published
Packages 0
No packages published