Does Java Card require a USB CCID-compliant smart card reader?

Hi experts,
Does Java Card require a USB CCID-compliant smart card reader? I'm currently working with PC/SC usb token and it requires usb CCID-compliant smart card reader, which seems very inconvenient for my clients and I'm wondering if Java Card has the same issue? (I'm thinking about switching the project to Java Card)
Any help will be much appreciated!
Z.Zen

Hi,
You will still need to install drivers for some card readers to function correctly. I know some work out of the box on Windows and OS X (10.5+ at least) ships with the pcsclite CCID driver from the Muscle card project. When I view my reader in Windows device manager the Manufacturer is "USB CCID Compliant".
The only real difference between what you are doing with the USB CCID token and Java Card is that the card and reader are separate in the Java Card option where as the USB token has the reader and chip in one package.
Cheers,
Shane

Similar Messages

  • Does Java Card 2 API support all the smart card?

    Does Java Card 2 API support all the smart card? I guess all the java cards are smart card but all the smart card are not java card. so Java card 2 API supports only java card. It does not support all the smart card. Please somebody let me know wheather I am correct or not. Because I want to make an application which supports all the smart card. I am confuse wheather I have to use JavaCard API or OCF or any other framework/API. Please help me. Thanks

    I am clear with java card.
    But I want to make an application which can verify the PIN inside card and read logon certificate, which is saved inside card. Is there any framework which I can use to full fill my simple requiremnt. I dont want to deal with any applet inside card.

  • Does the iMac support a USB-5.1 sound card?

    I have a new Intel iMac connected though USB to a "Sound Blaster Live 24 bit" sound card connected via mini-jacks to a logitech 5400, but I am not getting 5.1.
    In the Audio MIDI pref pane, I can only select "multichannel," not "5.1".
    Is there any way to fix this? If not, I need an optical to mini jack... any idea if there is such a thing?
    Matthew

    Hi Matthew,
    I don't know about the SBlive 24bit device.
    However, the Intel iMac's all have built in 5.1 optical output from the normal headphone jack (it is optical and electrical). There exist TOSLink to 3.5mm optical cables, and some can even be converted to either.
    There are also some optical to coax SPDIF converters available if your speakers only take SPDIF coax and not SPDIF optical.

  • W520 Smart Card reader does not show up in Device Manager

    W520 Smart Card reader does not show up in Device Manager.
    It was working before and now nothing.  Nothing happens when SD card plugges in.
    Could my smart card reader stop working or is this a configuration issue?
    Any thoughts?
    thanks
    Ian

    Hi  Ian,
    Welcome to the community, and thanks for the post.
    The issue is related with software, to resolve this you need to re-install the card reader driver from the below mentioned web link.
    http://support.lenovo.com/en_SG/downloads/default.page?
    After that check if the issue get resolved.
    Regards,
    Sameer
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution".! This will help the rest of the Community with similar issues identify the verified solution and benefit from it.
    Follow @LenovoForums on Twitter!

  • Smart Card Problem in Java with server

    Hi everybody.I use smart card authentication to sign my web application which was deployed in apache tomcat and I use servlet & jsp fro developing this web application.When deploy application on local machine there is no problem.
        public String getInfo(String password) {
            String certInfo = "";
            try {
                String configName = "C:/smartcards/config/pkcs11.cfg";
                String PIN = password;
                Provider p = new sun.security.pkcs11.SunPKCS11(configName);
                Security.addProvider(p);
                ((SunPKCS11) p).logout();
                KeyStore keyStore = KeyStore.getInstance("PKCS11");
                char[] pin = PIN.toCharArray();
                keyStore.load(null, pin);
                Enumeration aliasesEnum = keyStore.aliases();
                String alias = (String) aliasesEnum.nextElement();
                X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);
                certInfo += cert.toString();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            return certInfo;
    The preceding method return String which was stored in smart card when I pass password of smart card.If password wrong load failed.
    Then I deployed this web app in the server.When I run this app everything is ok when I also remote desktop connected to server.When I close RDP I get Token has been removed exception on web server.How can I solve this problem.I want to also sign to app without remote desktop connection.

    Use PreparedStatement and SimpleDateFormat classes
    http://onesearch.sun.com/search/onesearch/index.jsp?qt=%2BPreparedStatement+%2BSimpleDateFormat+&qp=siteforumid%3Ajava48&chooseCat=allJava&col=developer-forums&site=dev

  • T61/X61 integrated smart card reader

    Hi,
    Does anyone know if the optional smart card reader on the T61/X61 laptops are based on PCMCIA or Expresscard standards, what is the exact make and model, and if they are CCID compliant?
    Thanks.

    http://shop.lenovo.com/SEUILibrary/controller/e/na/LenovoPortal/en_US/catalog.workflow:item.detail?GroupID=38&Code=41N3043
    Add Smart Card security technology to ThinkPad notebook computers equipped with a 54-mm ExpressCard slot. The Gemplus ExpressCard Smart Card Reader from Lenovo offers an ideal interface between a portable computer and a smart card, to control access to databases or corporate computer networks. A smart card is a plastic card that contains personalized information. It's function can range from simple data storage to more advanced memory and processing capabilities. The Gemplus ExpressCard Smart Card Reader from Lenovo is reader hardware only and does not include blank smart cards or smart card management software.
    Features and Benefits:
    Reads and writes(1) to all ISO-7816 compatible smart cards.
    Reader hardware connects to any ThinkPad equipped with a 54-mm ExpressCard slot.
    Includes drivers for Microsoft Windows 2000 and Windows XP to help get you up and running quickly.
    And it's backed by Lenovo's limited warranty with renowned Service and Support available from IBM.
    (1) Although this reader can be used to access any ISO 7816-compliant Smart Card, Lenovo's primary intent is to enable ThinkPad customers to integrate a security authentication application of their choosing.
    have a look it is an express card version built by Gemplus, not sure about the rest.
    Message Edited by wjli2 on 06-25-2008 12:42 PM

  • Verify user pin on a smart card & load a cap file on a card (with eclipse)

    I have been able install JCWDE (Java card development Kit) successfully on eclipse.Basically all I need to do is verify user pin on a smart card.As in first set a pin and then verify it.
    To begin with I have referred many tutorials (here: http://www.javaworld.com/jw-07-1999/jw-07-javacard.html?page=1) and implemented the wallet code in eclipse.I have the cap file generated and the scripts generated.I am not sure how to load it on the smart card with eclipse.
    I tried to deploy the cap file but it keeps saying connected.Also when we initiate the applet I get the same result.
    output:
    Java Card 2.2.2 APDU Tool, Version 1.3
    Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
    Opening connection to localhost on port 9032.
    Connected.
    I have also tried : http://www.cs.ru.nl/E.Poll/hw/practical.html ........ but no luck.
    I have the wallet.cap ,wallet.exp ,wallet.jca ,wallet.opt create.script, select,cap-download.scripts files already generated in eclipse.
    How does a successfully implemented applet code on a smart card work?How does this wallet code work if it is successfully implemented ? Does it have like some GUI which prompts the user to enter the pin?
    Wallet code for reference :
    package com.sun.javacard.samples.wallet;
    import javacard.framework.*;
    public class Wallet extends Applet {
    /* constants declaration */
    // code of CLA byte in the command APDU header
    final static byte Wallet_CLA =(byte)0x80;
    // codes of INS byte in the command APDU header
    final static byte VERIFY = (byte) 0x20;
    final static byte CREDIT = (byte) 0x30;
    final static byte DEBIT = (byte) 0x40;
    final static byte GET_BALANCE = (byte) 0x50;
    // maximum balance
    final static short MAX_BALANCE = 0x7FFF;
    // maximum transaction amount
    final static byte MAX_TRANSACTION_AMOUNT = 127;
    // maximum number of incorrect tries before the
    // PIN is blockedd
    final static byte PIN_TRY_LIMIT =(byte)0x03;
    // maximum size PIN
    final static byte MAX_PIN_SIZE =(byte)0x08;
    // signal that the PIN verification failed
    final static short SW_VERIFICATION_FAILED =
    0x6300;
    // signal the the PIN validation is required
    // for a credit or a debit transaction
    final static short SW_PIN_VERIFICATION_REQUIRED =
    0x6301;
    // signal invalid transaction amount
    // amount > MAX_TRANSACTION_AMOUNT or amount < 0
    final static short SW_INVALID_TRANSACTION_AMOUNT = 0x6A83;
    // signal that the balance exceed the maximum
    final static short SW_EXCEED_MAXIMUM_BALANCE = 0x6A84;
    // signal the the balance becomes negative
    final static short SW_NEGATIVE_BALANCE = 0x6A85;
    /* instance variables declaration */
    OwnerPIN pin;
    short balance;
    private Wallet (byte[] bArray,short bOffset,byte bLength) {
    // It is good programming practice to allocate
    // all the memory that an applet needs during
    // its lifetime inside the constructor
    pin = new OwnerPIN(PIN_TRY_LIMIT, MAX_PIN_SIZE);
    byte iLen = bArray[bOffset]; // aid length
    bOffset = (short) (bOffset+iLen+1);
    byte cLen = bArray[bOffset]; // info length
    bOffset = (short) (bOffset+cLen+1);
    byte aLen = bArray[bOffset]; // applet data length
    // The installation parameters contain the PIN
    // initialization value
    pin.update(bArray, (short)(bOffset+1), aLen);
    register();
    } // end of the constructor
    public static void install(byte[] bArray, short bOffset, byte bLength) {
    // create a Wallet applet instance
    new Wallet(bArray, bOffset, bLength);
    } // end of install method
    public boolean select() {
    // The applet declines to be selected
    // if the pin is blocked.
    if ( pin.getTriesRemaining() == 0 )
    return false;
    return true;
    }// end of select method
    public void deselect() {
    // reset the pin value
    pin.reset();
    public void process(APDU apdu) {
    // APDU object carries a byte array (buffer) to
    // transfer incoming and outgoing APDU header
    // and data bytes between card and CAD
    // At this point, only the first header bytes
    // [CLA, INS, P1, P2, P3] are available in
    // the APDU buffer.
    // The interface javacard.framework.ISO7816
    // declares constants to denote the offset of
    // these bytes in the APDU buffer
    byte[] buffer = apdu.getBuffer();
    // check SELECT APDU command
    if (apdu.isISOInterindustryCLA()) {
    if (buffer[ISO7816.OFFSET_INS] == (byte)(0xA4)) {
    return;
    } else {
    ISOException.throwIt (ISO7816.SW_CLA_NOT_SUPPORTED);
    // verify the reset of commands have the
    // correct CLA byte, which specifies the
    // command structure
    if (buffer[ISO7816.OFFSET_CLA] != Wallet_CLA)
    ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
    switch (buffer[ISO7816.OFFSET_INS]) {
    case GET_BALANCE:
    getBalance(apdu);
    return;
    case DEBIT:
    debit(apdu);
    return;
    case CREDIT:
    credit(apdu);
    return;
    case VERIFY:
    verify(apdu);
    return;
    default:
    ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
    } // end of process method
    private void credit(APDU apdu) {
    // access authentication
    if ( ! pin.isValidated() )
    ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
    byte[] buffer = apdu.getBuffer();
    // Lc byte denotes the number of bytes in the
    // data field of the command APDU
    byte numBytes = buffer[ISO7816.OFFSET_LC];
    // indicate that this APDU has incoming data
    // and receive data starting from the offset
    // ISO7816.OFFSET_CDATA following the 5 header
    // bytes.
    byte byteRead =
    (byte)(apdu.setIncomingAndReceive());
    // it is an error if the number of data bytes
    // read does not match the number in Lc byte
    if ( ( numBytes != 1 ) || (byteRead != 1) )
    ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
    // get the credit amount
    byte creditAmount = buffer[ISO7816.OFFSET_CDATA];
    // check the credit amount
    if ( ( creditAmount > MAX_TRANSACTION_AMOUNT)
    || ( creditAmount < 0 ) )
    ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);
    // check the new balance
    if ( (short)( balance + creditAmount) > MAX_BALANCE )
    ISOException.throwIt(SW_EXCEED_MAXIMUM_BALANCE);
    // credit the amount
    balance = (short)(balance + creditAmount);
    } // end of deposit method
    private void debit(APDU apdu) {
    // access authentication
    if ( ! pin.isValidated() )
    ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
    byte[] buffer = apdu.getBuffer();
    byte numBytes =
    (byte)(buffer[ISO7816.OFFSET_LC]);
    byte byteRead =
    (byte)(apdu.setIncomingAndReceive());
    if ( ( numBytes != 1 ) || (byteRead != 1) )
    ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
    // get debit amount
    byte debitAmount = buffer[ISO7816.OFFSET_CDATA];
    // check debit amount
    if ( ( debitAmount > MAX_TRANSACTION_AMOUNT)
    || ( debitAmount < 0 ) )
    ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);
    // check the new balance
    if ( (short)( balance - debitAmount ) < (short)0 )
    ISOException.throwIt(SW_NEGATIVE_BALANCE);
    balance = (short) (balance - debitAmount);
    } // end of debit method
    private void getBalance(APDU apdu) {
    byte[] buffer = apdu.getBuffer();
    // inform system that the applet has finished
    // processing the command and the system should
    // now prepare to construct a response APDU
    // which contains data field
    short le = apdu.setOutgoing();
    if ( le < 2 )
    ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
    //informs the CAD the actual number of bytes
    //returned
    apdu.setOutgoingLength((byte)2);
    // move the balance data into the APDU buffer
    // starting at the offset 0
    buffer[0] = (byte)(balance >> 8);
    buffer[1] = (byte)(balance & 0xFF);
    // send the 2-byte balance at the offset
    // 0 in the apdu buffer
    apdu.sendBytes((short)0, (short)2);
    } // end of getBalance method
    private void verify(APDU apdu) {
    byte[] buffer = apdu.getBuffer();
    // retrieve the PIN data for validation.
    byte byteRead = (byte)(apdu.setIncomingAndReceive());
    // check pin
    // the PIN data is read into the APDU buffer
    // at the offset ISO7816.OFFSET_CDATA
    // the PIN data length = byteRead
    if ( pin.check(buffer, ISO7816.OFFSET_CDATA,
    byteRead) == false )
    ISOException.throwIt(SW_VERIFICATION_FAILED);
    } // end of validate method
    } // end of class Wallet
    Any help on this would highly appreciated !! :)

    Hi,
    Thanks a lot for reply.But I am not sure as to how can I delete the simulator.
    All I want to do is write a pin on the smart card and verify it.But I am not being able to deploy the cap file or initiate the applet.
    Also for passing the pin correct me if I am wrong........ according to what you said and what I have understood
    If the code is like this :
    public static void install(byte[] bArray, short bOffset, byte bLength) {
    // create a Wallet applet instance
    new Wallet(bArray, bOffset, bLength);
    } // end of install method
    byte aLen = bArray[bOffset]; // applet data length
    // The installation parameters contain the PIN
    // initialization value
    pin.update(bArray, (short)(bOffset+1), aLen);
    Lets say my pin is : 1234
    then I would pass it here.....
    new Wallet(bArray, 1234, bLength);

  • SUN One web server 6.1,strong authentication and smart card

    Hi guys,
    I am experiencing a weired issue with smart cards.
    scenario:
    SOWS 6.1 SP6, smart card Gem Plus and Internet explorer 6 and 7 as client and strong authentication.
    Once I put my smart card and insert the PIN code to get into the html page, when I tried to just move the mouse in a frame, I got lots of PIN request. I have notest the there are lots of SSLv3 sessions opened. When I put the PIN code after a while and again when I move the mouse quickly I got the same request
    I tried with Firefox and the it works fine.
    Anyone experienced a sort of same issue? any clue? Could it be that Firefox store the PIN code somewhere and IE doesn't?
    Cheers

    Hi,
    Yes, Firefox and other mozilla products by default only require the pin for tokens the first time they are needed. In Seamonkey, the preference is in edit/preference/privacy & security/master passwords/master password timeout/web browser will ask for your master password . There is an equivalent in Firefox, but since i don't use it, I don't know the exact location of that pref.
    The fact that you are being prompted multiple times in IE means that there are multiple SSL handshakes happening. This may be because the server is forcing a new SSL handshake on each HTTP request. . There may be a way for the web server to be configured not to do that by setting client auth globally on the listen socket instead of setting it on a specific URL space.

  • Problems initializi​ng a SafeNet 330 through the BlackBerry Smart Card Reader

    Hi,
    I successfully managed to use the BlackBerry Smart Card Reader from my PC. Now I'm trying to initialize a SafeNet 330 smart card with the SafeNet BSEC tool from the PC. But whatever I do the initializing fails.
    Has anyone successfully initialized a card this way through the BlackBerry Smart Card reader?
    I'm suspecting a problem with the reader why I'll try to find my Gemplus400 reader and see if that works.
    Thanks
    Chris
    Solved!
    Go to Solution.

    Using the Gemplus400 reader did the trick. Looks like the BlackBerry SCR reader stumbles about setting the password during the intialization as it does set the label successfully.

  • Sun Ray 3/3P + 3rd party smart cards

    Does anyone know a particular brand of printable smart cards that will work with VDI/Sun Ray 3, thats not Oracle/Sun branded?
    Thanks
    Dave

    There is a list of compatible cards on Oracle's website
    http://www.oracle.com/technetwork/server-storage/sunrayproducts/docs/sunraysmartcards-485728.html
    Bjoern

  • 41N3004 compatibility with v2 smart cards

    Hello,
    Can someone let me know if 41N3004 is compatible with V2 smart cards. Not sure if V2 smart cards are ISO 7816 complaint.
    Thanks, Anand

    I don't know off the top of my head however this article may answer:
    About the SD and SDXC card slot - Apple Support

  • Where can I get a digital certifcate that does not require a USB key?

    Where can I get a digital certificate that I can use with Adobe Acrobat that does not require a USB hardware key?
    I have been able to sign PDF documents with Adobe Acrobat versions 6 and 9 with my code signing certificate. When I use my code signing certificate Acrobat says the validity of the document certification is unknown.

    Per existing standards (RFC 5280) code signing certificates may not be used for signing. For a number of versions Acrobat had a bug that ignored this requirement. Starting with version 11.0.07 Acrobat (and Reader) enforces this requirement.

  • Does the voltage to temperature conversation require in usb 6008 using daqmx 8.5??

    Another question need u all guy help.I currently using K-type thermocoupler for my project using usb 6008.Does the voltage to temperature conversation require in usb 6008 using daqmx 8.5? what is DAQ TEDS function use ? is it help us to convert?

    You will need to factor the voltage per degrees C to get to reading in degrees, this is 10mv per degree V for the device mentioned in the post you previously made
    http://forums.ni.com/ni/board/message?board.id=170&message.id=246200#M246200
    TEDS - Transducer Electronic Data Sheet
    A video about TEDS
    http://digital.ni.com/demo.nsf/websearch/8e55de8fe6b5702686256e7c007a47b4?opendocument

  • Does java api allow access the ethernet card directly

    i m working on cluster computing. i like to code in java. i need to send object from one single machine to other machines in a university computer lab. i would like to send the objects very efficiently and fastly. i used java.net and also java.nio. but i think it would be fast more if i could directly access the ethernet card- read from and write to the network interface card directly.

    does java api allow access the ethernet card directlyNo.

  • How to "convert" a PC/SC spec Smart Card (usb token) to a Java Card?

    Hi experts,
    I've got a usb token from OEM and the only thing they told me is that the token is manufactured according to PC/SC spec. OEM didn't say anything about the proccessor, memory, etc. I'm no expert in hardware. But according to what I read on the web, a Java Card must have JCVM in the on-card memory. I'm wondering if there is a way to initialize a JCVM in this PC/SC usb token?
    Any help will be much appreciated!
    Z.Zen

    "PC/SC compatible" is about software on the card as much as "PC compatible" is about the software in your computer. PC/SC deals with sending bytes to and from the token whereas JavaCard deals with working with those byte packets. Unless the token is a JavaCard, there's not much you can do. You need to get the ATR of the token via PC/SC, maybe that gives more information.

Maybe you are looking for