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?
MatthewHi 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
IanHi 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?
CheersHi,
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
DaveThere 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, AnandI 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.
-
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
-
Element Entry not showing up for new option in a plan after Open Enrollment
I had to add a new option in a plan. I have defined the option, added it to the plan. I setup 2 standard rates for this option; one non-tax and the other taxable. This is an odd example because 1 certain employee falls under Group Health Employee plu
-
How to call a report thru an RFC w/o displaying the Report UI
Hi , I have to pass the parameter to a report thru an RFC. I am using submit command , but I do not want SAP gui to appear.. This is the report UI code . PARAMETERS : werks LIKE mseg-werks OBLIGATORY. SELECT-OPTIONS : budat FOR mkpf-budat OBLIGAT
-
Does anyone know of a report that details items in any given storage location on a line by line basis ( not purely the balance ) Please advise, ta
-
HT1551 My apple tv 1st generation dont recognize wi fi. Any ideas?
evn though I have tried to connect my apple tv 1 st generation dont recognize the wi fi system I'm using.every other system in the house works find (ipad,iphone). Any sugestions?
-
I lost system preference os 10.4.11 how do I get it back?
I am using os 10.4.11 Tiger and somehow I lost System Preference. How do I get it back? I tried Spotlight it can't find it. Thanks