,
iText (Sharp) 5.5.10 LtvVerifier , .
: LtvVerifier Verifier (OcspVerifier, CrlVerifier, RootStoreVerifier, CertificateVerifier), ). Verifier , ; null .
, Verifier, CertificateVerifier, null , :
// Check if the signature is valid
if (issuerCert != null) {
signCert.Verify(issuerCert.GetPublicKey());
}
// Also in case, the certificate is self-signed
else {
signCert.Verify(signCert.GetPublicKey());
}
( CertificateVerifier Verify)
, LtvVerifier ,
Org.BouncyCastle.Security.InvalidKeyException ,
OP
,
cn = AUTORIDAD DE SELLADO DE TIEMPO FNMT-RCM, ou = CERES, o = FNMT-RCM, c = ES
cn = AC Administración Pública, serialNumber = Q2826004J, ou = CERES, o = FNMT-RCM, c = ES
ou = AC RAIZ FNMT-RCM, o = FNMT-RCM, c = ES
.
AC Administración Pública (. TL , " ", "Fábrica Nacional de Moneda y Timbre - Real Casa de la Moneda (FNMT-RCM)", "Trust Service", " su uso en el ámbito de...", "Digital Identity",).
, , , . , LtvVerifier, .
- LtvVerifier.
?
, , .
RootStoreVerifier. Verify :
override public List<VerificationOK> Verify(X509Certificate signCert, X509Certificate issuerCert, DateTime signDate) {
LOGGER.Info("Root store verification: " + signCert.SubjectDN);
if (certificates == null)
return base.Verify(signCert, issuerCert, signDate);
try {
List<VerificationOK> result = new List<VerificationOK>();
foreach (X509Certificate anchor in certificates) {
try {
signCert.Verify(anchor.GetPublicKey());
LOGGER.Info("Certificate verified against root store");
result.Add(new VerificationOK(signCert, this, "Certificate verified against root store."));
result.AddRange(base.Verify(signCert, issuerCert, signDate));
return result;
} catch (GeneralSecurityException) {}
}
result.AddRange(base.Verify(signCert, issuerCert, signDate));
return result;
} catch (GeneralSecurityException) {
return base.Verify(signCert, issuerCert, signDate);
}
}
signCert.Verify(anchor.GetPublicKey());
LOGGER.Info("Certificate verified against root store");
result.Add(new VerificationOK(signCert, this, "Certificate verified against root store."));
result.AddRange(base.Verify(signCert, issuerCert, signDate));
return result;
try. , signCert , base.Verify.