public class ValidateCertificate extends Certificate
Certificate
.CAList
contiene un fichero de validación XML
(ValidationXML
) se comprueba si la Autoridad de
Certificación (CA) emisora existe en él. Si es así se valida contra el OCSP
y/o la CRL que se indiquen. De esta forma obtendremos si el certificado es
válido o no.CAList
con el que se inicializa esta clase es fundamental
durante el proceso de validación. Además de la función ya indicada de poder contener
un fichero de validación XML, la lista de certificados de CA que contiene permite a
esta clase obtener la cadena de confianza de los certificados a validar. De esta forma
también es posible controlar cuáles son las CAs con las que se va a trabajar, no
permitiendo que se validen en el sistema certificados de los que se desconoce su
procedencia.
CAList caList = new CAList (new File ("c:/certificates/caCertificates"));
X509Certificate certificate = Util.getCertificate(new File ("c:/certificates/myCertificate.cer"));
ValidateCertificate validateCertificate = new ValidateCertificate (certificate, caList);
int result = validateCertificate.validate ();
System.out.println ("Válido Hoy?: " + CertificateValidator.getString (result));
// validación histórica
SimpleDateFormat dateFormat = new SimpleDateFormat ("dd/MM/yyyy");
result = validateCertificate.validate (dateFormat.parse ("01/01/2008"));
System.out.println ("Válido el 01/01/2008?: " + CertificateValidator.getString (result));
La mayoría de Autoridades de Certificación eliminan la información de revocación
de los certificados caducados de sus CRLs. En estos casos la validación histórica no
es posible y Arangi devolverá que el certificado era válido, ya que tanto la CRL como
el OCSP devuelven este resultado. La única forma de realizar validación histórica sería
dentro de un proceso de firma longeva.OID_ID_AT_COMMONNAME, OID_OCSP_AIA_EXTENSION, OID_USERID
arangiTemporalFolder, CRYPTOGRAPHIC_PROVIDER, CRYPTOGRAPHIC_PROVIDER_NAME, DEFAULT_HASHING_ALGORITHM, DEFAULT_SIGNING_ALGORITHM, NUM_RETRIES
Constructor and Description |
---|
ValidateCertificate(byte[] contenidoCertificado,
CAList caList)
Constructor en base a un array de bytes.
|
ValidateCertificate(java.io.File fileCertificate,
CAList caList)
Constructor en base a un fichero.
|
ValidateCertificate(java.io.InputStream is,
CAList caList)
Constructor en base a un stream de lectura.
|
ValidateCertificate(java.security.cert.X509Certificate certificate,
CAList caList)
Constructor en base a un objeto java.security.cert.X509Certificate.
|
ValidateCertificate(java.security.cert.X509Certificate certificate,
CAList caList,
OCSPClient ocsp,
CRL crl)
Constructor en base a un objeto java.security.cert.X509Certificate.
|
ValidateCertificate(java.security.cert.X509Certificate certificate,
CAList caList,
OCSPClient ocsp,
CRL crl,
ValidatingTrace trace)
Constructor en base a un objeto java.security.cert.X509Certificate que permite obtener
la traza de validación.
|
ValidateCertificate(java.security.cert.X509Certificate certificate,
CAList caList,
ValidatingTrace trace)
Constructor en base a un objeto java.security.cert.X509Certificate que permite obtener
la traza de validación.
|
Modifier and Type | Method and Description |
---|---|
ValidateCertificate[] |
getCertificationChain()
Método que obtiene la cadena de confianza del certificado.
|
CAList |
getCertificationChainAsCAList()
Devuelve la lista de certificados de CA que requiere este certificado
|
java.util.List<ValidateCertificate> |
getCertificationChainAsList()
Método que obtiene la cadena de confianza del certificado.
|
java.util.List<java.util.List<ValidateCertificate>> |
getCertificationChainSeveralIssuers()
Método que obtiene la cadena de confianza del certificado.
|
ValidateCertificate[] |
getCompleteCertificationChain()
Método que obtiene la cadena de confianza del certificado.
|
java.util.List<ValidateCertificate> |
getCompleteCertificationChainAsList()
Método que obtiene la cadena de confianza del certificado.
|
java.security.cert.X509Certificate[] |
getCompleteCertificationChainAsX509Array()
Método que obtiene la cadena de confianza del certificado.
|
CRL |
getCRL()
Obtiene un objeto CRL de acuerdo al valor de la extensión CRL Distribution Point
del certificado.
|
ValidateCertificate |
getIssuerCertificate()
Método que obtiene el certificado emisor.
|
OCSPClient[] |
getOCSPClients()
Método que obtiene todos los clientes OCSP que pueden validar este
certificado.
|
ValidatingTrace |
getTrace()
Método que obtiene la traza de los pasos dados durante la validación.
|
int |
validate()
Valida el certificado y su cadena de confianza.
|
int |
validate(java.util.Date validationDate)
Valida el certificado y su cadena de confianza en un momento del tiempo.
|
int |
validate(java.util.Date validationDate,
ValidatingTrace externalTrace)
Valida el certificado y su cadena de confianza en un momento del tiempo, permitiendo
obtener la traza de la validación.
|
int |
validate(ValidatingTrace externalTrace)
Valida el certificado y su cadena de confianza, permitiendo obtener la traza de
la validación.
|
equals, generateSelfCertificate, generateSelfCertificate, getCertificateEmail, getCommonName, getCountry, getCrlUrls, getData, getDigest, getDigest, getDigestAlgorithm, getElementsSubject, getElementSubject, getExtendedKeyUsage, getFingerPrint, getFingerPrint, getIssuerAlternativeName, getIssuerAlternativeNameElement, getIssuerAndSerialNumber, getIssuerCommonName, getIssuerDN, getIssuerKeyIdentifier, getIssuerKeyIdentifier, getOCSPResponse, getOcspUrls, getPolicyOID, getPolicyOIDs, getPublicKey, getSerialNumber, getSerialNumberBigInteger, getSubjectAlternativeName, getSubjectAlternativeNameElement, getSubjectAlternativeNameElements, getSubjectAlternativeNameElements, getSubjectAlternativeNameString, getSubjectDN, getSubjectKeyIdentifier, getSubjectKeyIdentifier, getValidityPeriodBeginning, getValidityPeriodEnd, hasNoRevocationCheck, isActive, isExpired, isKeyUsageCRLSign, isKeyUsageDataEncipherment, isKeyUsageDecipherOnly, isKeyUsageDigitalSignature, isKeyUsageEncipherOnly, isKeyUsageKeyAgreement, isKeyUsageKeyCertSign, isKeyUsageKeyEncipherment, isKeyUsageNonRepudiation, isNotYetActive, isSelfSigned, normalize, save, saveToPEM, stringToBcX500Name, toDER, toPEM, toPKCS7, toString, toX509Certificate, toX509CertificateHolder, validate, validate
getArangiTemporalFolder, getCryptographicProvider, saveTemporalFile, saveToArangiTemporalFolder
public ValidateCertificate(java.security.cert.X509Certificate certificate, CAList caList) throws CertificateCANotFoundException, NormalizeCertificateException
certificate
- Certificado X.509 v3caList
- Lista de certificados de CACertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadapublic ValidateCertificate(java.io.File fileCertificate, CAList caList) throws CertificateCANotFoundException, NormalizeCertificateException, java.io.FileNotFoundException
fileCertificate
- Fichero que contiene el certificado (tal cual o en formato PEM).caList
- Lista de certificados de CACertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadajava.io.FileNotFoundException
- El fichero no existepublic ValidateCertificate(java.io.InputStream is, CAList caList) throws CertificateCANotFoundException, NormalizeCertificateException
is
- Stream de lectura que contiene el certificado (tal cual o en formato PEM).caList
- Lista de certificados de CACertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadapublic ValidateCertificate(byte[] contenidoCertificado, CAList caList) throws CertificateCANotFoundException, NormalizeCertificateException
contenidoCertificado
- Array de bytes que es el contenido del certificado (tal cual o en formato PEM).caList
- Lista de certificados de CACertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadapublic ValidateCertificate(java.security.cert.X509Certificate certificate, CAList caList, ValidatingTrace trace) throws CertificateCANotFoundException, NormalizeCertificateException
certificate
- Certificado X.509 v3caList
- Lista de certificados de CAtrace
- Traza de los pasos dados durante la validaciónCertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadapublic ValidateCertificate(java.security.cert.X509Certificate certificate, CAList caList, OCSPClient ocsp, CRL crl) throws CertificateCANotFoundException, NormalizeCertificateException
certificate
- Certificado X.509 v3caList
- Lista de certificados de CAocsp
- Cliente OCSP donde realizar la validación (puede ser nulo)crl
- CRL donde realizar la validación (puede ser nula)CertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadapublic ValidateCertificate(java.security.cert.X509Certificate certificate, CAList caList, OCSPClient ocsp, CRL crl, ValidatingTrace trace) throws CertificateCANotFoundException, NormalizeCertificateException
certificate
- Certificado X.509 v3caList
- Lista de certificados de CAocsp
- Cliente OCSP donde realizar la validación (puede ser nulo)crl
- CRL donde realizar la validación (puede ser nula)trace
- Traza de los pasos dados durante la validaciónCertificateCANotFoundException
- El certificado no pertenece a ninguna CA conocidaNormalizeCertificateException
- El certificado no puede ser normalizado al formato
reconocido por el proveedor criptográfico de Arangi o su firma no es correcta o no
puede ser analizadapublic CAList getCertificationChainAsCAList()
public int validate()
CertificateValidator
public int validate(java.util.Date validationDate)
validationDate
- Fecha donde se evaluará la validaciónCertificateValidator
public int validate(ValidatingTrace externalTrace)
externalTrace
- Traza de los pasos dados durante la validaciónCertificateValidator
public int validate(java.util.Date validationDate, ValidatingTrace externalTrace)
validationDate
- Fecha donde se evaluará la validaciónexternalTrace
- Traza de los pasos dados durante la validaciónCertificateValidator
public ValidateCertificate getIssuerCertificate()
public java.util.List<ValidateCertificate> getCertificationChainAsList()
public java.util.List<ValidateCertificate> getCompleteCertificationChainAsList()
public ValidateCertificate[] getCertificationChain()
public ValidateCertificate[] getCompleteCertificationChain()
public java.security.cert.X509Certificate[] getCompleteCertificationChainAsX509Array()
public java.util.List<java.util.List<ValidateCertificate>> getCertificationChainSeveralIssuers()
public OCSPClient[] getOCSPClients()
getOCSPClients
in class Certificate
public ValidatingTrace getTrace()
public CRL getCRL() throws CertificateFieldException, InvalidCRLException
java.lang.Exception
- No se puede obtener la CRLCertificateFieldException
InvalidCRLException
Copyright © 2018 Agencia de Tecnología y Certificación Electrónica. All Rights Reserved.