From b46e9d2e72e21cc687b3a55009324e9dc4e761f8 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Mon, 14 Dec 2020 18:13:09 +0100 Subject: [PATCH] FEAT #14565 TIME 0:30 improve controle to make LTV signature --- .../DigitalSignatureController.php | 26 +++++++++++-------- .../controllers/DocumentController.php | 2 +- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/app/document/controllers/DigitalSignatureController.php b/src/app/document/controllers/DigitalSignatureController.php index 8ff36abb3d..ab2bfdf2c6 100755 --- a/src/app/document/controllers/DigitalSignatureController.php +++ b/src/app/document/controllers/DigitalSignatureController.php @@ -366,6 +366,7 @@ class DigitalSignatureController // Create a collection of trusted certificats: $trustedCertificates = new \SetaPDF_Signer_X509_Collection(\SetaPDF_Signer_Pem::extractFromFile($tmpTimestampPEM)); + $extraTrustedCertificate = false; if (!empty($args['extraCertificate'])) { $certificate = new \SetaPDF_Signer_X509_Certificate($args['extraCertificate']); @@ -381,22 +382,25 @@ class DigitalSignatureController foreach ($aia->fetchIssuers($informationResolverManager)->getAll() as $issuer) { $trustedCertificates->add($issuer); $certificates[] = $issuer; + $extraTrustedCertificate = true; } } } } - // Create a collector instance - $collector = new \SetaPDF_Signer_ValidationRelatedInfo_Collector($trustedCertificates); - $vriData = $collector->getByFieldName($document, $args['fieldName']); - - $dss = new \SetaPDF_Signer_DocumentSecurityStore($document); - $dss->addValidationRelatedInfoByFieldName( - $args['fieldName'], - $vriData->getCrls(), - $vriData->getOcspResponses(), - $vriData->getCertificates() - ); + if (empty($args['extraCertificate']) || (!empty($args['extraCertificate']) && $extraTrustedCertificate)) { + // Create a collector instance + $collector = new \SetaPDF_Signer_ValidationRelatedInfo_Collector($trustedCertificates); + $vriData = $collector->getByFieldName($document, $args['fieldName']); + + $dss = new \SetaPDF_Signer_DocumentSecurityStore($document); + $dss->addValidationRelatedInfoByFieldName( + $args['fieldName'], + $vriData->getCrls(), + $vriData->getOcspResponses(), + $vriData->getCertificates() + ); + } $document->save()->finish(); diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php index 7d3d90ad6f..8fde98e528 100755 --- a/src/app/document/controllers/DocumentController.php +++ b/src/app/document/controllers/DocumentController.php @@ -672,7 +672,7 @@ class DocumentController 'fingerprint' => $storeInfos['fingerprint'] ]); - if (DocumentController::ACTIONS[$args['actionId']] == 'VAL' && ($workflow['mode'] == 'visa' || $workflow['signature_mode'] == 'stamp')) { + if (DocumentController::ACTIONS[$args['actionId']] == 'VAL' && $workflow['signature_mode'] == 'stamp') { $storeInfos = DocserverController::storeResourceOnDocServer([ 'encodedFile' => base64_encode($fileContent), 'format' => 'pdf', -- GitLab