Class SmartCafePkcs15Applet

All Implemented Interfaces:
Card, CryptoCard

public final class SmartCafePkcs15Applet extends AbstractIso7816FourCard implements CryptoCard
Tarjeta G&D SmartCafe con Applet PKCS#15.
Author:
Vicente Ortiz, Tomás García-Merás.
  • Constructor Details

    • SmartCafePkcs15Applet

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

    • setPasswordCallback

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

      public void setCallbackHandler(CallbackHandler callh)
      Establece el CallbackHandler.
      Parameters:
      callh - CallbackHandler a establecer.
    • connect

      public static void connect(ApduConnection conn) throws IOException
      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.
    • getCardName

      public String getCardName()
      Description copied from class: AbstractSmartCard
      Obtiene el nombre de la tarjeta.
      Specified by:
      getCardName in class AbstractSmartCard
      Returns:
      Nombre de la tarjeta
    • getAliases

      public 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 X509Certificate getCertificate(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.
    • selectMasterFile

      protected void selectMasterFile() throws ApduConnectionException, Iso7816FourCardException
      Description copied from class: AbstractIso7816FourCard
      Selecciona el fichero maestro (directorio raíz de la tarjeta).
      Specified by:
      selectMasterFile in class AbstractIso7816FourCard
      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

      public String toString()
      Overrides:
      toString in class Object
    • selectFileById

      public int selectFileById(byte[] id) throws ApduConnectionException, Iso7816FourCardException
      Selecciona un fichero (DF o EF).
      Overrides:
      selectFileById in class AbstractIso7816FourCard
      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

      public void verifyPin(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(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, 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.