OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: David Corcoran (corcoranlinuxnet.com)
Date: Tue Jul 03 2001 - 10:37:42 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    From: Jean-Luc Giraud <jl.giraudonline.fr>
    To: sclinuxlinuxnet.com
    Subject: Re: [Fwd: MUSCLE Error using an IBM MFC in GemPlus readers.]
    Message-ID: <20010702214430.A4776online.fr>
    Reply-To: jl.giraudonline.fr
    References: <3B405D32.A950BBCCgemplus.com>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=us-ascii
    User-Agent: Mutt/1.0.1i
    In-Reply-To: <3B405D32.A950BBCCgemplus.com>; from Jean-Luc.GIRAUDgemplus.com on Mon, Jul 02, 2001 at 01:38:26PM +0200

    Rich Wareham wrote:
    >
    > Hello,
    >
    > I am currently porting some Windows software for the management of
    > smartcards over to Linux, the cards in question are IBM MFC 4.22 smart
    > cards. I get the same error on card power up from both the GemPlus 410
    > serial and GemPlus 430 USB card reader when using the PCSClite drivers. In
    > both cases the drivers send the following OROS command:
    >
    > 12
    >
    > which attempts to power up the card and return the ATR, the response is
    >
    > A0 3B EF 00 FF 81 31 FF 65 49 42 4D 20 4D 46 43 39 32 32 39 32 38 39 30 17
    >
    > The first byte is an error code which is, according to the GemPlus docs,
    > "Error in the card reset response, such as unknown exchange protocol, or
    > byte TA1 not recognized [sic]. The card is not supported by OROS. The card
    > reset response is nevertheless returned."
    >
    > Since I'm rather new to smart-card programming, could someone tell me what
    > this means and who is at fault.
    >
    > BTW, the same readers and cards work fine with PC/SC under Windows.

    As far as the 430 driver is concerned, you can try to modify ifdhandler.c
    to make it more permissive.

    In function IFDHPowerICC( DWORD Lun,...) CHANGE:
        switch(Action)
        {
         ....
            case IFD_POWER_UP:
            case IFD_RESET:
            ....
                 switch ( pcbuffer[STATUS_OFFSET] )
                 {
                     case GCORE_OK:
                     case GCORE_WRONG_TCK:
                     .....

    BY:
        switch(Action)
        {
         ....
            case IFD_POWER_UP:
            case IFD_RESET:
            ....
                 switch ( pcbuffer[STATUS_OFFSET] )
                 {
                     case GCORE_OK:
                     case GCORE_WRONG_TCK:
                     case 0xA0:
                     .....

    The driver should not complain any more, but I don't know if the reader will
    work! I don't have any card with this ATR, so I can't do any test.

    I hope this helps.
    JLuc.

    ***************************************************************
    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
    ***************************************************************