public class Certificate extends ArangiObject
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
OID_ID_AT_COMMONNAME
OID del campo id-at-commonName
|
static java.lang.String |
OID_OCSP_AIA_EXTENSION
OID del campo OCSP de la extensión AIA
|
static java.lang.String |
OID_USERID
OID del campo Userid
|
arangiTemporalFolder, CRYPTOGRAPHIC_PROVIDER, CRYPTOGRAPHIC_PROVIDER_NAME, DEFAULT_HASHING_ALGORITHM, DEFAULT_SIGNING_ALGORITHM, NUM_RETRIES
Constructor and Description |
---|
Certificate(byte[] contenidoCertificado)
Constructor que inicializa la clase a partir de un array de bytes.
|
Certificate(java.io.File fileCertificate)
Constructor que inicializa la clase mediante un fichero.
|
Certificate(java.io.InputStream isCertificate)
Constructor que inicializa la clase a partir de un stream de lectura.
|
Certificate(java.security.cert.X509Certificate certificate)
Constructor que inicializa la clase mediante un certificado en formato
X.509
|
Certificate(org.bouncycastle.cert.X509CertificateHolder certificate)
Constructor que inicializa la clase mediante un certificado en formato
X.509
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj) |
static java.security.cert.X509Certificate |
generateSelfCertificate(java.lang.String dn,
long validity,
java.lang.String policyId,
java.security.PrivateKey privKey,
java.security.PublicKey pubKey,
boolean isCA)
Genera un certificado autofirmado con los parámetros que se le pasan.
|
static java.security.cert.X509Certificate |
generateSelfCertificate(java.lang.String dn,
long validity,
java.lang.String policyId,
java.security.PrivateKey privKey,
java.security.PublicKey pubKey,
boolean isCA,
java.lang.String signatureAlgorithm)
Genera un certificado autofirmado con los parámetros que se le pasan.
|
java.lang.String |
getCertificateEmail()
Método que devuelve la dirección de correo electrónico del certificado
|
java.lang.String |
getCommonName()
Obtiene el common name que se encuentra en el asunto del certificado
|
java.lang.String |
getCountry()
Obtiene el país que se encuentra en el asunto del certificado
|
java.lang.String[] |
getCrlUrls()
El método obtiene las URLs de las CRLs indicadas en el certificado.
|
java.util.Map<java.lang.String,java.lang.String> |
getData(java.util.List<CertificateDataService> dataServices)
Obtiene información del certificado mediante llamadas a servicios externos.
|
byte[] |
getDigest()
Método que devuelve el digest del certificado.
|
byte[] |
getDigest(java.lang.String hashingAlgorithm)
Método que devuelve el digest del certificado.
|
java.lang.String |
getDigestAlgorithm()
Obtiene el algoritmo de hashing de la firma del certificado
|
java.lang.String[] |
getElementsSubject(org.bouncycastle.asn1.ASN1ObjectIdentifier oid)
Obtiene elementos del Asunto (Subject) del certificado en base a su OID.
|
java.lang.String |
getElementSubject(org.bouncycastle.asn1.ASN1ObjectIdentifier oid)
Obtiene el primer elemento del Asunto (Subject) del certificado para el OID.
|
java.util.List<java.lang.String> |
getExtendedKeyUsage()
Obtiene la lista de usos de clave extendidos.
|
java.lang.String |
getFingerPrint()
Método que devuelve la huella Digital (FingerPrint) del certificado.
|
java.lang.String |
getFingerPrint(java.lang.String hashingAlgorithm)
Método que devuelve la huella Digital (FingerPrint) del certificado.
|
java.util.List |
getIssuerAlternativeName()
Obtiene una lista que representa el contenido de la extensión Issuer Alternative
Name (Nombre Alternativo del Emisor).
|
java.util.Vector |
getIssuerAlternativeNameElement(java.lang.String oid)
Busca un elemento dentro de la extensión Issuer Alternative Name
|
org.bouncycastle.asn1.cms.IssuerAndSerialNumber |
getIssuerAndSerialNumber()
Obtiene el issuer and serial number.
|
java.lang.String |
getIssuerCommonName()
Obtiene el common name del Issuer del certificado
|
java.lang.String |
getIssuerDN()
Obtiene la cadena de texto contenida en el Issuer del certificado
|
java.lang.String |
getIssuerKeyIdentifier()
Método que obtiene el Issuer Key Identifier (IKI) del certificado
|
static java.lang.String |
getIssuerKeyIdentifier(java.security.cert.X509Certificate certificate)
Método estático que obtiene el Issuer Key Identifier (IKI) a partir de un certificado
X.509.
|
OCSPClient[] |
getOCSPClients()
Método que obtiene todos los clientes OCSP que pueden validar este
certificado.
|
OCSPResponse |
getOCSPResponse()
Obtiene una respuesta OCSP de validación de este certificado.
|
java.lang.String[] |
getOcspUrls()
El método obtiene las URLs de los OCSPs que se indican en el certificado.
|
java.lang.String |
getPolicyOID()
Método que obtiene el OID de la política del certificado.
|
java.util.List<java.lang.String> |
getPolicyOIDs()
Método que obtiene los OIDs de la política del certificado.
|
java.security.PublicKey |
getPublicKey()
Obtiene la clave pública asociada al certificado
|
java.lang.String |
getSerialNumber()
Método que devuelve el Número de Serie del certificado (Hexadecimal)
|
java.math.BigInteger |
getSerialNumberBigInteger()
Método que devuelve el Número de Serie del certificado (BigInteger)
|
java.util.List |
getSubjectAlternativeName()
Obtiene una lista que representa el contenido de la extensión Subject Alternative
Name (Nombre Alternativo del Sujeto).
|
java.lang.String |
getSubjectAlternativeNameElement(java.lang.String oid)
Busca un elemento dentro de la extensión Subject Alternative Name.
|
java.util.List<AlternativeNameElement> |
getSubjectAlternativeNameElements(int type)
Busca en el Subject Alternative Name elementos del tipo indicado.
|
java.lang.String[] |
getSubjectAlternativeNameElements(java.lang.String oid)
Busca elementos dentro de la extensión Subject Alternative Name.
|
java.lang.String |
getSubjectAlternativeNameString()
Obtiene el SAN en formato de texto
|
java.lang.String |
getSubjectDN()
Obtiene la cadena de texto contenida en el Subject del certificado
|
java.lang.String |
getSubjectKeyIdentifier()
Método que obtiene el Subject Key Identifier (SKI) a partir del certificado
|
static java.lang.String |
getSubjectKeyIdentifier(java.security.cert.X509Certificate certificate)
Método estático que obtiene el Subject Key Identifier (SKI) a partir de un certificado
X.509.
|
java.util.Date |
getValidityPeriodBeginning()
Obtiene la fecha de comienzo del periodo de validez del certificado
|
java.util.Date |
getValidityPeriodEnd()
Obtiene la fecha de finalización del periodo de validez del certificado
|
boolean |
hasNoRevocationCheck()
Devolverá cierto si el certificado contiene la extensión "Comprobación
de no revocación".
|
boolean |
isActive()
Método que comprueba la validez del certificado respecto a la fecha y hora
actual del sistema.
|
boolean |
isExpired()
Método que comprueba si el certificado ya está caducado: ha sobrepasado su periodo
de validez
|
boolean |
isKeyUsageCRLSign()
Comprueba si el certificado tiene como uso de clave la firma de CRLs
|
boolean |
isKeyUsageDataEncipherment()
Comprueba si el certificado tiene como uso de clave el cifrado de datos
|
boolean |
isKeyUsageDecipherOnly()
Comprueba si el certificado tiene como uso de clave sólo el descifrado
|
boolean |
isKeyUsageDigitalSignature()
Comprueba si el certificado tiene como uso de clave la firma digital
|
boolean |
isKeyUsageEncipherOnly()
Comprueba si el certificado tiene como uso de clave sólo el cifrado
|
boolean |
isKeyUsageKeyAgreement()
Comprueba si el certificado tiene como uso de clave el acuerdo de claves
|
boolean |
isKeyUsageKeyCertSign()
Comprueba si el certificado tiene como uso de clave la firma de certificados
|
boolean |
isKeyUsageKeyEncipherment()
Comprueba si el certificado tiene como uso de clave el cifrado de claves
|
boolean |
isKeyUsageNonRepudiation()
Comprueba si el certificado tiene como uso de clave el no repudio
|
boolean |
isNotYetActive()
Método que comprueba si el certificado aun no ha llegado a su periodo de
validez.
|
boolean |
isSelfSigned()
Método que devuelve si el certificado es autofirmado
|
static java.security.cert.X509Certificate |
normalize(java.security.cert.X509Certificate originalCert)
Normaliza los certificados de acuerdo al proveedor criptográfico de Arangi.
|
void |
save(java.io.File file)
Guarda el certificado en formato DER en el fichero que se pasa como parámetro
|
void |
saveToPEM(java.io.File file)
Guarda el certificado en formato PEM en el fichero que se pasa como parámetro
|
static org.bouncycastle.asn1.x500.X500Name |
stringToBcX500Name(java.lang.String dn)
Crea un objeto (Bouncycastle) X509Name a partir de un String con un DN.
|
byte[] |
toDER()
Devuelve el certificado en formato DER
|
java.lang.String |
toPEM()
Devuelve el certificado en formato PEM
|
byte[] |
toPKCS7(Certificate[] chain)
Crea un fichero PKCS#7 en el que almacena el certificado y su cadena de confianza.
|
java.lang.String |
toString()
Devuelve en texto la información más importante del certificado.
|
java.security.cert.X509Certificate |
toX509Certificate()
Devuelve el certificado en formato X509Certificate
|
org.bouncycastle.cert.X509CertificateHolder |
toX509CertificateHolder()
Obtiene la estructura del certificado en un objeto X509CertificateHolderç
de Bouncy Castle.
|
CertificateValidationServiceResult |
validate(java.util.List<CertificateValidationService> validationServices)
Valida el certificado a través de servicios de validación como, por ejemplo,
@Firma.
|
CertificateValidationServiceResult |
validate(java.util.List<CertificateValidationService> validationServices,
java.util.Date validationDate)
Valida el certificado a través de servicios de validación como, por ejemplo,
@Firma.
|
getArangiTemporalFolder, getCryptographicProvider, saveTemporalFile, saveToArangiTemporalFolder
public static final java.lang.String OID_OCSP_AIA_EXTENSION
public static final java.lang.String OID_ID_AT_COMMONNAME
public static final java.lang.String OID_USERID
public Certificate(org.bouncycastle.cert.X509CertificateHolder certificate) throws NormalizeCertificateException
certificate
- Certificado en formato X.509NormalizeCertificateException
- No se ha podido normalizar el certificado para
ser usado con el proveedor criptográfico de Arangipublic Certificate(java.security.cert.X509Certificate certificate) throws NormalizeCertificateException
certificate
- Certificado en formato X.509NormalizeCertificateException
- No se ha podido normalizar el certificado para
ser usado con el proveedor criptográfico de Arangipublic Certificate(java.io.File fileCertificate) throws NormalizeCertificateException, java.io.FileNotFoundException
fileCertificate
- Fichero que contiene un certificado en formato X.509NormalizeCertificateException
- No se ha podido normalizar el certificado para
ser usado con el proveedor criptográfico de Arangijava.io.FileNotFoundException
- El fichero no existepublic Certificate(java.io.InputStream isCertificate) throws NormalizeCertificateException
isCertificate
- Stream de lectura a un certificado en formato X.509NormalizeCertificateException
- No se ha podido normalizar el certificado para
ser usado con el proveedor criptográfico de Arangipublic Certificate(byte[] contenidoCertificado) throws NormalizeCertificateException
contenidoCertificado
- Contenido de un certificado en formato X.509NormalizeCertificateException
- No se ha podido normalizar el certificado para
ser usado con el proveedor criptográfico de Arangipublic boolean isSelfSigned() throws NormalizeCertificateException
NormalizeCertificateException
- Errores en la firma del certificadopublic java.lang.String getPolicyOID()
public java.util.List<java.lang.String> getPolicyOIDs()
public java.lang.String getIssuerKeyIdentifier()
public java.lang.String getSubjectKeyIdentifier()
public java.lang.String[] getCrlUrls() throws CertificateFieldException
CertificateFieldException
- Existe la extensión CDP pero no se puede leerpublic java.lang.String[] getOcspUrls() throws CertificateFieldException
CertificateFieldException
- Existe la extensión AIA pero no se puede leerpublic boolean isActive()
public boolean isNotYetActive()
public boolean isExpired()
public java.util.Date getValidityPeriodBeginning()
public java.util.Date getValidityPeriodEnd()
public boolean isKeyUsageDigitalSignature()
public boolean isKeyUsageNonRepudiation()
public boolean isKeyUsageKeyEncipherment()
public boolean isKeyUsageDataEncipherment()
public boolean isKeyUsageKeyAgreement()
public boolean isKeyUsageKeyCertSign()
public boolean isKeyUsageCRLSign()
public boolean isKeyUsageEncipherOnly()
public boolean isKeyUsageDecipherOnly()
public java.util.List<java.lang.String> getExtendedKeyUsage() throws CertificateException
if (certificate.getExtendedKeyUsage().contains (KeyPurposeId.id_kp_OCSPSigning.getId())) { ... }
java.security.cert.CertificateException
- La extensión no puede ser descodificadaCertificateException
public java.lang.String getFingerPrint()
getDigest
más
una transformación del resultado a hexadecimal.public java.lang.String getFingerPrint(java.lang.String hashingAlgorithm)
getDigest
más
una transformación del resultado a hexadecimal.hashingAlgorithm
- Algoritmo de hash a utilizarpublic byte[] getDigest() throws java.security.cert.CertificateEncodingException, java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
- No existe el algoritmo de hashing para
el proveedor criptográfico de Arangíjava.security.cert.CertificateEncodingException
- Error obteniendo la codificación
DER del documentopublic byte[] getDigest(java.lang.String hashingAlgorithm) throws java.security.NoSuchAlgorithmException, java.security.cert.CertificateEncodingException
hashingAlgorithm
- Algoritmo de hash a utilizarjava.security.NoSuchAlgorithmException
- No existe el algoritmo de hashing para
el proveedor criptográfico de Arangíjava.security.cert.CertificateEncodingException
- Error obteniendo la codificación
DER del documentopublic java.lang.String getDigestAlgorithm() throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
- el algoritmo no existepublic java.lang.String getElementSubject(org.bouncycastle.asn1.ASN1ObjectIdentifier oid)
certificate.getElementSubject(X509Name.GIVENNAME)
oid
- OID dele elemento buscadopublic java.lang.String[] getElementsSubject(org.bouncycastle.asn1.ASN1ObjectIdentifier oid)
certificate.getElementSubject(X509Name.GIVENNAME)
oid
- OID dele elemento buscadopublic java.lang.String getCommonName()
public java.lang.String getCountry()
public java.lang.String getSubjectDN()
public java.lang.String getIssuerDN()
public java.lang.String getIssuerCommonName()
public java.util.List getSubjectAlternativeName() throws CertificateFieldException
AlternativeNameElement
CertificateFieldException
- Error leyendo el certificadopublic java.lang.String getSubjectAlternativeNameString() throws CertificateFieldException
CertificateFieldException
- Error leyendo el certificadopublic java.lang.String getSubjectAlternativeNameElement(java.lang.String oid) throws CertificateFieldException
(String) certificate.getSubjectAlternativeNameElement("0.9.2342.19200300.100.1.1").get(0)
oid
- OID del elemento a BuscarCertificateFieldException
- Error leyendo el certificadopublic java.lang.String[] getSubjectAlternativeNameElements(java.lang.String oid) throws CertificateFieldException
(String) certificate.getSubjectAlternativeNameElements("0.9.2342.19200300.100.1.1")
oid
- OID del elemento a BuscarCertificateFieldException
- Error leyendo el certificadopublic java.util.List<AlternativeNameElement> getSubjectAlternativeNameElements(int type) throws CertificateFieldException
certificate.getSubjectAlternativeNameElements(GeneralName.dNSName);
type
- Tipo de elemento dentro del SANCertificateFieldException
- Error leyendo el certificadopublic java.util.List getIssuerAlternativeName() throws CertificateFieldException
AlternativeNameElement
CertificateFieldException
- Error leyendo el certificadopublic java.util.Vector getIssuerAlternativeNameElement(java.lang.String oid) throws CertificateFieldException
oid
- OID del elemento a BuscarCertificateFieldException
- Error leyendo el certificadopublic java.lang.String getSerialNumber()
public java.math.BigInteger getSerialNumberBigInteger()
public org.bouncycastle.asn1.cms.IssuerAndSerialNumber getIssuerAndSerialNumber() throws CertificateFieldException
CertificateFieldException
- No se ha podido leer correctamente la
información del certificadopublic java.security.PublicKey getPublicKey()
public java.security.cert.X509Certificate toX509Certificate()
public byte[] toDER() throws NormalizeCertificateException
NormalizeCertificateException
- No se ha podido codificar el certificado en
formato DERpublic org.bouncycastle.cert.X509CertificateHolder toX509CertificateHolder()
public java.lang.String toPEM() throws NormalizeCertificateException
NormalizeCertificateException
- No se ha podido codificar el certificado en
formato DER antes de pasarlo a PEMpublic byte[] toPKCS7(Certificate[] chain) throws java.security.SignatureException
chain
- Cadena de confianza. Si se pasa un valor nulo sólo se almacenará el
certificado.java.security.SignatureException
- Errores creando el almacén PKCS#7public void save(java.io.File file) throws NormalizeCertificateException, java.lang.Exception
file
- Fichero donde se guardará el certificadojava.lang.Exception
- No se ha podido guardar el ficheroNormalizeCertificateException
- No se ha podido codificar el certificado en
formato DERpublic void saveToPEM(java.io.File file) throws NormalizeCertificateException, java.lang.Exception
file
- Fichero donde se guardará el certificadojava.lang.Exception
- No se ha podido guardar el ficheroNormalizeCertificateException
- No se ha podido codificar el certificado en
formato DER antes de pasarlo a PEMpublic java.lang.String toString()
toString
in class java.lang.Object
public static java.security.cert.X509Certificate normalize(java.security.cert.X509Certificate originalCert) throws NormalizeCertificateException
originalCert
- Certificado a normalizarjava.lang.Exception
- Error durante la normalizaciónNormalizeCertificateException
public static java.lang.String getIssuerKeyIdentifier(java.security.cert.X509Certificate certificate)
certificate
- Certificado X.509public static java.lang.String getSubjectKeyIdentifier(java.security.cert.X509Certificate certificate)
certificate
- X.509 Certificatepublic static org.bouncycastle.asn1.x500.X500Name stringToBcX500Name(java.lang.String dn)
EmailAddress, UID, CN, SN (SerialNumber), GivenName, Initials, SurName, T, OU,
O, L, ST, DC, C
dn
- String que contiene un DN que puede ser transformado en un X509Name. El String
DN tiene el formato "CN=zz,OU=yy,O=foo,C=SE". OIDs desconocidos en el String
se añadirán al final del array de OIDspublic static java.security.cert.X509Certificate generateSelfCertificate(java.lang.String dn, long validity, java.lang.String policyId, java.security.PrivateKey privKey, java.security.PublicKey pubKey, boolean isCA) throws java.security.NoSuchAlgorithmException, java.security.cert.CertificateEncodingException, java.security.InvalidKeyException, java.lang.IllegalStateException, java.security.SignatureException
dn
- DN del emisor/issuer (es mismo que el del asunto/subject)validity
- Días de validezpolicyId
- String con la política o nuloprivKey
- Clave privada con la que se firmará el certificadopubKey
- Clave públicaisCA
- Si cierto se marcará el certificado como de una autoridad de certificaciónjava.security.NoSuchAlgorithmException
- No existe el algoritmo SHA-1 Pseudo-Random Number
Generation, necesario para obtener el número de serie del certificadojava.security.SignatureException
- Error firmando el certificadojava.lang.IllegalStateException
java.security.InvalidKeyException
- La clave privada no es válidajava.security.cert.CertificateEncodingException
- Error codificando el nuevo certificadopublic static java.security.cert.X509Certificate generateSelfCertificate(java.lang.String dn, long validity, java.lang.String policyId, java.security.PrivateKey privKey, java.security.PublicKey pubKey, boolean isCA, java.lang.String signatureAlgorithm) throws java.security.NoSuchAlgorithmException, java.security.cert.CertificateEncodingException
dn
- DN del emisor/issuer (es mismo que el del asunto/subject)validity
- Días de validezpolicyId
- String con la política o nuloprivKey
- Clave privada con la que se firmará el certificadopubKey
- Clave públicaisCA
- Si cierto se marcará el certificado como de una autoridad de certificaciónsignatureAlgorithm
- Algoritmo de la firma del certificadojava.security.NoSuchAlgorithmException
- No existe el algoritmo SHA-1 Pseudo-Random Number
Generation, necesario para obtener el número de serie del certificadojava.security.cert.CertificateEncodingException
- Error codificando el nuevo certificadopublic boolean hasNoRevocationCheck()
public CertificateValidationServiceResult validate(java.util.List<CertificateValidationService> validationServices)
validationServices
- Lista de servicios de validaciónpublic CertificateValidationServiceResult validate(java.util.List<CertificateValidationService> validationServices, java.util.Date validationDate)
validationServices
- Lista de servicios de validaciónvalidationDate
- Fecha para la que se realiza la validaciónpublic java.util.Map<java.lang.String,java.lang.String> getData(java.util.List<CertificateDataService> dataServices)
dataServices
- Servicios de obtención de información de certificadospublic java.lang.String getCertificateEmail()
public OCSPClient[] getOCSPClients()
public OCSPResponse getOCSPResponse()
OCSPClient
con la URL del servidor OCSP que valide este tipo de certificados.public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
Copyright © 2018 Agencia de Tecnología y Certificación Electrónica. All Rights Reserved.