/** * This method returns the type of the qualification of the signature (signing certificate). * * @param signCert * @return */ private SignatureType getSignatureType(final String certificateId) { CertificateWrapper certificate = diagnosticData.getUsedCertificateByIdNullSafe(certificateId); final CertificateQualification certQualification = new CertificateQualification(); certQualification.setQcp(CertificatePolicyIdentifiers.isQCP(certificate)); certQualification.setQcpp(CertificatePolicyIdentifiers.isQCPPlus(certificate)); certQualification.setQcc(QCStatementPolicyIdentifiers.isQCCompliant(certificate)); certQualification.setQcsscd(QCStatementPolicyIdentifiers.isSupportedByQSCD(certificate)); final TLQualification trustedListQualification = new TLQualification(); final String serviceType = certificate.getCertificateTSPServiceType(); final List<String> qualifiers = certificate.getCertificateTSPServiceQualifiers(); trustedListQualification.setCaqc(ServiceQualification.isCaQc(serviceType)); trustedListQualification.setQcCNoSSCD(ServiceQualification.isQcNoSSCD(qualifiers)); trustedListQualification.setQcForLegalPerson( ServiceQualification.isQcForLegalPerson(qualifiers)); trustedListQualification.setQcSSCDAsInCert( ServiceQualification.isQcSscdStatusAsInCert(qualifiers)); trustedListQualification.setQcWithSSCD(ServiceQualification.isQcWithSSCD(qualifiers)); trustedListQualification.setQcStatement(ServiceQualification.isQcStatement(qualifiers)); final SignatureType signatureType = SignatureQualification.getSignatureType(certQualification, trustedListQualification); return signatureType; }
private String getCertificateIdByDigest( XmlDigestAlgAndValueType digestAlgoValue, DiagnosticData diagnosticData) { List<CertificateWrapper> certificates = diagnosticData.getUsedCertificates(); if (CollectionUtils.isNotEmpty(certificates)) { for (CertificateWrapper certificate : certificates) { List<XmlDigestAlgAndValueType> digestAlgAndValues = certificate.getDigestAlgAndValue(); if (CollectionUtils.isNotEmpty(digestAlgAndValues)) { for (XmlDigestAlgAndValueType certificateDigestAndValue : digestAlgAndValues) { if (StringUtils.equals( certificateDigestAndValue.getDigestMethod(), digestAlgoValue.getDigestMethod()) && StringUtils.equals( certificateDigestAndValue.getDigestValue(), digestAlgoValue.getDigestValue())) { return certificate.getId(); } } } } } return null; }
public void init(DiagnosticData diagnosticData, Date currentTime) { Set<SignatureWrapper> signatures = diagnosticData.getAllSignatures(); for (SignatureWrapper signature : signatures) { addPOE(signature.getId(), currentTime); } Set<TimestampWrapper> timestamps = diagnosticData.getAllTimestamps(); for (TimestampWrapper timestamp : timestamps) { addPOE(timestamp.getId(), currentTime); } List<CertificateWrapper> usedCertificates = diagnosticData.getUsedCertificates(); for (CertificateWrapper certificate : usedCertificates) { addPOE(certificate.getId(), currentTime); Set<RevocationWrapper> revocations = certificate.getRevocationData(); if (CollectionUtils.isNotEmpty(revocations)) { for (RevocationWrapper revocation : revocations) { if (RevocationOrigin.SIGNATURE.name().equals(revocation.getOrigin())) { addPOE(revocation.getId(), currentTime); } } } } }
private String getRevocationIdByDigest( XmlDigestAlgAndValueType digestAlgoValue, DiagnosticData diagnosticData) { List<CertificateWrapper> certificates = diagnosticData.getUsedCertificates(); if (CollectionUtils.isNotEmpty(certificates)) { for (CertificateWrapper certificate : certificates) { Set<RevocationWrapper> revocations = certificate.getRevocationData(); if (CollectionUtils.isNotEmpty(revocations)) { for (RevocationWrapper revocationData : revocations) { List<XmlDigestAlgAndValueType> digestAlgAndValues = revocationData.getDigestAlgAndValue(); for (XmlDigestAlgAndValueType revocDigestAndValue : digestAlgAndValues) { if (StringUtils.equals( revocDigestAndValue.getDigestMethod(), digestAlgoValue.getDigestMethod()) && StringUtils.equals( revocDigestAndValue.getDigestValue(), digestAlgoValue.getDigestValue())) { return revocationData.getId(); } } } } } } return null; }