Class CeresSc

    • Field Detail

      • ATR_MASK_TC

        private static final byte[] ATR_MASK_TC
      • ATR_TC

        public static final Atr ATR_TC
        ATR de las tarjetas FNMT CERES 4.30 y superior.
      • cardVersion

        private static java.lang.String cardVersion
      • certs

        private transient java.util.Map<java.lang.String,​java.security.cert.X509Certificate> certs
        Certificados de la tarjeta indexados por su alias.
      • aliasByCertAndKeyId

        private transient java.util.Map<java.lang.String,​java.lang.String> aliasByCertAndKeyId
        Alias de los certificados de la tarjeta indexados por el identificador interno del certificado (pasado de byte[] a String).
      • keyReferences

        private transient java.util.Map<java.lang.String,​DniePrivateKeyReference> keyReferences
        Referencias a las claves privadas de la tarjeta indexadas por el alias de su certificado asociado.
    • Constructor Detail

      • CeresSc

        public CeresSc​(ApduConnection conn,
                       javax.security.auth.callback.PasswordCallback pwc,
                       CryptoHelper cryptoHlpr,
                       javax.security.auth.callback.CallbackHandler ch)
                throws ApduConnectionException,
                       InvalidCardException
        Construye una tarjeta FNMT CERES con canal seguro.
        Parameters:
        conn - Conexión con la tarjeta.
        pwc - PasswordCallback para obtener el PIN de la tarjeta.
        cryptoHlpr - Funcionalidades criptográficas de utilidad que pueden variar entre máquinas virtuales.
        ch - Gestor de callbacks para la solicitud de datos al usuario.
        Throws:
        ApduConnectionException - Si la conexión con la tarjeta se proporciona cerrada y no es posible abrirla.
        InvalidCardException - Si la tarjeta no es una CERES 4.30 o superior.
      • CeresSc

        public CeresSc​(ApduConnection conn,
                       javax.security.auth.callback.PasswordCallback pwc,
                       CryptoHelper cryptoHlpr,
                       javax.security.auth.callback.CallbackHandler ch,
                       boolean loadCertsAndKeys)
                throws ApduConnectionException,
                       InvalidCardException
        Construye una tarjeta FNMT CERES con canal seguro.
        Parameters:
        conn - Conexión con la tarjeta.
        pwc - PasswordCallback para obtener el PIN de la tarjeta.
        cryptoHlpr - Funcionalidades criptográficas de utilidad que pueden variar entre máquinas virtuales.
        ch - Gestor de callbacks para la solicitud de datos al usuario.
        loadCertsAndKeys - Si se indica true, se cargan las referencias a las claves privadas y a los certificados, mientras que si se indica false, no se cargan, permitiendo la instanciación de una tarjeta sin capacidades de firma o autenticación con certificados.
        Throws:
        ApduConnectionException - Si la conexión con la tarjeta se proporciona cerrada y no es posible abrirla.
        InvalidCardException - Si la tarjeta no es una CERES 4.30 o superior.
    • Method Detail

      • 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
        Overrides:
        getCertificate in class Dnie
        Parameters:
        alias - Alias del certificado.
        Returns:
        Certificado correspondiente al alias proporcionado o null si no existe ningún certificado con ese alias.
      • signOperation

        protected byte[] signOperation​(byte[] data,
                                       java.lang.String algorithm,
                                       PrivateKeyReference privateKeyReference)
                                throws CryptoCardException,
                                       PinException
        Description copied from class: Dnie
        Realiza la operación de firma.
        Overrides:
        signOperation in class Dnie
        Parameters:
        data - Datos que se desean firmar.
        algorithm - Algoritmo de firma (por ejemplo, SHA512withRSA, SHA1withRSA, etc.).
        privateKeyReference - Referencia a la clave privada para la firma.
        Returns:
        Firma de los datos.
        Throws:
        CryptoCardException - Cuando se produce un error durante la operación de firma.
        PinException - Si el PIN proporcionado en la PasswordCallback es incorrecto y no estaba habilitado el reintento automático.
      • getCwa14890PublicConstants

        protected Cwa14890PublicConstants getCwa14890PublicConstants()
        Description copied from class: Dnie
        Obtiene las constantes públicas CWA-14890 para el cifrado de canal.
        Overrides:
        getCwa14890PublicConstants in class Dnie
        Returns:
        Constantes públicas CWA-14890 para el cifrado de canal.
      • getCwa14890PrivateConstants

        protected Cwa14890PrivateConstants getCwa14890PrivateConstants()
        Description copied from class: Dnie
        Obtiene las constantes privadas CWA-14890 para el cifrado de canal.
        Overrides:
        getCwa14890PrivateConstants in class Dnie
        Returns:
        Constantes privadas CWA-14890 para el cifrado de canal.
      • loadKeyReferences

        protected void loadKeyReferences()
        Carga la información pública con la referencia a las claves de firma.
        Overrides:
        loadKeyReferences in class Dnie
      • 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
        Overrides:
        getAliases in class Dnie
        Returns:
        Array con los alias de los certificados de la tarjeta
      • 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
        Overrides:
        getPrivateKey in class Dnie
        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
      • hideCertsWithoutKey

        private void hideCertsWithoutKey()
        Oculta los certificados que no tienen una clave privada asociada.
      • needAuthorizationToSign

        protected boolean needAuthorizationToSign()
        Description copied from class: Dnie
        Indica si la tarjeta requiere autorización del usuario para ejecutar una operación de firma.
        Overrides:
        needAuthorizationToSign in class Dnie
        Returns:
        true si la tarjeta requiere autorización del usuario para ejecutar una operación de firma, false en caso contrario.
      • getPinMessage

        protected java.lang.String getPinMessage​(int retriesLeft)
        Description copied from class: Dnie
        Devuelve el texto del diálogo de inserción de PIN.
        Overrides:
        getPinMessage in class Dnie
        Parameters:
        retriesLeft - Intentos restantes antes de bloquear la tarjeta.
        Returns:
        Mensaje que mostrar en el cuerpo del diálogo de inserción de PIN.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class Dnie