Class SmartCafePkcs15Applet

    • Field Detail

      • ATR_MASK

        private static final byte[] ATR_MASK
      • ATR

        private static final Atr ATR
        ATR de tarjeta G&D SmartCafe 3.2.
      • ATR_MASK_MSC

        private static final byte[] ATR_MASK_MSC
      • ATR_MSC

        private static final Atr ATR_MSC
        ATR de tarjeta MicroSD G&D Mobile Security Card.
      • ATR_MASK_TCL

        private static final byte[] ATR_MASK_TCL
        ATR de tarjeta G&D SmartCafe 3.2 con T=CL (vía inalámbrica).
      • ATR_TCL

        private static final Atr 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
      • LOGGER

        private static final java.util.logging.Logger LOGGER
      • CERTS_BY_ALIAS

        private static final java.util.Map<java.lang.String,​java.security.cert.X509Certificate> CERTS_BY_ALIAS
      • KEYNO_BY_ALIAS

        private static final java.util.Map<java.lang.String,​java.lang.Integer> KEYNO_BY_ALIAS
      • ERROR_PIN_SW1

        private static final byte ERROR_PIN_SW1
        Octeto que identifica una verificación fallida del PIN.
        See Also:
        Constant Field Values
      • passwordCallback

        private transient javax.security.auth.callback.PasswordCallback passwordCallback
      • callbackHandler

        private transient javax.security.auth.callback.CallbackHandler callbackHandler
      • authenticated

        private transient boolean authenticated
      • cryptoHelper

        private final transient CryptoHelper cryptoHelper
        Manejador de funciones criptográficas.
    • Constructor Detail

      • SmartCafePkcs15Applet

        public SmartCafePkcs15Applet​(ApduConnection conn,
                                     CryptoHelper cryptoHlpr)
                              throws java.io.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.
        Throws:
        java.io.IOException - Si hay errores de entrada / salida.
      • SmartCafePkcs15Applet

        public SmartCafePkcs15Applet​(ApduConnection conn,
                                     CryptoHelper cryptoHlpr,
                                     boolean failIfNoCerts)
                              throws java.io.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 a true y la tarjeta no contiene ningun par certificado + clave privada la inicialización falla con un IOException, si se establece a false, la inicialización se completa haya o no haya claves y certificados.
        Throws:
        java.io.IOException - Si hay errores de entrada / salida.
    • Method Detail

      • storeKeyOrdinal

        private static void storeKeyOrdinal​(int ordinal,
                                            java.math.BigInteger publicKeyModulus)
      • getKeyCount

        private static int getKeyCount​(ResponseApdu ra)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • setPasswordCallback

        public void setPasswordCallback​(javax.security.auth.callback.PasswordCallback pwc)
        Establece el PasswordCallback para el PIN de la tarjeta.
        Parameters:
        pwc - PasswordCallback para el PIN de la tarjeta.
      • setCallbackHandler

        public void setCallbackHandler​(javax.security.auth.callback.CallbackHandler callh)
        Establece el CallbackHandler.
        Parameters:
        callh - CallbackHandler a establecer.
      • connect

        public static void connect​(ApduConnection conn)
                            throws java.io.IOException
        Conecta con el lector del sistema que tenga una tarjeta insertada.
        Parameters:
        conn - Conexión hacia la tarjeta.
        Throws:
        java.io.IOException - Cuando hay errores de entrada / salida.
      • getAliases

        public java.lang.String[] getAliases()
        Description copied from interface: CryptoCard
        Obtiene los alias de los certificados de la tarjeta.
        Specified by:
        getAliases in interface CryptoCard
        Returns:
        Array con los alias de los certificados de la tarjeta
      • getCertificate

        public java.security.cert.X509Certificate getCertificate​(java.lang.String alias)
        Description copied from interface: CryptoCard
        Obtiene el certificado correspondiente al alias proporcionado.
        Specified by:
        getCertificate in interface CryptoCard
        Parameters:
        alias - Alias del certificado.
        Returns:
        Certificado correspondiente al alias proporcionado o null si no existe ningún certificado con ese alias.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • verifyPin

        public void verifyPin​(javax.security.auth.callback.PasswordCallback psc)
                       throws ApduConnectionException,
                              PinException
        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 de RuntimeException o una ApduConnectionException.
        Specified by:
        verifyPin in class AbstractIso7816FourCard
        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

        public PrivateKeyReference getPrivateKey​(java.lang.String alias)
        Description copied from interface: CryptoCard
        Obtiene una referencia a la clave privada correspondiente al alias proporcionado.
        Specified by:
        getPrivateKey in interface CryptoCard
        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,
                           java.lang.String algorithm,
                           PrivateKeyReference keyRef)
                    throws CryptoCardException,
                           PinException
        Description copied from interface: CryptoCard
        Realiza una firma electrónica.
        Specified by:
        sign in interface CryptoCard
        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.
      • getInternalPasswordCallback

        private javax.security.auth.callback.PasswordCallback getInternalPasswordCallback()
                                                                                   throws PinException
        Throws:
        PinException