Class SmartCafePkcs15Applet
java.lang.Object
es.gob.jmulticard.card.AbstractSmartCard
es.gob.jmulticard.card.iso7816four.AbstractIso7816FourCard
es.gob.jmulticard.card.gide.smartcafe.SmartCafePkcs15Applet
- All Implemented Interfaces:
Card
,CryptoCard
Tarjeta G&D SmartCafe con Applet PKCS#15.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Atr
ATR de tarjeta G&D SmartCafe 3.2.private static final byte[]
private static final byte[]
private static final byte[]
ATR de tarjeta G&D SmartCafe 3.2 con T=CL (vía inalámbrica).private static final Atr
ATR de tarjeta MicroSD G&D Mobile Security Card.private static final Atr
private boolean
private CallbackHandler
private static final Map
<String, X509Certificate> private static final byte
private final CryptoHelper
Manejador de funciones criptográficas.private static final byte
Octeto que identifica una verificación fallida del PIN.private static final Logger
private static final byte[]
private static final byte[]
private PasswordCallback
private static final byte[]
Fields inherited from class es.gob.jmulticard.card.AbstractSmartCard
DEBUG
-
Constructor Summary
ConstructorsConstructorDescriptionSmartCafePkcs15Applet
(ApduConnection conn, CryptoHelper cryptoHlpr) Construye un objeto que representa una tarjeta G&D SmartCafe con el Applet PKCS#15 de AET.SmartCafePkcs15Applet
(ApduConnection conn, CryptoHelper cryptoHlpr, boolean failIfNoCerts) Construye un objeto que representa una tarjeta G&D SmartCafe con el Applet PKCS#15 de AET. -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
checkAtr
(byte[] atrBytes) static void
connect
(ApduConnection conn) Conecta con el lector del sistema que tenga una tarjeta insertada.String[]
Obtiene los alias de los certificados de la tarjeta.Obtiene el nombre de la tarjeta.getCertificate
(String alias) Obtiene el certificado correspondiente al alias proporcionado.private PasswordCallback
private static int
private int
getPrivateKey
(String alias) Obtiene una referencia a la clave privada correspondiente al alias proporcionado.private void
int
selectFileById
(byte[] id) Selecciona un fichero (DF o EF).protected void
Selecciona el fichero maestro (directorio raíz de la tarjeta).void
Establece elCallbackHandler
.void
Establece elPasswordCallback
para el PIN de la tarjeta.byte[]
sign
(byte[] data, String algorithm, PrivateKeyReference keyRef) Realiza una firma electrónica.private static void
storeKeyOrdinal
(int ordinal, BigInteger publicKeyModulus) toString()
void
Verifica el PIN de la tarjeta.Methods inherited from class es.gob.jmulticard.card.iso7816four.AbstractIso7816FourCard
getChallenge, readAllRecords, readBinaryComplete, selectFileByIdAndRead, selectFileByLocation, selectFileByLocationAndRead, selectFileByName, selectFileByName, setPublicKeyToVerification
Methods inherited from class es.gob.jmulticard.card.AbstractSmartCard
getCla, getConnection, sendArbitraryApdu, setConnection
-
Field Details
-
ATR_MASK
private static final byte[] ATR_MASK -
ATR
ATR de tarjeta G&D SmartCafe 3.2. -
ATR_MASK_MSC
private static final byte[] ATR_MASK_MSC -
ATR_MSC
ATR de tarjeta MicroSD G&D Mobile Security Card. -
ATR_MASK_TCL
private static final byte[] ATR_MASK_TCLATR de tarjeta G&D SmartCafe 3.2 con T=CL (vía inalámbrica). -
ATR_TCL
-
PKCS15_NAME
private static final byte[] PKCS15_NAME -
ODF_PATH
private static final byte[] ODF_PATH -
MF_PATH
private static final byte[] MF_PATH -
CLA
private static final byte CLA- See Also:
-
LOGGER
-
CERTS_BY_ALIAS
-
KEYNO_BY_ALIAS
-
ERROR_PIN_SW1
private static final byte ERROR_PIN_SW1Octeto que identifica una verificación fallida del PIN.- See Also:
-
passwordCallback
-
callbackHandler
-
authenticated
private transient boolean authenticated -
cryptoHelper
Manejador de funciones criptográficas.
-
-
Constructor Details
-
SmartCafePkcs15Applet
Construye un objeto que representa una tarjeta G&D SmartCafe con el Applet PKCS#15 de AET.- Parameters:
conn
- Conexión con la tarjeta.cryptoHlpr
- Funcionalidades criptográficas de utilidad que pueden variar entre máquinas virtuales.- Throws:
IOException
- Si hay errores de entrada / salida.
-
SmartCafePkcs15Applet
public SmartCafePkcs15Applet(ApduConnection conn, CryptoHelper cryptoHlpr, boolean failIfNoCerts) throws IOException Construye un objeto que representa una tarjeta G&D SmartCafe con el Applet PKCS#15 de AET.- Parameters:
conn
- Conexión con la tarjeta.cryptoHlpr
- Funcionalidades criptográficas de utilidad que pueden variar entre máquinas virtuales.failIfNoCerts
- Si se establece atrue
y la tarjeta no contiene ningun par certificado + clave privada la inicialización falla con unIOException
, si se establece afalse
, la inicialización se completa haya o no haya claves y certificados.- Throws:
IOException
- Si hay errores de entrada / salida.
-
-
Method Details
-
storeKeyOrdinal
-
getKeyCount
- Throws:
IOException
-
setPasswordCallback
Establece elPasswordCallback
para el PIN de la tarjeta.- Parameters:
pwc
-PasswordCallback
para el PIN de la tarjeta.
-
setCallbackHandler
Establece elCallbackHandler
.- Parameters:
callh
-CallbackHandler
a establecer.
-
connect
Conecta con el lector del sistema que tenga una tarjeta insertada.- Parameters:
conn
- Conexión hacia la tarjeta.- Throws:
IOException
- Cuando hay errores de entrada / salida.
-
preloadCertificates
private void preloadCertificates() throws FileNotFoundException, Iso7816FourCardException, IOException, Asn1Exception, TlvException -
getCardName
Description copied from class:AbstractSmartCard
Obtiene el nombre de la tarjeta.- Specified by:
getCardName
in classAbstractSmartCard
- Returns:
- Nombre de la tarjeta
-
getAliases
Description copied from interface:CryptoCard
Obtiene los alias de los certificados de la tarjeta.- Specified by:
getAliases
in interfaceCryptoCard
- Returns:
- Array con los alias de los certificados de la tarjeta
-
getCertificate
Description copied from interface:CryptoCard
Obtiene el certificado correspondiente al alias proporcionado.- Specified by:
getCertificate
in interfaceCryptoCard
- Parameters:
alias
- Alias del certificado.- Returns:
- Certificado correspondiente al alias proporcionado o
null
si no existe ningún certificado con ese alias.
-
selectMasterFile
Description copied from class:AbstractIso7816FourCard
Selecciona el fichero maestro (directorio raíz de la tarjeta).- Specified by:
selectMasterFile
in classAbstractIso7816FourCard
- Throws:
ApduConnectionException
- Si hay problemas en el envío de la APDU.Iso7816FourCardException
- Si no se puede seleccionar el fichero maestro por cualquier otra causa.
-
toString
-
selectFileById
Selecciona un fichero (DF o EF).- Overrides:
selectFileById
in classAbstractIso7816FourCard
- Parameters:
id
- Identificador del fichero a seleccionar.- Returns:
- Tamaño del fichero seleccionado.
- Throws:
ApduConnectionException
- Si hay problemas en el envío de la APDU.Iso7816FourCardException
- Si falla la selección de fichero.
-
verifyPin
Description copied from class:AbstractIso7816FourCard
Verifica el PIN de la tarjeta. El método reintenta hasta que se introduce el PIN correctamente, se bloquea la tarjeta por exceso de intentos de introducción de PIN o se recibe una excepción (derivada deRuntimeException
o unaApduConnectionException
.- Specified by:
verifyPin
in classAbstractIso7816FourCard
- Parameters:
psc
- PIN de la tarjeta.- Throws:
ApduConnectionException
- Cuando ocurre un error en la comunicación con la tarjeta.PinException
- Si el PIN proporcionado en la PasswordCallback es incorrecto y no estaba habilitado el reintento automático
-
getPrivateKey
Description copied from interface:CryptoCard
Obtiene una referencia a la clave privada correspondiente al alias proporcionado.- Specified by:
getPrivateKey
in interfaceCryptoCard
- Parameters:
alias
- Alias del certificado- Returns:
- Referencia a la clave privada correspondiente al alias proporcionado o
null
si no existe ninguna clave privada con ese alias
-
sign
public byte[] sign(byte[] data, String algorithm, PrivateKeyReference keyRef) throws CryptoCardException, PinException Description copied from interface:CryptoCard
Realiza una firma electrónica.- Specified by:
sign
in interfaceCryptoCard
- Parameters:
data
- Datos a firmar.algorithm
- Algoritmo de firma.keyRef
- Referencia a la clave privada de firma.- Returns:
- Datos firmados (PKCS#1 v1.5).
- Throws:
CryptoCardException
- Si ocurre algún problema durante la firma.PinException
- Si el PIN proporcionado es incorrecto o no es posible obtenerlo.
-
getPinRetriesLeft
- Throws:
PinException
-
getInternalPasswordCallback
- Throws:
PinException
-
checkAtr
- Throws:
InvalidCardException
-