2011-12-08 14 views
6

Yo escribo una aplicación de tarjeta inteligente y después de una exitosa selección de la aplicación con su ayuda, cuando se vuelve a enviar por Opciones de procesamientoextraño no válida CLA (6E 00) en Java SmartCard IO

consigo 6E 00 como respuesta - Comando CLA inválido. Esto es parte del código que envía el comando y recibir la respuesta:

ResponseAPDU rapdu = sendCommand(new byte[]{(byte)0x80, (byte)0xA8, (byte)0x00, (byte)0x00, (byte)0x02, (byte)0x83, (byte)0x00, (byte)0x00}); 

private ResponseAPDU sendCommand(byte[] apdu) throws CardException{ 
    CommandAPDU capdu = new CommandAPDU(apdu);   
    ResponseAPDU rpd = channel.transmit(capdu); 

    return rpd; 
} 

estoy usando el mismo comando para leer la tarjeta usando la biblioteca Jaccal y está funcionando perfectamente, pero es sólo que jaccal no es apropiado para mi aplicación debido a su uso del archivo dll externo. No sé por qué me está dando este tipo de respuesta.

Respuesta

-1

Básicamente este error se debe a que el comando que está pasando no coincide. Simplemente compruebe (0x80) que el primer campo es correcto o incorrecto. En la tarjeta el SO de la tarjeta verifica el campo puño con el valor esperado si no coincide enviar CLA Not Found Exception significa el código de error 6E 00. tendrá que proporcionar más detalles sobre lo que está haciendo: qué tarjeta, versión, cumplimiento GP, listado de tarjetas existentes qué tecnología está utilizando. En qué idioma está trabajando. (.net o java) que puedo ayudarte

6

Una serie de entradas de blog/foro Discutir este tema:

En mis tarjetas caso de visa parecen ser "indulgentes", pero MasterCards no son (6E 00). Tenga en cuenta que, contrariamente a los consejos, la actualización a Java 7 no me solucionó. Probablemente estés viendo la solución sun.security.smartcardio.t0GetResponse y manejando las respuestas.

hice lo siguiente para que funcione:

System.setProperty("sun.security.smartcardio.t0GetResponse", "false"); 

respuestas mango con GET RESPONSE (ver EMV 4.3 Libro 1, Sección 9.3.1.3). Este enlace también es útil:

+1

Esta es la respuesta correcta. Por favor marqúelo como tal. – Brad

+0

Java 8 todavía requiere esta solución. –

Cuestiones relacionadas