Beispiel #1
0
  public void extractPOE(TimestampWrapper timestamp, DiagnosticData diagnosticData) {

    Date productionTime = timestamp.getProductionTime();

    XmlSignedObjectsType signedObjects = timestamp.getSignedObjects();
    if (signedObjects != null) {
      if (CollectionUtils.isNotEmpty(signedObjects.getSignedSignature())) {
        // SIGNATURES and TIMESTAMPS
        for (XmlSignedSignature signedSignature : signedObjects.getSignedSignature()) {
          addPOE(signedSignature.getId(), productionTime);
        }
        for (XmlTimestampedTimestamp timstampedTimastamp :
            signedObjects.getTimestampedTimestamp()) {
          addPOE(timstampedTimastamp.getId(), productionTime);
        }
      }

      if (CollectionUtils.isNotEmpty(signedObjects.getDigestAlgAndValue())) {
        for (XmlDigestAlgAndValueType digestAlgoAndValue : signedObjects.getDigestAlgAndValue()) {
          if (StringUtils.equals(
              TimestampReferenceCategory.CERTIFICATE.name(), digestAlgoAndValue.getCategory())) {
            String certificateId = getCertificateIdByDigest(digestAlgoAndValue, diagnosticData);
            if (certificateId != null) {
              addPOE(certificateId, productionTime);
            }
          } else if (StringUtils.equals(
              TimestampReferenceCategory.REVOCATION.name(), digestAlgoAndValue.getCategory())) {
            String revocationId = getRevocationIdByDigest(digestAlgoAndValue, diagnosticData);
            if (revocationId != null) {
              addPOE(revocationId, productionTime);
            }
          }
        }
      }
    }
  }