/**
   * 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;
  }
Exemple #2
0
 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;
 }
Exemple #3
0
 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);
         }
       }
     }
   }
 }
Exemple #4
0
 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;
 }