From 25f51c28195f43a94f515da5a15535f38243344c Mon Sep 17 00:00:00 2001 From: Vitali Prudnikovich Date: Mon, 7 Oct 2024 17:47:20 +0300 Subject: [PATCH 1/2] Timestamp reference files for supporting MAC integrity protection for different signing modes DEVSIX-8627 --- ...rotectedDocInAppendModeTest_timestamping.pdf | Bin 0 -> 19835 bytes ...cmp_signMacProtectedDocTest_timestamping.pdf | Bin 0 -> 15182 bytes ...rotectedDocWithSHA3_384Test_timestamping.pdf | Bin 0 -> 15142 bytes ...nMacPublicEncryptionDocTest_timestamping.pdf | Bin 0 -> 15772 bytes ...ignNotMacProtectedDoc17Test_timestamping.pdf | Bin 0 -> 10556 bytes ...rotectedDocInAppendModeTest_timestamping.pdf | Bin 0 -> 16931 bytes ..._signNotMacProtectedDocTest_timestamping.pdf | Bin 0 -> 15158 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_timestamping.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_timestamping.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocWithSHA3_384Test_timestamping.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacPublicEncryptionDocTest_timestamping.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_timestamping.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocInAppendModeTest_timestamping.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest_timestamping.pdf diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_timestamping.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_timestamping.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4b22caf4ab754f56df10ae7a98301d9b2a183b02 GIT binary patch literal 19835 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 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_timestamping.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_timestamping.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fb6c479746d257b3a56ca7001a7015e575d05742 GIT binary patch literal 15182 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 CdyF3d literal 0 HcmV?d00001 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_timestamping.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_timestamping.pdf new file mode 100644 index 0000000000000000000000000000000000000000..914c0ef98e5b95f31547e56396aefbbb575d068f GIT binary patch literal 10556 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 X{H-4XRoY_yQws>4FY8Kql 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 Date: Tue, 8 Oct 2024 05:44:43 +0000 Subject: [PATCH 2/2] Support MAC integrity protection for different signing modes DEVSIX-8627 Autoported commit. Original commit hash: [9fe2316b0] Manual files: sharpenConfiguration.xml sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_timestamping.pdf sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_timestamping.pdf sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocWithSHA3_384Test_timestamping.pdf sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signMacPublicEncryptionDocTest_timestamping.pdf sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_timestamping.pdf sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocInAppendModeTest_timestamping.pdf sign/src/test/resources/com/itextpdf/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest_timestamping.pdf --- .../mac/MacIntegrityProtectorCreationTest.cs | 19 ++ .../cmp_addMacWithDisableMacPropertyTest.pdf | Bin 0 -> 4756 bytes .../mac/ReadSignedMacProtectedDocumentTest.cs | 81 +++++++ .../mac/SignedDocumentWithMacTest.cs | 228 +++++++++++------- ...p_updateSignedMacProtectedDocumentTest.pdf | Bin 17528 -> 17519 bytes .../signedMacProtectedInvalidDoc.pdf | Bin ...hirdPartyMacProtectedAndSignedDocument.pdf | Bin .../certs/tsaCert.pem | 56 +++++ ...ectedDocInAppendModeTest_signDetached.pdf} | Bin 26725 -> 28273 bytes ...pendModeTest_signExternalContainerReal.pdf | Bin 0 -> 21889 bytes ..._signMacProtectedDocTest_signDetached.pdf} | Bin 22060 -> 23614 bytes ...ectedDocTest_signExternalContainerReal.pdf | Bin 0 -> 17230 bytes ...ectedDocWithSHA3_384Test_signDetached.pdf} | Bin 22030 -> 23602 bytes ...SHA3_384Test_signExternalContainerReal.pdf | Bin 0 -> 17218 bytes ...cPublicEncryptionDocTest_signDetached.pdf} | Bin 22642 -> 24226 bytes ...ptionDocTest_signExternalContainerReal.pdf | Bin 0 -> 17842 bytes ...NotMacProtectedDoc17Test_signDetached.pdf} | Bin 18992 -> 18988 bytes ...edDoc17Test_signExternalContainerBlank.pdf | Bin 0 -> 12543 bytes ...tedDoc17Test_signExternalContainerReal.pdf | Bin 0 -> 12547 bytes ...ectedDocInAppendModeTest_signDetached.pdf} | Bin 25405 -> 25397 bytes ...endModeTest_signExternalContainerBlank.pdf | Bin 0 -> 18993 bytes ...pendModeTest_signExternalContainerReal.pdf | Bin 0 -> 18997 bytes ...gnNotMacProtectedDocTest_signDetached.pdf} | Bin 22056 -> 23622 bytes ...ectedDocTest_signExternalContainerReal.pdf | Bin 0 -> 17231 bytes .../BouncyCastleFactoryCreator.cs | 12 +- .../itext/kernel/mac/IMacContainerLocator.cs | 10 + .../mac/StandaloneMacContainerLocator.cs | 10 + .../itext/kernel/pdf/PdfWriter.cs | 7 +- .../itext/kernel/pdf/StampingProperties.cs | 1 + .../itext.sign/itext/signatures/PdfSigner.cs | 81 +++++-- .../itext/signatures/PdfTwoPhaseSigner.cs | 4 + .../itext/signatures/cms/CMSContainer.cs | 11 +- .../itext/signatures/cms/SignerInfo.cs | 10 + .../SignExceptionMessageConstant.cs | 2 + .../mac/SignatureMacContainerLocator.cs | 10 + port-hash | 2 +- 36 files changed, 428 insertions(+), 116 deletions(-) create mode 100644 itext.tests/itext.kernel.tests/resources/itext/kernel/mac/MacIntegrityProtectorCreationTest/cmp_addMacWithDisableMacPropertyTest.pdf create mode 100644 itext.tests/itext.sign.tests/itext/signatures/mac/ReadSignedMacProtectedDocumentTest.cs rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/{SignedDocumentWithMacTest => ReadSignedMacProtectedDocumentTest}/cmp_updateSignedMacProtectedDocumentTest.pdf (83%) rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/{SignedDocumentWithMacTest => ReadSignedMacProtectedDocumentTest}/signedMacProtectedInvalidDoc.pdf (100%) rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/{SignedDocumentWithMacTest => ReadSignedMacProtectedDocumentTest}/thirdPartyMacProtectedAndSignedDocument.pdf (100%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/certs/tsaCert.pem rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signMacProtectedDocInAppendModeTest.pdf => cmp_signMacProtectedDocInAppendModeTest_signDetached.pdf} (79%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_signExternalContainerReal.pdf rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signMacProtectedDocTest.pdf => cmp_signMacProtectedDocTest_signDetached.pdf} (75%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_signExternalContainerReal.pdf rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signMacProtectedDocWithSHA3_384Test.pdf => cmp_signMacProtectedDocWithSHA3_384Test_signDetached.pdf} (74%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocWithSHA3_384Test_signExternalContainerReal.pdf rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signMacPublicEncryptionDocTest.pdf => cmp_signMacPublicEncryptionDocTest_signDetached.pdf} (76%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacPublicEncryptionDocTest_signExternalContainerReal.pdf rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signNotMacProtectedDoc17Test.pdf => cmp_signNotMacProtectedDoc17Test_signDetached.pdf} (91%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_signExternalContainerBlank.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_signExternalContainerReal.pdf rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signNotMacProtectedDocInAppendModeTest.pdf => cmp_signNotMacProtectedDocInAppendModeTest_signDetached.pdf} (85%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocInAppendModeTest_signExternalContainerBlank.pdf create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocInAppendModeTest_signExternalContainerReal.pdf rename itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/{cmp_signNotMacProtectedDocTest.pdf => cmp_signNotMacProtectedDocTest_signDetached.pdf} (71%) create mode 100644 itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest_signExternalContainerReal.pdf diff --git a/itext.tests/itext.kernel.tests/itext/kernel/mac/MacIntegrityProtectorCreationTest.cs b/itext.tests/itext.kernel.tests/itext/kernel/mac/MacIntegrityProtectorCreationTest.cs index 9e3465d390..cc5f8e8de7 100644 --- a/itext.tests/itext.kernel.tests/itext/kernel/mac/MacIntegrityProtectorCreationTest.cs +++ b/itext.tests/itext.kernel.tests/itext/kernel/mac/MacIntegrityProtectorCreationTest.cs @@ -208,6 +208,25 @@ public virtual void AddMacOnAppendModeTest() { cmpFileName, DESTINATION_FOLDER, "diff", PASSWORD, PASSWORD)); } + [NUnit.Framework.Test] + [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] + public virtual void AddMacWithDisableMacPropertyTest() { + // MAC should not be added in disable MAC mode even if it was provided with writer properties + String fileName = "addMacWithDisableMacPropertyTest.pdf"; + String outputFileName = DESTINATION_FOLDER + fileName; + String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; + MacProperties macProperties = new MacProperties(MacProperties.MacDigestAlgorithm.SHA_384); + WriterProperties writerProperties = new WriterProperties().SetPdfVersion(PdfVersion.PDF_2_0).SetStandardEncryption + (PASSWORD, PASSWORD, 0, EncryptionConstants.ENCRYPTION_AES_256, macProperties); + using (PdfDocument pdfDoc = new PdfDocument(new PdfReader(SOURCE_FOLDER + "noMacProtectionDocument.pdf", new + ReaderProperties().SetPassword(PASSWORD)), new PdfWriter(outputFileName, writerProperties), new StampingProperties + ().DisableMac())) { + pdfDoc.AddNewPage().AddAnnotation(new PdfTextAnnotation(new Rectangle(100, 100, 100, 100))); + } + NUnit.Framework.Assert.IsNull(new CompareTool().EnableEncryptionCompare().CompareByContent(outputFileName, + cmpFileName, DESTINATION_FOLDER, "diff", PASSWORD, PASSWORD)); + } + [NUnit.Framework.Test] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] public virtual void AddMacOnPreserveEncryptionWhileDowngradingTest() { diff --git a/itext.tests/itext.kernel.tests/resources/itext/kernel/mac/MacIntegrityProtectorCreationTest/cmp_addMacWithDisableMacPropertyTest.pdf b/itext.tests/itext.kernel.tests/resources/itext/kernel/mac/MacIntegrityProtectorCreationTest/cmp_addMacWithDisableMacPropertyTest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0bca6b434cbbe701df298a13819dce8f4b0977cb GIT binary patch literal 4756 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. +*/ +using System; +using iText.Commons.Utils; +using iText.Kernel.Exceptions; +using iText.Kernel.Logs; +using iText.Kernel.Pdf; +using iText.Kernel.Utils; +using iText.Test; +using iText.Test.Attributes; + +namespace iText.Signatures.Mac { + [NUnit.Framework.Category("BouncyCastleIntegrationTest")] + public class ReadSignedMacProtectedDocumentTest : ExtendedITextTest { + private static readonly String SOURCE_FOLDER = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext + .CurrentContext.TestDirectory) + "/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/"; + + private static readonly String DESTINATION_FOLDER = NUnit.Framework.TestContext.CurrentContext.TestDirectory + + "/test/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/"; + + private static readonly byte[] ENCRYPTION_PASSWORD = "123".GetBytes(); + + [NUnit.Framework.OneTimeSetUp] + public static void Before() { + CreateOrClearDestinationFolder(DESTINATION_FOLDER); + } + + [NUnit.Framework.Test] + [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] + public virtual void ReadSignedMacProtectedInvalidDocTest() { + String srcFileName = SOURCE_FOLDER + "signedMacProtectedInvalidDoc.pdf"; + String exceptionMessage = NUnit.Framework.Assert.Catch(typeof(PdfException), () => { + using (PdfDocument ignored = new PdfDocument(new PdfReader(srcFileName, new ReaderProperties().SetPassword + (ENCRYPTION_PASSWORD)))) { + } + } + ).Message; + // Do nothing. + NUnit.Framework.Assert.AreEqual(KernelExceptionMessageConstant.MAC_VALIDATION_FAILED, exceptionMessage); + } + + [NUnit.Framework.Test] + [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] + public virtual void UpdateSignedMacProtectedDocumentTest() { + String fileName = "updateSignedMacProtectedDocumentTest.pdf"; + String srcFileName = SOURCE_FOLDER + "thirdPartyMacProtectedAndSignedDocument.pdf"; + String outputFileName = DESTINATION_FOLDER + fileName; + String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; + using (PdfDocument ignored = new PdfDocument(new PdfReader(srcFileName, new ReaderProperties().SetPassword + (ENCRYPTION_PASSWORD)), new PdfWriter(FileUtil.GetFileOutputStream(outputFileName)), new StampingProperties + ().UseAppendMode())) { + } + // Do nothing. + // This call produces INFO log from AESCipher caused by exception while decrypting. The reason is that, + // while comparing encrypted signed documents, CompareTool needs to mark signature value as unencrypted. + // Instead, it tries to decrypt not encrypted value which results in exception. + NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outputFileName, cmpFileName, DESTINATION_FOLDER + , "diff", ENCRYPTION_PASSWORD, ENCRYPTION_PASSWORD)); + } + } +} diff --git a/itext.tests/itext.sign.tests/itext/signatures/mac/SignedDocumentWithMacTest.cs b/itext.tests/itext.sign.tests/itext/signatures/mac/SignedDocumentWithMacTest.cs index 7bd82f2984..94c695cf3a 100644 --- a/itext.tests/itext.sign.tests/itext/signatures/mac/SignedDocumentWithMacTest.cs +++ b/itext.tests/itext.sign.tests/itext/signatures/mac/SignedDocumentWithMacTest.cs @@ -21,6 +21,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ using System; +using System.Collections.Generic; using System.IO; using NUnit.Framework; using iText.Bouncycastleconnector; @@ -32,9 +33,9 @@ You should have received a copy of the GNU Affero General Public License using iText.Kernel.Exceptions; using iText.Kernel.Logs; using iText.Kernel.Pdf; -using iText.Kernel.Utils; using iText.Signatures; using iText.Signatures.Testutils; +using iText.Signatures.Testutils.Client; using iText.Test; using iText.Test.Attributes; @@ -61,13 +62,19 @@ public static void Before() { CreateOrClearDestinationFolder(DESTINATION_FOLDER); } - [NUnit.Framework.Test] + public static IEnumerable CreateParameters() { + return JavaUtil.ArraysAsList(new Object[] { "signCertRsa01.pem", "signDetached" }, new Object[] { "tsaCert.pem" + , "timestamping" }, new Object[] { "signCertRsa01.pem", "signExternalContainerReal" }, new Object[] { + "signCertRsa01.pem", "signExternalContainerBlank" }); + } + + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignMacProtectedDocTest() { - String fileName = "signMacProtectedDocTest.pdf"; + public virtual void SignMacProtectedDocTest(String certName, String signingOperation) { + String fileName = "signMacProtectedDocTest_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "macEncryptedDoc.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -75,21 +82,29 @@ public virtual void SignMacProtectedDocTest() { ))) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + if (signingOperation.Equals("signExternalContainerBlank")) { + NUnit.Framework.Assert.Catch(typeof(PdfException), () => PerformSigningOperation(signingOperation, pdfSigner + , signRsaPrivateKey, signRsaChain)); + } + else { + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); + } } } - ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + if (!signingOperation.Equals("signExternalContainerBlank")) { + ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignNotMacProtectedDocTest() { - String fileName = "signNotMacProtectedDocTest.pdf"; + public virtual void SignNotMacProtectedDocTest(String certName, String signingOperation) { + String fileName = "signNotMacProtectedDocTest_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "noMacProtectionDocument.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -97,21 +112,29 @@ public virtual void SignNotMacProtectedDocTest() { ))) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + if (signingOperation.Equals("signExternalContainerBlank")) { + NUnit.Framework.Assert.Catch(typeof(PdfException), () => PerformSigningOperation(signingOperation, pdfSigner + , signRsaPrivateKey, signRsaChain)); + } + else { + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); + } } } - ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + if (!signingOperation.Equals("signExternalContainerBlank")) { + ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignNotMacProtectedDoc17Test() { - String fileName = "signNotMacProtectedDoc17Test.pdf"; + public virtual void SignNotMacProtectedDoc17Test(String certName, String signingOperation) { + String fileName = "signNotMacProtectedDoc17Test_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "noMacProtectionDocument_1_7.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -119,22 +142,25 @@ public virtual void SignNotMacProtectedDoc17Test() { ))) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); } } - ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + // TODO DEVSIX-8637 Add else statement for empty signature container + if (!signingOperation.Equals("signExternalContainerBlank")) { + ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignNotMacProtectedDocInAppendModeTest() { + public virtual void SignNotMacProtectedDocInAppendModeTest(String certName, String signingOperation) { // MAC should not be added in append mode - String fileName = "signNotMacProtectedDocInAppendModeTest.pdf"; + String fileName = "signNotMacProtectedDocInAppendModeTest_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "noMacProtectionDocument.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -142,21 +168,24 @@ public virtual void SignNotMacProtectedDocInAppendModeTest() { ))) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties().UseAppendMode()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); } } - ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + // TODO DEVSIX-8637 Add else statement for empty signature container + if (!signingOperation.Equals("signExternalContainerBlank")) { + ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignMacProtectedDocInAppendModeTest() { - String fileName = "signMacProtectedDocInAppendModeTest.pdf"; + public virtual void SignMacProtectedDocInAppendModeTest(String certName, String signingOperation) { + String fileName = "signMacProtectedDocInAppendModeTest_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "macEncryptedDoc.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -164,21 +193,29 @@ public virtual void SignMacProtectedDocInAppendModeTest() { ))) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties().UseAppendMode()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + if (signingOperation.Equals("signExternalContainerBlank")) { + NUnit.Framework.Assert.Catch(typeof(PdfException), () => PerformSigningOperation(signingOperation, pdfSigner + , signRsaPrivateKey, signRsaChain)); + } + else { + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); + } } } - ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + if (!signingOperation.Equals("signExternalContainerBlank")) { + ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignMacProtectedDocWithSHA3_384Test() { - String fileName = "signMacProtectedDocWithSHA3_384Test.pdf"; + public virtual void SignMacProtectedDocWithSHA3_384Test(String certName, String signingOperation) { + String fileName = "signMacProtectedDocWithSHA3_384Test_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "macEncryptedDocSHA3_384.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -186,27 +223,35 @@ public virtual void SignMacProtectedDocWithSHA3_384Test() { ))) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + if (signingOperation.Equals("signExternalContainerBlank")) { + NUnit.Framework.Assert.Catch(typeof(PdfException), () => PerformSigningOperation(signingOperation, pdfSigner + , signRsaPrivateKey, signRsaChain)); + } + else { + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); + } } } - ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + if (!signingOperation.Equals("signExternalContainerBlank")) { + ReaderProperties properties = new ReaderProperties().SetPassword(ENCRYPTION_PASSWORD); + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] + [NUnit.Framework.TestCaseSource("CreateParameters")] [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void SignMacPublicEncryptionDocTest() { + public virtual void SignMacPublicEncryptionDocTest(String certName, String signingOperation) { try { BouncyCastleFactoryCreator.GetFactory().IsEncryptionFeatureSupported(0, true); } catch (Exception) { NUnit.Framework.Assume.That(false); } - String fileName = "signMacPublicEncryptionDocTest.pdf"; + String fileName = "signMacPublicEncryptionDocTest_" + signingOperation + ".pdf"; String srcFileName = SOURCE_FOLDER + "macEncryptedWithPublicHandlerDoc.pdf"; String outputFileName = DESTINATION_FOLDER + fileName; - String signCertFileName = CERTS_SRC + "signCertRsa01.pem"; + String signCertFileName = CERTS_SRC + certName; String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; IX509Certificate[] signRsaChain = PemFileHelper.ReadFirstChain(signCertFileName); IPrivateKey signRsaPrivateKey = PemFileHelper.ReadFirstKey(signCertFileName, PRIVATE_KEY_PASSWORD); @@ -217,44 +262,44 @@ public virtual void SignMacPublicEncryptionDocTest() { using (PdfReader reader = new PdfReader(srcFileName, properties)) { using (Stream outputStream = FileUtil.GetFileOutputStream(outputFileName)) { PdfSigner pdfSigner = new PdfSigner(reader, outputStream, new StampingProperties()); - PerformSignDetached(pdfSigner, signRsaPrivateKey, signRsaChain); + if (signingOperation.Equals("signExternalContainerBlank")) { + NUnit.Framework.Assert.Catch(typeof(PdfException), () => PerformSigningOperation(signingOperation, pdfSigner + , signRsaPrivateKey, signRsaChain)); + } + else { + PerformSigningOperation(signingOperation, pdfSigner, signRsaPrivateKey, signRsaChain); + } } } - NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties - , properties)); + if (!signingOperation.Equals("signExternalContainerBlank")) { + NUnit.Framework.Assert.IsNull(SignaturesCompareTool.CompareSignatures(outputFileName, cmpFileName, properties + , properties)); + } } - [NUnit.Framework.Test] - [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void ReadSignedMacProtectedInvalidDocTest() { - String srcFileName = SOURCE_FOLDER + "signedMacProtectedInvalidDoc.pdf"; - String exceptionMessage = NUnit.Framework.Assert.Catch(typeof(PdfException), () => { - using (PdfDocument ignored = new PdfDocument(new PdfReader(srcFileName, new ReaderProperties().SetPassword - (ENCRYPTION_PASSWORD)))) { + private static void PerformSigningOperation(String signingOperation, PdfSigner pdfSigner, IPrivateKey privateKey + , IX509Certificate[] chain) { + switch (signingOperation) { + case "signDetached": { + PerformSignDetached(pdfSigner, privateKey, chain); + break; } - } - ).Message; - // Do nothing. - NUnit.Framework.Assert.AreEqual(KernelExceptionMessageConstant.MAC_VALIDATION_FAILED, exceptionMessage); - } - [NUnit.Framework.Test] - [LogMessage(KernelLogMessageConstant.MD5_IS_NOT_FIPS_COMPLIANT, Ignore = true)] - public virtual void UpdateSignedMacProtectedDocumentTest() { - String fileName = "updateSignedMacProtectedDocumentTest.pdf"; - String srcFileName = SOURCE_FOLDER + "thirdPartyMacProtectedAndSignedDocument.pdf"; - String outputFileName = DESTINATION_FOLDER + fileName; - String cmpFileName = SOURCE_FOLDER + "cmp_" + fileName; - using (PdfDocument ignored = new PdfDocument(new PdfReader(srcFileName, new ReaderProperties().SetPassword - (ENCRYPTION_PASSWORD)), new PdfWriter(FileUtil.GetFileOutputStream(outputFileName)), new StampingProperties - ().UseAppendMode())) { + case "timestamping": { + PerformTimestamping(pdfSigner, privateKey, chain); + break; + } + + case "signExternalContainerReal": { + PerformSignExternalContainerReal(pdfSigner, privateKey, chain); + break; + } + + case "signExternalContainerBlank": { + PerformSignExternalContainerBlank(pdfSigner); + break; + } } - // Do nothing. - // This call produces INFO log from AESCipher caused by exception while decrypting. The reason is that, - // while comparing encrypted signed documents, CompareTool needs to mark signature value as unencrypted. - // Instead, it tries to decrypt not encrypted value which results in exception. - NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outputFileName, cmpFileName, DESTINATION_FOLDER - , "diff", ENCRYPTION_PASSWORD, ENCRYPTION_PASSWORD)); } private static void PerformSignDetached(PdfSigner pdfSigner, IPrivateKey privateKey, IX509Certificate[] chain @@ -262,5 +307,20 @@ private static void PerformSignDetached(PdfSigner pdfSigner, IPrivateKey private pdfSigner.SignDetached(new PrivateKeySignature(privateKey, DigestAlgorithms.SHA256), chain, null, null, null , 0, PdfSigner.CryptoStandard.CADES); } + + private static void PerformSignExternalContainerReal(PdfSigner pdfSigner, IPrivateKey privateKey, IX509Certificate + [] chain) { + pdfSigner.SignExternalContainer(new PKCS7ExternalSignatureContainer(privateKey, chain, "SHA-512"), 5000); + } + + private static void PerformSignExternalContainerBlank(PdfSigner pdfSigner) { + pdfSigner.SignExternalContainer(new ExternalBlankSignatureContainer(PdfName.Adobe_PPKLite, PdfName.Adbe_pkcs7_detached + ), 5000); + } + + private static void PerformTimestamping(PdfSigner pdfSigner, IPrivateKey privateKey, IX509Certificate[] chain + ) { + pdfSigner.Timestamp(new TestTsaClient(JavaUtil.ArraysAsList(chain), privateKey), "timestamp1"); + } } } diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_updateSignedMacProtectedDocumentTest.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/cmp_updateSignedMacProtectedDocumentTest.pdf similarity index 83% rename from itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_updateSignedMacProtectedDocumentTest.pdf rename to itext.tests/itext.sign.tests/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/cmp_updateSignedMacProtectedDocumentTest.pdf index 9fbec6183d25c0cf731b53f8cf50689fd989c8c1..7df7decda8daf5efd9fe4a211f6a1c3a54691b9c 100644 GIT binary patch delta 2658 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 K$Ksf!#Qy5~ delta 2681 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 a6$BtQmk=iT@)qvWI7>!X*K)U&%>MxGuCojP diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/signedMacProtectedInvalidDoc.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/signedMacProtectedInvalidDoc.pdf similarity index 100% rename from itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/signedMacProtectedInvalidDoc.pdf rename to itext.tests/itext.sign.tests/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/signedMacProtectedInvalidDoc.pdf diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/thirdPartyMacProtectedAndSignedDocument.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/thirdPartyMacProtectedAndSignedDocument.pdf similarity index 100% rename from itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/thirdPartyMacProtectedAndSignedDocument.pdf rename to itext.tests/itext.sign.tests/resources/itext/signatures/mac/ReadSignedMacProtectedDocumentTest/thirdPartyMacProtectedAndSignedDocument.pdf diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/certs/tsaCert.pem b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/certs/tsaCert.pem new file mode 100644 index 0000000000..173990cb2f --- /dev/null +++ b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/certs/tsaCert.pem @@ -0,0 +1,56 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQC6J4wXR/ZAEc5RnK +8VKKvAICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEAQIEEIH5lyIZUGdzvVqX +cvANBXUEggTQ4IqSPz58RZzYvimG3BoBJ9353e5H7UQlNi2OurPPLykLLHEY/gGd +c2n2hUZTXxPvmYXQkVoGhsUg59SQRjlhkeGyrrlkkjpmzYAjOMNF9YAwdoXVdA2H +lzOd4yYG+fUCfYma5pMXaqLBOUmB5l+nfBCvYM3hy6U5mnP2ZybR1GpYxkWJAGbG +b+0dz96EUjRPTuPhH8VBW1W0F0asBCTkEDOKAIfrxt6cD3kcnko1WK7wteU4Ln5c +wxnrtJTmSaFeHzSQXUTMfpwGe8ImMtUV0z/DS5x0pHmK/V+3MZN+RfdUXwF7LXwL +8J3CrGoIzGWzmHgGqRXuK9Z+Tdumm1MvRJnmBZp6CWM7j7f8iWKXzFJItDLLuaaJ +H4ZEUt5K7fb8JSPCiVovNmnnBaG7ua3n/5aGvym22TOBgelS0e+bee4YELGolU2g +yRNb24+casHZ/kyenHR4dyrxDTZHmPU9bPhzb05l3Vk+PiHJLxAqFtUiP4buSeoh +TPVYQXAE8EPInwyZxzYvWeSN1JSU3hdOpj+hVnZHoUxGYzZbatVzuJ+MQ3BW3z4g +PfoR3QfTjNNvB+zRp/rveBhbEf7tbvQrFSeQb0Dlta08+LDec6kKA10fzFMtlJcp +IrrH0Zafke95r1bNbqGZrMWSUdBKB2IS2PY/Q8ITGnB/RxIfE7odDVgFnrxrrhf8 +GRErkP1w9xz/+cBw6OeobGPK9ED/jAnOUpAXo22Jl/BsBt7SLTr4h+O3pV3ft79z +J9cOcWAHQy5BknIdahA88bMBnrA/NfHgWhKv1AaD4ICwydMWfxpqelzOiNF+LDq9 +D2fTR9SLiOkHpWgk7NJZAqkZRKrs1MHf9yuq0NDEIojqcQN+rK8O8DiT64XZuSqH +P84jatubXoXbulfRxC+6RkMpuJRjr/N9DNWNj6A61uquPLs9XgVlZNp4ND3tTDaa +tiM45qjxJWjcnI4zm4BtVYTrrU0z7kL2F/rBJEENCYAK5pWgAYA2t44on+k6sLYN +8Fp+J8t22H4v/ssfXUUk3oi7cP66chSNDyPNgWw1GnYqDVogI0bX6+Cx8t7/G9t7 +bWJZxhrgXC1yQeC4FrBfYE8j2m7qRMeINeU/jqdiwbCHlhoMmbMLDKFK9LW4A5mK +VMiLbF1zPnxY4ZxR5MxMJSnODf0RQWgsPX3Vno1pQfJ+1Jjy2m1gKUxqbIevux8Q +QMcRqrx5Mm1d0aztEoygShnkCjhf0yvkFZGyj1J0abgbstPaaOCR/BPMyyhh9znn +5FOViSg204d8j3oJdp/xuxJFJE8+vyB5baA0vudQIQ7+23tA9Fw3dE9Pszm4w8so +jhz1wv/8BoxLQ/4PZcKbQ+MSCzGnse6vlHaV3hXO1SEdN69LCIf65AYYvrdFmv48 +gU5bbYcJRYVdni3tZB7Lht1tmAjgZi+0dn6ApyLAeaaGiov1i622bhSe2REpUCRz +NbdSUl+3lAzNiLxPpR8cTscwf+ow4OEfChNAOzyaUvRdNTolcEhVwox0CUj0ELFE +XS9mK+XZEWJ+fiOGiKoUKDY2sdKRl4stucyah61RQUf/cPL4EmSFhB7i8lD6nyb5 +3cFrNW7nvH+Eu5QzywqGOxTqKJpWXfLTRmNgY+Y6UugnWIfKLcdNMy4= +-----END ENCRYPTED PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIEUjCCAzqgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwQDELMAkGA1UEBhMCQkUx +DjAMBgNVBAoMBWlUZXh0MSEwHwYDVQQDDBhpVGV4dFRlc3RUU0FJbnRlcm1lZGlh +dGUwIBcNMjAwMTAxMDAwMDAwWhgPMjQwMDAxMDEwMDAwMDBaMDgxCzAJBgNVBAYT +AkJFMQ4wDAYDVQQKDAVpVGV4dDEZMBcGA1UEAwwQaVRleHRUZXN0VFNBTGVhZjCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/HVl5COupS9fnTfblPgwSv +nsc7uqqqxKmQ4cqxhl2Xf9rOzFePOZVFlR+A7SW2Ax10x0in10WURwLErpZ47FGq +ytLdIfDIDUb4oBdx2BeToanRQHWEOOLZlb6Z9bEeWLVSWaDRNVSQm+xtBOKB6I6P +5ux7Q4X1115wwFGC0UYumTI5eIjMchWDI6rWcDdi5noA8/qEeQD4894yis5LEy2/ +s0M1OmBnilXxx8urQ0fYXiwf39Uh2yZsgu01urSmnOfVXS3d9+Y9jiJ4CB9w63sa +nbLv7NEB39wjJPrnlyG0bcdCn0mKamJSqdU4RG5nmB1BAH0Wn63IsWQJkjPGrssC +AwEAAaOCAVowggFWMB0GA1UdDgQWBBQVf4Hj+sEkGTEpxe8XFNtQFyGrJDAfBgNV +HSMEGDAWgBS2Vx2D2SIYPmYxGkT9a/4t6i0IaTAOBgNVHQ8BAf8EBAMCBeAwFgYD +VR0lAQH/BAwwCgYIKwYBBQUHAwgwgZ8GCCsGAQUFBwEBBIGSMIGPMD8GCCsGAQUF +BzABhjNodHRwOi8vdGVzdC5leGFtcGxlLmNvbS9leGFtcGxlLWNhL29jc3AvdHNh +LWNhLW9jc3AwTAYIKwYBBQUHMAKGQGh0dHA6Ly90ZXN0LmV4YW1wbGUuY29tL2V4 +YW1wbGUtY2EvY2VydHMvdHNhX2ludGVybWVkaWF0ZS9jYS5jcnQwSgYDVR0fBEMw +QTA/oD2gO4Y5aHR0cDovL3Rlc3QuZXhhbXBsZS5jb20vZXhhbXBsZS1jYS9jcmxz +L2NhLWNybC9sYXRlc3QuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQAPc81dvV0zZi9P +A4Tpr4nj28DAAPDkjBPiqmeP8FWomG3bF/pTi+vvpO79tR+sKh+38Pn6YwuGsK4d +UVyZ98gTQoTe/x2zviEer0+cdWNVgdTq1MTpiHQNTBN01kggjGdQzZXJNKg9L+Kb +Sw+t9QxzKjRFCUrr4txPxv4O6Yvc3cesM2Dxx0EPsgTqxIbSEliHtXU+K0WBXokw +mzCUXN+ry3iomQkqTIyohySA2dumbaxlxdcQ96pnU8swFwJ5jYEHITbepqDFq6NM +M8ewAFnrtnqqA6GU0thyZSUh4YXphBEkzAKhm2NIye2BXGirzB7DGfhev8kLD+6a +9qBtibHs +-----END CERTIFICATE----- diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_signDetached.pdf similarity index 79% rename from itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest.pdf rename to itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_signDetached.pdf index 4a4402c03843c58832fcf5fc8269ff922a7b10c5..aa00ed849ef2adf968675b0da22426cc5b4cfcf7 100644 GIT binary patch delta 3516 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 Iy_abH8-fFs%>V!Z delta 3536 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 O2qRQXOzd3jRsIDjGp)J+ diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_signExternalContainerReal.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocInAppendModeTest_signExternalContainerReal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b3ac6a3deca10036d1af55c8446d02015ccd4a39 GIT binary patch literal 21889 zcmeHv2UrwY*QS`otYg-(%>kh+2St=1CX%2S0JS2L5gNsu!a@Wx#zs+J*VoPdR{KBwv-)VUGLWIQ|GLC z6Jd&wgRSlD&0Z!3KfKM}nqu)I3BqK&sZZ|!vrmj{=@+S)J8H2O2M22{Ts013zaH)y z6l&3;%&wu5MRU=V2vsw?Y2ksEUM8AyaEP`xcM64fypRCB51cnMQdr47fW1{k!cx%xSF;R*ZZEx@3VD1ZtZq(JTK z5NRCyxdYA^gC!^;+yz5yILFhUAP8eL{shTmK>h^98)LG0G#pk z;nPWq)_k=nW3w3wVgAy{P3xnDV%7+P`MS|t>l0)&{qeX@xAye6+zB0XrbR}5?rhUV zS&ht{yxo4>{{1dUg$i+ju*eBZuFl^CQPDA{cJ^t1&)*W6*?BN_u;ZEyCFV@F?Y+uB z>giSgDE~%ne)qTV!-qaHb}A4l*T}&k0MqHNStM1mNG2|Cu8ld2{ygt_lj@9pp%H;! z#bfBipYs|K10^BN?Ss^4zdR!dFn`g6=&y$ur~Z7%XVs=Sp88@MUEJM19rkBmeyH|? zFFzaVHse;rvHl~6*(7XfHnnz@w~qq5&*W#8Ka|#P>9Tz}O|R^zn;GOWd2gEpDoFS^ zIoytFa-!4G`Q zS#HNZj0>Mqd4O6yIy{tS`#pM@ z%0?DmcVfl5m^ycboVwGzR=JJ8&}3im$urLGhdGa^S_S7Qs}8=|^=jjq=p#{u8zg_| zu*Ys^!OPVLmGfKDFS(?@)q--<%O~{T?5ptV^{iF&0Pk0qk92#Hc=Eu;na^GP6HD)j zyBOLvd2#V#qbn678x2U3rnRop$7Z=p-_{*$hCJQ!dxH+mo;ldIfAf4o#Wv^94BNQ+ z-R(Mzt)I2+&Z|?mUx{Dd?tU>&XgfTCE_~50*U5XxibYFXtR~Bej}vaq-Wqq#d0>%t zD@(ViQ<~(?U2z-{D3;ztJZW%=?U3HFMul5J>mL>0b4{#lwr%TFdGI82ZRhaCMNh}K zRD+YZzhAucj#HC^YY*-?8GqiUaj7N!hD^+V@6`N=kPn-y-c6k8I5Kr+nH!0nUTr?S z?{-7);D+M?Fd`8X{;c=W|eIW}852VXjw?`q`(Q+Ayh8rikkr1(RrX<4Da?K0OW z)wQI%+wD=edM&5UtV#K`WxJczXZOE5wEUfMu1n*+tnUrnf6|Ayb(vc{!gu^bn?$$b zLn2$$Z0;VLTgPUyS8Bhbm>QQSkJy}Yzs2Sk9ZLPtC$7^pXCFVz|8a_H!qf=|noY-=jluI0>|!R-$8Z|^mCO*nDwNTnk! zr$3)C#=fHHzvmg!scDgbcrlR_OtEm`O5OjziIpOkAlyh8PjKH=NnOzij==n zY_4Fp<%WxL<)Vjet>21Yd*~C<)9c*D$zvDrk+SAbZup&9@IKjd=*h$MsF!CB9cgFX zr$oy)&7)T?Z=K=aZeZ%m7E>etI4)#s4hu=8#f?5A%RX#O`v-LTW80QROT4PM*ZSSP zbn3Oe18>F-4Ikistkb&2?qx3z4Vd`5nfK@Z@hillzXA> zv+5MNlRLb8m5aS&)7$w@wM{(NadOQzQsjtSQ zet&)Hfq`e5OsH`0T)2g@D{*JWvW4@>`;AL3jCH8qJ+;=+6-}sM=lvgCb7rQJ4g8(j zxarvqkL9it3&mbsvEsDrz?G9%R4A5NpB{7Z#noAL?X0)H@mXP7SncYf%Z~M{pGaul zu8eo%Sik!R3ct#}Gi6)(0~K8#wG0?zRiOOtQi&N&{F>Cfd7@U)LdBvhW?j3xY{SY9 z3kshJ*$@=B{140Kvz@pRt))%PB9?Wm?ckX;yzY&zEpT#)dxjaGz@XsbYt+-B9lAs93}eazn>AdulN*88`r4C+s1Sl zX2rdf;>y;_=N2$ygLJP^kG^XP=U04Nj(%P+zSpmP&kYNCRKR_4>2e#}j=7wzI+mLe z$h_mo!ru2YtNc1y|g6MAJnwsz3$J^-f241&9_7TIO`rKuiT~D*qpVW-?HKE zzOz>Dc_M6_Gs|z%k)_w?sfXVQ_2$j9jA;{5X)h_Ny6N^PTg!v`3-s>6{bgejDjq^F#Mq0oyaPG6qDy z@=tHkQkax-RWIlF;$xGe)eENW4DGh9%j*TfgLV|OTICZvIr90=gj+KjrNqxY?sO-0 z;cce_59?i6^n0AeCD1*iZnN5r?*_<+E6!ilal&i0?1bh?wVWRkak~x_<7fXmZfB14 zaV-|(j#1}Z&BXi19$2QY9`-YXhf8u=Mbvq(nr(Q`&-JP0~8x?iYKUz(kIX`M} z`tkv9n-xeT9IiOL{b-uH$MWiA@w404b-68!_Z&33YwsIES-oxGuJluXl+1oo`cYDv z`|Wuryy*4dwB*m?1k@mb$nI>J6((0`37c%~8)kmGO z_Fw35r1GtOwX?EkcX9Q4;+ucyRqOnQFk$7;J&|23u8_;*XK>z?qR z;&f%Z)hh2Jlc;ISmfdICWG$}Oq21tKr9<-7tmIXikC5s*vAPHtXKW_N9IiYZN|aiggzej5}hGu77A{5V#zxtAgoWJ={;)R$X7iv zxW~cQ=bKp9iMKe%4J=%v@^s@Kui^>O=)UmLKc(tlfYTMJn!}=^mA~+4G*)47bhp6Un;y zRCc@iP@UHQ#JXim(hwdNrTT3KqLAZPdTZvq42mrNy=GGKZh+ z6jbD3WCfd=^~jBGrwYFH7JlDr`?AB8vVH4R4>px|J2ALPWc~3&%hc$lPQ2T!<*XLg z31V=$8}UnG53+CWI5)A{al6Ot=he&g+|X!ciP%{uhhH>b`RK9k&M)t754P)6vdC?r zUTwK#bF1{d)2CMqh!L`zue+(N;aw|GMSO2b$&PLJ7M)b`iCCm~on<4ceQc|Nsg>AW zWN77k;c)>6N=CLMYu~kt9$A+uG`2{olZ#JSF9`~~)U!lJ(J-I(jS`>lKQ_-hJz;G3 zeP@$>=?lC6cs6nDi`dLPZtt3VylZmxN!8AOaJKW?cR3nBU!NB3)4tADw(8+a6K?If zJ)r37<6@7!3(L>0a4moL`7!#(sPDrl;VX4@b_MzOv8Z{Ujxm;At@s4{v&z zh%Agexih7S)2!Wn{+OBF{Pw5Dh!ruG26c=JP8^A-3B$nf zC@#g{(lg;KHuK5N+|eJSAwf?uTE8(Z?bafvZrDS==dsT?c~m2_uZjH{sl-NUx;0@E ztr4PrewjFyrCF11`g0p2B2+eBrtmM@cplO9-?q^NBJ96yBYDI^f7?dzP_n;m6R7XE z5#)F0qgno&ZI&o0C{&9wauSAmIwO@}gsc55nzs}lsF@JrGc-EDLewT&U`+w0|I*9s z?&xf?rwM@~NQNOeLZ&2vgIaJpPpAY*h{%MH1SRFQpy^L7DIN2H9W=>s5{={Xen|u& z;0zok2&66%3|f#hLCDx9a)fbKgskYev4>I#h7u@Jqhyv~RZh?dNt8v2(Nu-jl1X&jYCozi*CE>I>%W0g( zXdF@+j?QioN?yhZaAUx3Xhb+NQ|4CTN>sl{i^%|WZ*yB0lb=0L>SCUrDzeV8Iu8{R zNro2`j#nrKaw2I><46WZipvlT$x4_h1=@v;DyeFkEOSsuD4{~qB#*%pEFfIQs2N@- zB~lPYO(H2$*C|#LD1}lX7)9lASxsad{`-3nU~U_(N0^L!9g>(45yn$5vAFRc7z>a>*L|*<w29eT%J8+k_jEQgDL+GnJAbY3uOC@TYs}u9+qVwArv?7jI;(D#BWN) zcEex|ti&G!C7_rGrX~vHujPnY{S6(PkU+X#kv1HI`0$h zSc=o(3}8nX9DD*z(m+OF5LgAiv+xPD@r#9-K&pVqAGbg&V^sfLNIWMCz-38L2=WtBX$l4Rg2`u84Ku; zWnLBuS(XI_S|{TWO%xQyII*Cx0&Ac%r_w4|C?``or_d5Da8Lz}qF72%6-l9SU0P9P z9Atncr)s(;fWisTQ(j<6ICMo)2@C-Wpr`^Ml~RGQEU;FPQkrj-Q710NcmPA!lA!Y#-gkW?= z*A#&vR0=+qAw>p0Qsto$x~$TSBUpBCVl!dQWPpVKduqbRnL*DSv zut_KYw(@AlbD&NPi%akrIwT1HBWtWEo&=!uP!PNsMHirJ5^YR1=0uW7fl)AP0@xLNvjlwtP6BXqcjjai55kWA_m@wVPQ@r)ExmN;zxiY$t#l1D?ktq z6G#ZUtkK3LR1tOwipfLSKr%&!Ry9VEF+NHGy#$Xz;G(j!Xcz^@Ft{M}nnRy~8!8}- z*LXpeC2$$AW0oQfC@_p3JQ}2qqbMDtr3nx)&@T*31nyBP4{{@`D$hb2X+lN}tD?Qm zQkL|Nrkuq7Q5Q8;jAf#V?sg(UG!LcbLOTY(y2T^tPti0)7@ zc9^LE_|iB@6gjliHHO6*Se@1s4dbI|T?CAQkx52WjiHMQ2joN;t??2%0Gg|-AZ`i( z8V0FiWD1xu420wmz(|^aphFNCfdQV<66B-<_6gnqBiM>Y7-0ht5b6W8B~{+APPEiM zaRv%T_nl||q^18#oBoq*?+2cphA+p|)1b>g@a*5T_|F=z;g|m_{#?;@9tx^aP*8=Y z4IqLM5F8IDN^$Txged5FZjJo0=Fs2PX(Gjo~cv%riCV>GVg&6`{z&&vg ztQ)y00c;WKuZs*Wtczf5BnQs~mqNp9ApS;Y4RC-Jz-b^Vk|atq<{$P8Z>j)-Rf-{W z#sDdhJY9v8V@Z*t!8b_?o}1AGnn%>9;mWW#cvl4VU{~NQjHnu>#&JlM!N`&K(m4c! z8m9=7sB0>CGHjR;ktIWpj8p^&f#pbmlML%q1Pm9K5@|`3!3^+xgGzHc0xzf^38d!H z6cT1=RtEflVzJ;3pqUab#7F>Vcn=zRIM5IQI1Ty%Ck>`5gNqqNNrk!NUbd=HB135s z*oLZel+M7RfPH|2gOM0i1*8f24os9mNMIOW{5gU~!=D>m{fp*r7tJ1SKP_%)+~ZvO|qQ3j~Hm4hjIFiZCO<5d0!dXc9;=YzNsON>msD z2k3}|z+!liPB3>kP1r5Oz-y#{5Cr6hQfXe26c!^f(s-hAZjMGg0zQm%H>JxQh6t{! z!iXeFlqm-E9)mzHG)0CPflPyz8W0Cpu7huj8fXs(Ld+rQgPa?W92y7>AxU@x8A0bo z2|%hMFT^9v5fJ180$aL3WVkL0nWFA(d|AkO0F3xUc|*B8$LENhevnXcmM8 zI02l7?HZXl?eq(t*x`MhgV=2G(ad8xC1zxJZP4I$~;4S2+^d zPf=tTkp&hYd?jR@0)pY8X3#)rte{AY2tSU{kx?H9)Ob|*a0r$E(07oiJJ*X@#>I>p$DJy zf4~|#%f*0iJ*MId6h{z$d2NzPIS^zMh7{C~8 z1uhCn1p!$=h6m)S66D7y&|C-#!U2Ia(&&ikZ~}x&$e^?EUJ&sA#vKqC*k7dr)L>+o zY#x>TG*08r0J0j;MiH(A@`8Utgoa>LhA%<@&2XCG`Dg$?v1XWbvSc&Fda6g_3TtH|EQ$K8OHJ+%eV zQm^F))l^Jm-cpJGdqq|Lp^^rcocye$@qfIM#;S#LQ(la=zTG8bQ}w_$HHON+kfm>r z7?i(zhkKSCxtCTK=y4|3u2g!1#G}4;$p_-<7bq;&t@}E;M)gT8DsJps6_G9>rssmQFUDIpK$69OR#S%~Nd9|LG8&|H6+p;ZA z3tz1lT9>F-=Bzh2m}}>cxa=<^ZAtAmF=SnC1)nL&J?jS7Ib>b% zMTb`x@0Y2OIJ?mxyL-*ME^#?IU4C8RMD!%b*zJYuhb2qB7WDL3n|QU|k@&LZ=Vdnx z8B}-sq6Dj>cYnvg59Gs##%1R9MKwlG`h1FQ^>&Qe4wu`{j(7ocTK@SLscci05}c7&D@4^u#C8 zc3$;e7WvgaToR^T(#ZVUr!u$*4y#mgG+asZ9lbUcsa`J;lfM4ehC3JV(qJ(h>b4uuItq0 z&*Ek#*xxI)V?ngJeJ?A%!j;59_FV#I)R00$l4_g0Q|*hDy->y>u9;hV|U_}#nQcKc;z92?j6<9mMj@d&F(_XQDIF(;;0N-Z5-A-rq*yK|;HmTyrw zC9CZ_dgrM_-qGFtHcxW;#phi8=&JdPPq)jhL|mznGN+-(%QK@B&w21ZEgBU)^vb?w z`iGG{J)ilk_q<=N+`XON2V)*oFe#Ud&hc5>v|3<|8yV9V^q!~f+3+;*+T)7TYp7eI zf-avbRN>x~?lvLCPyZU!O|HG(qesq?6sv=8iKhPDe>upAIlZNEk2|EcF6h<1CbQ#u zlPxV*+JtxRa_J~B@xhG8q1>796$fjtFwL<4rFeo}ORJqJr$3}^zi3}(#HiJquGQYS zXie*?^ZOrI--2^EG-^Y|6HcvCr-dwkoU|#-(}(k{)B4u(K6QQziTAbLz4u_sJ3g0h z(5Y@`8^6GTmBTjeoV8AjF7(u`S@5dHBYq9|b-Q_AT*sDE%vEZM0ccE}Zh zT+M8-=1`mD;f;DOyzAe)Xy)BA+UnE`cXK9nu2!kTs5S#uRO&pSo3~A*P`2~Kh1F}- znsI$?p(T?lGnX7&Ep%UgVbkc2B}fO4swEdbsou*nc#bg8asMtY-^=~aP8C{}>vO9{ z@uiopWte)hQ%Alm=2EOet2##-nZmLU77w*tOmA!ZO!cbZ(aI(zICD#d-** zSr^TI~({hpoQulpX3DN|#d zPo*IVO-JN7X0I#ndTLD>s|puVI3e2VqnH>-lssN1ZrG#hQ;%kJZZUU9ohoy3{nCdq z2SRV`Rq1o9ts0KCac?*Fa2ub1wC)4$gl;bQ{;=2G_wlWt^qyIz&+US1`}eoKT&~OV z+@KidWarrQ73;=&bUhgoShelBBCFphr8k`3Fy_!+ze?V(GG^>vT5$Ttamyba@m#jr zrg+DXn`hq>ip@PbrHEzEn91U$dM_=bmDJ-*`KCeh?wlnop<~LGmD|SD?B1_Q-MZzM zWj+|6o!0(2?Ib+d7Brl+In-%e-T4)!y7rzKF|ml>t6AEvl*18cuSXS(zdz1u^Mgn= z`*!WZBbyx9u`{yUtHVp*XXl*Uv^Xqg`=R#PQ=cq7v|>d2DM@!OPdhtn^{dg#4z4(N zZQ;q^x^@51(>iBc!{8nR8b|cyFV6cTe6@4Yv4)&*h$u6X?_Fb@U>BVE#BOFr2dCjM$n->i}ddh3g`?3X6((Yd_J7CGc zjVr1yW+pVN{@Wv$p|hQ1_}wmdOFy^Ht+}ShmRU8^ZP&EARnPOba<${#fxEj0IA7jg zZ|mw}mU2^iPF=KUmL%SF^d7WODPvzE*C|!Wa8F^2oY-+|ko}v2TX!A2q!k{tak@%m zybL^C<8VP!ixst7N7g**bH0pLBcNVCtdN5hYp=ORi|&)OFqPe9h7lU3wm` zbHlF8kgC#wtbL*VDhK7FphEtk&$)3m;-2rHQ8wezsZnD*?N7HJe%HP)Avvd>x_W8- z^L_QZ^lh=h#??OCYWyIlLd9Z|!Y`FL)ue;Wrtrl}Nrx}1Eo{Y&z7;n&UOjEmuqu^W zKbKrG^WDhV)kd2nOnKMZbLuKyKG>dGXR7FKuEcwu+Uird zSgFk&j%AI$J)ykLF4z5?X=z6cqU0R1`ywMh3jE-wN{@kl_ zdsC-O&wO2Fy4A5_K~wFsO6_#HB=nnCqGt8xrDH_Dq_a6rA3I&2m*Mr?sr8&P`#n}h zx-Q5}vt9LlL=;YcmQ&2@#=oiu`Gx2k;o7G-w2P-4jKY&YESdK| zuN3*Y<^}aQ>OE&uvL8ocMd)3lgilzNuZonaEG)#j~6&#%#Qd zx*4L0`?MX8^)Z<0Key+7K}!m<_{%o5LvhN#Zu|7h_)mVR&w;g|%y-A)SzPFc@iMOc z&vi1sts3BH`4sARj4)INZwT32)4xpe|C^Nruoe}|TxAifS+O!sp(HG5#qu`eA!;3K z%CW)?>t+Qka>HU^tenHD6AG(rC_H6}hrEp^dKr|KK}88X^-k)VtmA1|EEvbSTp0^^ z@OU<-D|p%-3+k}kjhC?QRmQ4BEOTHLJi4q1io;(j33x?meN0AGfbVJwkVe6kf2*hf Mg-3?}tSaz703-b-PXGV_ literal 0 HcmV?d00001 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_signDetached.pdf similarity index 75% rename from itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest.pdf rename to itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocTest_signDetached.pdf index 0f8a45633861f1d886ed10a199db0768dd178928..e4563ea8d0f453ba6ca6ecb33d824ba602ed617b 100644 GIT binary patch delta 3546 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 F{{`E&)BXSe diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocWithSHA3_384Test_signExternalContainerReal.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacProtectedDocWithSHA3_384Test_signExternalContainerReal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d7270a7dd4dc83c93d08efc1c00230009a1ba570 GIT binary patch literal 17218 zcmeHPd3a4%*AGF77Ok{Ji%X@%bk95}F+^gFM3O3%!9J5DlH5pcB2h6@1R)iPRhdfxu#@HNMj7Rh4_BLrwGnmBpHf=o_8>^@`mX#&hCJG{J3%C6zFT1ZJ z-br+4hj`1;AdKO7@s}`$k*==@3%if6Lj4<4;&T?{_RHKK#_(K0kJN`9X8GWTylsC@ zcW>9zX1p`W)|_V)j?py2NQ}x6MG_Q6vSh|!SVm?z;<`(;!d3)VaGm8@#^M>Y!7~y= zpJ7-@WOzoveV!2+{9?4f?2&c#C>w=6@}}zQnKN)557FK^{1ZgQlr_fGpN;a|%vkj9 z8buT^7xcxb7>yT2%s^t%kHCp4?wGiv|9(ftXHhUDRWfB>(q6bv=zU2Q1xb_@nf7cH zt)sAK4fh3^-sS0CR^k~J;}wm|<1YGs_O$CA?Li#&bd zn@Cs%Qsr>%Z(E=hUDf~9dND3rEN85j<^F2DkS#0lkP=5%jnz;cVma<__mZW1$?&ul zV^KA5eIg9!dS|h@7O^DWgy|4$sb*?|swli5vyvv@jmVOwa27)poncK3&d8?Du?C0D z7Yq|SA<3-Bn2g99GN+1`E^`9m2+NARLO*J7i+0sSAX{I7bFas4+)nI+HBoWh4H4!~nJg@5t zE3jA{uW>BH^QK`4tVtx;qAX$J8cQTmuweCAG31~TOq_+~6oq8h3JF)Ic!8Nm`PQ&$AW;0WxVRRvSl4H+6?X$CJ4#bPB) z3`zk#U|2eTjrtB&Q;MygHK1hhJ-C8~vQ=o4Pyk$&(N31&pac;^$XGfgXc&rSimHYo zHONn8byb$2vb?C9CSgT|2qLWezsI}4Qd~Y$Wew_;sAq=H!aF3)LRDEow-o3a;ptXm zPl(1Uf{tBNh^!HoBhW`xbVP_wjfo(<(EYhZ-pNJuYGZm{Zea%r9%H%-~v1) zF%;g?c(_~<4i48i*th_PsPn3>SoDz<|(e33GS>9E=@is=$4j5>ZtNEiF?J(SvC5rfy<= z9B-*`V+!y^f?vVXRb7JTRAIm}!2|&OmSO6w4hIc`G_W$ARe2Z)D}e+MQvtLqil7Ma zr#yk2EVz9}rp^eqVlp}w4-W|SfwyH1nOY}Wn%E`0b1=FWkiAe#|4Ezvn{4lIkevsX zW9xbLZ;|~EE&jXKOL6%>!E@cRWGJY~K|yt%r;Z3lz(_Jcl#_rtjH*~Jm}B8M6pMi= zsJx(4rw`b$poV}Kz$Ve4?l3V`(Rf3EJ#reX-y)`N0k$~coeXBFa1wMFyv=0cFjzF# zG!<=GI19??7+4EXR<(dp0thM05WWT66A!_*2jmt^g_li%F)=di z4d`lMR9LCV3#vg)O_Frogppf{Vo9ncnv$*%)iMq6WZ1Bv>bzxffHDO_5G5AQNrUz2 z3YLqZRGyd`n1QHb(vqcudGj0#Pc5S78i6V? z1R)qT84Hmm(9WXDW5B)`LeY$HAaX>opn;S%SU_k>Y>|)XAor5EhfNZc&L<1(Y z8K8zBj6xRZqsf8cS}d3jg8)ERIR-RDg&pd=!EhR5DI(AnlpSgeTA&D`23m;8t1u(D zA>bmuI~j|4(22_{&w zAR91nU1A8q4?H92yh`9m4at;bggFX=9|jEEl4bZ=l~DsP#7IpTY75si8k_@(Ew zBPs$enumDt4&okw2=!$zK7+gg7_fkNM-v%H7_lX9nX0S^Aa~T`!fG^Cm!avPa*U{H z2>eu8fb4Y{Q7k+<1qF&)z%NYz_d`Ui~==h1S~=VHltrnQ2|n- z1bPVO4y0yv4Z*Ys#WDa0n5hYA>Y%uY#8psJKq2s!=8!;EMN^kmL?%!)&}D&xl}c!D zaDW#?=b~sK5`Yi@jxYmB(>MeZ3gy6-2*YM1B4Ruk5HS#t0$~Ao2=f8a)EpGvkO=6p zY!O&0_=l_`d?)AyXsRIvgGEtNPH1>Rqf=m`U;(!c30{QaC!!^QH|z}-s=#kxSR{NX zhd`7AC>0Q@V{15?LsA8ri;xjl2_hpIh_eyk69)c)AmmUqor43jFeeLvDFP&c=LkZ3 zm@#Hd6~dsSgYp}ejv$q_5Sqc2Ac}_RBc+1Nh)>|Z5R8MkAl%_FMMy|NDh*VeQ$&z? zxFA-+bpkl&5DS3Jz*UIwCqPvTfNSW8*;PdF;HU(VlZb7#WF#j{3*i_d03@X_dQtw5 zMFv7*Bn0@NSU_gv>RkQ+X#$r&U{!iwdoDgyp+;!w%KITEENqEhUHS!UkO&WRaD79h zKrQW$BfydhZR|Pw#3B(MB5i_@9b5=Xj&L7=J8}(BCuo7ePu5Y@=+H$ZZbd;wP6Av`0~T5c6A|lzjY$+_MFvC{$tDR86L@VF zaWVWakWzyO0mcy%*Z@dSsgpvqp{SS-xFawD!6p1NAjWbx-sDMUL{(+!@hm$psvSk68Dh-d(3&LyaYT%o(BT!`|tl-8?!g0WIn2?Itgh#H- zgm93bQXo!%sK!wk6_9+BB>FIN2yn(GG9Cb7BqiWyOI{@sD3L&k1WF`OB7qVKlt`dN z0woeCkwA$AN+eJsff5OnNT5UlB@!r+K#2rOB=G-C0zP*C=vb$jXm4#eG_z??P^Zq( zPSf7mp%Z7cBmUp0$qx93XEvm?irg~k$7#RDG~2!=@zIdDPx2eJb39r&IOE*p?kMZ# zqEO~7dE0{$9SMaXHnGsMk{PQ!PPP@D9!KyU@R9;0*izG*vS#)-w zb$qe4&ZaaWAxYZD0`TZ5FST$FoKA@WoQ7Mz_UE|3Qp(Qnw$?4vUw!&_f1W zcWz|!<7eU{8-_oFuHc>uVTp4t^;Z@J$V)eR+XEcN|I*#RsPM%z{-e(5i4K29Vw_EN zNx(1FX~rjE1rUL~Lr7p`PrSDwNoF@QkzTgr?1ugKMxD(RGZveOKY8TA;n>UoSfD|i#KsnC1Kq-; zqHTBWsV{EEI{sjoR3)Bmt0NgY!rD7U8%aG~))ii8$*x|CixbP*N^ z_3xczG;4=OLQ*sHVXevdfiNajw_p!PM zbS@m~nHc|etih>^jsnE?JIs!+YC^+9Xc%XdkNN&gBwwK!vu9s4_t9!0gX5eD4 zmTMpLH>M=ih~Jmvck#l5*M=-A2%H?1urV&Z*Q_%y-EP6%>z>v4=uPHlj{_f%D7dz< zYQ=fm8!eP7+3yYiQtI61>?^w?He?=sbIh0};)gHQ>ftb#-}M_bu4l%l<=6RdYnKu# zHuua+9y=hg_4$lS6Yh+NZxNIk+H=UkQ8}Y$omjD8$gsCgsXh%lZ2qjrJ6|7pOaJM# z&)4p?Z+_S+<>|W{LZUAvmJagFb$^fVvh=+bd}a*)kmR1U&ez>@{F3yv=iUBZKmK~} zvHR5c!OQd2`Q~7r$L~uHEZ;r-$u#_4uKFt)P6PY!zvT*7VBk zQtQtjKIn5hBKzRPJL5gCue(vb+u7uUKW`d7=%rdHmJh z4@R@+^hq67K2jF8JvN&(8d<0N9%J~i@JU*Fxg4)oJy)%47F&A#yq~Snmv?nA-tj)Z zq{_D4ok#b1eX!pO+YYPkjq&5VIQB2_YBj_eWVWpO&?Bqt)e~*p`hJ$(;7)jzk<(Uo z@cryz-tx6us%;(DU_!%E`BUWzr#ARI^}K|Fl?{8G81i`Fon2#&jQ)%*pRoGWV($-* zbYHUl)%3@EKYR1~$&OXBYk0fe-?y#WSK(64HOaLnWo>?x_r{Eg-5!W%Vh?ma^6IG! zX-Jc_H*QyZyG;FUo84PisJJ&`9k*`pTt8{b!OO4gw`%w7IwjNZ_{0kNOd)eVf^OJh4o?YgH%YC}e-uS&5KBMFJcN`bB z%mU@D&X4(}PuKc{&hA|HxOQk!m-LhYhiA3enR@cIF?tQ<;rOs2r*h}*_-M6PpI%ds zjVsu;qSDf=me-hN3kI~e9jP>Esr5J2eAsJRv*nu)CkPw{Hp)F-SZnW( z&C<4h9Z@@AsjY15iav9<9f->oq8oN=KG!+f>%4>a8!#lkNAnBq=iYv0ewQH^H;uUJ z+kese*=OIqaQfVKx4u~!QvxFEiZ7(GAH`rN+vey z$f1mNVV&)JFV&5l@Z+mpJ6>MXa!%lb9!q~|n&|n_l8`K(1uc0ZxHoxaR-KQweUtexFYK++o!3^Z9`9!aZmjWb zdiJUfWp<98x4(D&pzOU>zMl8iVRrPxa_4d%^r#c#A9*RM$+B^t$)##kW#_dR^IO;0 zxvwRrH7~<1?6j`GFrlqSvnSq_+uOR&h`GzYGr0baskM%^a_1Mk=eH#1LWQXX+n&DE zDdF9%@}zGDk%apXD^=fl=KWeH-;7AVSG$VZQ{Vq}(v?=#JNbFeUG&n>Mh6ewTGMHB z!0Tfsf4^|rNVlr)R^9hLnjd^}(|4B&#+HA(;ihh1RdeHinpsY9BvtL`*Xhwav%YT_ zeCDNVF}2f zp2Ol&W137paBs#0b9n!T)du+{zq#qK`*m^app>zT?_>v$u5?GM>{&lH^wNq^FLfW% z(n_i3)}qR^xg(Ywa6eEszH#Z~X3iap(=QI25E<*8^>kgMI=6R6By4{9i%RyTKfQ9o zbLiMcTh_!@4QxIny~*|X@ai{h2dbCOUOH|ZzctY9wtro&+y~D0-7EJCj5yop+U`Re zrY-vTWN6^_a=uq))b*S6n=SapInUU}4);7^=f?XZ+uU5V^8NT>PwH)0ct0U#@1FS$ zw+~tRaQoJcAGdrQ8}`!as2jH3gQholvM(s2ApQK7-wuA!FTYPgr==^W?##Kr;mfCq z{uTE&nmhl${`S+fq`_R!(S&NP>&BF;v?J}k zwV{W%pLyz$zOzEbu>98|r+2)4uf@YCw%mKSHe6Xbuwg;}49TWghd)nw`?cFcU#@j_ zO?Xp&b)WuQJmxGLc4%VvnAqjgz`7^fR~@{W3;$sHAg{1bBsOoOx;f(YYDQlB{Nz+K zZqU2l7eDV6G%?Kjs3U9PZk zSS)T5R4PpW*IZhc7;{>{q&4 zVwuOo?w5La@8Qw;UTE{waav6Jpqv**^kmYXxX$;~?9kL%V-yLP?59;qHk*`9dY?9#Pfgj@IZ ziRGP4vmD(m{PfwVVb?G0;I((woo<(IW><>n5E){QN_H@zt#%JOdQ>dGZU36R3)Z~+ zxtTSohC@s_+-}29U)`B;Q&@fRQoEc=L$h9ewWXldJ1}o%@T|*c+kCg@R$0SY?!t*O zho+ScY1uo1Rqke;f4Kkp%)aeU@mB_JzE~RyDe9&I!$Pe9fwk_`V zR>iy;3Uhkhih(sJyY<^rQ2Us7#NxiI@`le0?)H7?cRuG2Js5SoTH4Po+V%3<@k{0R z%RjxrwiV}%YJGT9rGDl0g#2?idmLHz;TF02_+3@E_MI_w(ZJ)<&5YfjmRYdiQSZ$6 zD`YQBi1cvlkn6qRmr6gMUwx9l@}bc1yPav5!$!R{;P!}H7fzIF@nx?xpRN__JNllw z+%wTjJifc})e7TSF0i)ow9l`LZB@sWidlMS*Tj7%*31t{y7|PJd9C6P86%YWwQiOQ zPx5LOm@iMfnsu#o&GQ3B9LNo+stqO4e9)B!-Qu$R&TxaOtxTC2?BUq+ByjS<>0O(B z`ZTK1w}U*|t=Mc;8fcCmz4PXogO=~AibLJ^tS@zTQMbDH4I?GzYU$r51ut3t$&iK1 zJJBj#tT%~b!VKO7cN#YHXXxKZo^$#Jj&gS$;D2}9{qFv`uZLXjQkTq1|Dv3h@Axd*u zl+h`uQ#EifS4A-+D#}rRi@J5)5QymWY#dIM?12pi?;5^z7?GCgIIPY)d){w#<=6xI zardven>{!07;L%fWd!S!~07sY>y-u8;ITA6G zJTvzjG+++b>pLy65e+kUcU-yU=%z4dkA%r#-pGa6nxL*vu?LxnaY+r*?<~BG=CY67 z_Ibm$ovtkV?OktsuuX!j;`|E*hTnb^oSm=eAOjr<@N~5~ef=jMlk~;CQ%2J?gIF9tr6!t|2a+U`$Fp=7%h_;fhZk*@t?(L7 z-^ti-`m)9Ueod7T06%vPb=)spL#g%)*HE4K+%A_YL-{xB}8o1bfk@^7ZF-5=(H zdQZfe^!5AvXh(=q|8$K-{rdCI(guZdDIT}*Df+wk8mfY&7i55#9mx{||A>r7#fwLVj6I7G(Dm`I^!{9jTt>Zu$j=IsRQWn+M z779Z(9fwRb1-0!K!6`NtWugjdb#Vv)we+Z}N0qsz;XDY6PBolbv2chN1=tdfOk1)~ za|89iGR~KwR$f4HE2>jP9Ev51h!dtNN=IA}S~fM$tXayrW!P=2g?eVGjmp5->3wt<`Y?)Fe2che~1;(W7kM^a;1q z|8v4dGek)1IUGnLxITtN_cx)q&}FY^n$K(E>qs=4s7;xsOp}lokW)w=!dCrbXVkW8=Q??S$+BB6AElmBjDJs+-C3&e(q%5V0 zNi`IMR)!FgXr*KwExeESm|aDY*g$Vwa`0*q&IN+d`LV==%XIL#rVfQTr~ zBNz?@k>e#CkQ7Hq1S3d1Kt+y}SO!5bmg7i_BRK>k7#d(K!4epT2rxU12?C7)9H0m< z2^0ZjEG9@2AxI3u5eP1!7)|pOiJ};TA}CEz2qvNk1@q%HMhUoxu$TmEBOd7369oZ=*c5>TE)D2M|tiXwsXBqoYHE=nSfA&d+WC=920 zp20YQzS0)~Mg(G*8fI1AtlSP;R|B5Z&Guq_gP&xi=jFGCp&!4Z_CSP7K`z)K8`qXa{- zqy*alG*3bl0FWq}rbP~gOtBCL2pNfpG%nH%2_ZrloTYg{k}M>Sfu~_s2oeFMfbmcn z6p!$N04RY3m?&^K2Z6;zie-Tkq?MDaPD^*=aZF?xz@WUqumWTq#Ylle8J=QjS|U&y zM_AZALhv{*iZIB~JQNt9Nl_38zyb<#4g?9Fg~~xG`S3Jf+5an18UYBTlB5WPhd)LE z!BR971Ed}m5D8%rl7RG#L&0%4j&UN3V+2JAGzD;4n9PYdA;QuChMx4| z*8g8w5e(#pVFZ%FNH{GtA)*W^Fc4Rz-0|Y|_0Tadt z1cfaN5`{u#5#taE1VZ8rRH+ELCvXDiA%<`YMMwaoNJNyO;!y62?u-ocE58bHp`K-#*@vbsHL!daR)+TKx#~>(5?=Qp$DsR{Ak^V$#q?PJsg)XK z;r;%d7Va7iJxd_dS*P_|fo=_)AOo$*xuxs?_-hy*PGvZFrFOh=t5& z=7q-Oq~4atgU_3<{b`lC_`%BJPGV=tRxz4`wY>gzCERuEB#tA*qe;b)EyE#>iGR zF5ShyG>=#~GbjDcdUAQN$C|(5PSrT*8@#$Sd`$hqy=&6S9uu4QSBkT?&pM;CrK>;e za!SNs_qCoV-_h#`Q^9RdgcK(lPjR=rUGRK%z=yV$!Y4An++u4x6;5}ZKDBg;(dMZ1 zg$?KD)YVkID!tIF;A?v;xU#oVJK#1LNUA8meDLUmQxl#?$EOWNMZC?qn`Ri{o6t8W zcK7h_1|Oodtq_aq<0kt(FNT$+78R<$bO``%zpnW$IJakCT4=f7{MuLj57qru``K%8QaWb+mw`o)UT(g{N^_*d{!Ewk*#WiueTE$? zG+#aaVQ{8HaC4!{j+8~mYK~ScuWqx|N($XnWG3%=vDa>8V~M-$oO5IxtED8r6z25# z@LruYl?n0GP;;xj$r1&Hw<@|_k@X$U?#h0qNkyUcaqUgHJA3FmS>fF;Tw6-ltxS86 z@xks=_veg|`(JC!j@EuV9lPM6+jjq|0ivC5Ur|+Fc-VGjD5=|ib&3OGJ$HA9)|`KH z7ODzWNoZ>Q`wiM|OJsSKKZWgRF&~ge4=8{NY`p3Qp(2e(*bIVI=vtH?J{J6&>_uGsFhf6h8#Rcw8Cl-hM=*hYdZ+tmW(%Iy_ zyWFhnWRCLriGi{8Z=atHn&VxQI&-b#tihX;HwQj(dcE0fUg{YOZxwX+0YC@@8pr zcI#95V(*5t4Jk+3nh!mw()Kj;_PH~pnUH5!lUScXEe;G(ZC$c{U0(UF`k6uIp&GXp z)fToZrxb1GugPre?Z!@U z&0C%s4OxylB`;L4J|uGSs{{OO%$4$N*5+?8S~opGyX1Uq`j|#v^C<%XfS+B9j6wWh z^tD503$J&t&Rdimbw{~$WXT&k?;%K-*LasPDXTy3`c) zstZVPu?!viHB>pq?Z(E;#Z5BJhmQ=&FMIvEX8n7|)SFiAyf8RW=??c^aIE zXKu#bai?DWA1k=p8J-hdeGMiZFLLjZmioLmJ|BH2?})Zy%+*n4R7-s1GxuSipHktqq?G!lPvhG=XU@O6V>d^CH1jkH zZ{4)@=jcsOKb^8wuAEo)SY?(&{&Bgjwj;JU>WkcTs}GYJy~VC)V9nyC_ca z=QE26Pd`^Xa<9$8pvf*c-KjLKMCPb_(bcOmxMWwy%10fM)_p<9?AYfLo8)udWBXys z0jai^sRlT|emv{Q6FqvDdP%PB+@WU2J+&(q4Sv^2%!09g8%-9L1)9x=Wd!7U3<5!D*LOuQTNxi z$(!VhMnxTu$$z@yR%bH1?z<}9%CRxYR-2o4{I;Uzq1Vhc+A99E(Vu6K%=-B&Y&s5p zY*t^H8u?>IQ(&z5xfgQ_#)_Q}{pNXO&u53$g3;sw|B?M@-p$ROvX6ynK{;!bqg-WM zW>@t1E{nk0)GL}avLmx4R{0=FDItUY;8e{8GBwllA9R=hEj% zRl!!a3vTX)8jI^rd`&LbT=QVlS!OIL+zrJY>6YTkw`U)|0rtzr;B86)GDaiFore;>vzFZTBs^y|bw zVid~!BSr#wzlYg;=#u}Q0{{&BM-B!faJi%BcN1xxl5g~6W-vG`a!bO2qAmoPL&XX{lq&3XU JoLs-x_zyL4%9a2C delta 3574 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 F`QQ0lzL)?2 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacPublicEncryptionDocTest_signExternalContainerReal.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signMacPublicEncryptionDocTest_signExternalContainerReal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b140c8a5c0bbf0fddac2b98b6bd3c0496d942eb GIT binary patch literal 17842 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 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_signExternalContainerBlank.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_signExternalContainerBlank.pdf new file mode 100644 index 0000000000000000000000000000000000000000..79830a83ba58bd1fc8a86eff48f3bfc290d99f13 GIT binary patch literal 12543 zcmeI3>2DiF6u>`Y{)r_tD5;vv%pSA55DboEw~)3mc3LX3QJCGGO`XPGvtE}3RHSlL zl@R?&YoTDx6{SR2iRQ?--_XPdjDj5 zU5S_Ds?vq!B?(9Zl7J*22}lBxfFvLZNCJ|8Bp?Y$0+N6vAPGnUl7J*22}lBxfFvLZ zNCJ|8Bp?Y$0+N6vAPGnUl7J*23H%QTBvH0F8uJLH{Ltl{xm@q^V$9L<&|`5iEdTow zyA=zHKIfO&BMw$Ia>L$tO6K9IOApjU(O&wAO~0&kFjoDO2huGQGgIv-7loCf?pkrw zhXTS>r2_3rR^liL7s_*1{V&!OYHq_X=7U?6bzar%^f^=xuH`=JAFps!C=Mr+30?-j zM-sGIyO>jS=;UEZFCHKm>KEaw&VC0GOdJdCem)jA)d_Cur*gt_g=k_HFg**8D$4eY z1<^9J63tscD8i>X@%2T2n8&DpL7YQRpLXI;htb4C#op1$k3KE6qt%M2yM%@2Trr^A zD8pB9B+Qx`0@JR4kn*U*EGF8|F<<1>uGrX>divYY%w3AUP3qGrw*b8GrGp6TQJJ zYmPctQxETYbi?}NnY(wd`hMdiTi^3}J6aL?e>=&4i)O#(@n}I~zIrA1$z$JppB(Bw z(QUls#Mv}&LC?R}vU&0LQy)(~Irx13x*dN!3+bW%sN9Q+C(s?oFWb+Km%s`0rZt!R zw0Fq+W#X;Rl)X-H-#z`1Uh2LUC%F8|g17Un_9h?F8e&q39r)}%#B?O|+ zJUs&~nVH-)y>r<&-K(D2c;^F)V%SY%IqiPs(AE#2aJetj*7Z6|O@~YNCs!ZYviq)m zFCTmpw5SuDI=G!op{4skfsS4K0vw=9hh}3P<#<%8wu#}_zINJPVq1P+3>x?<8v@E$ zy#LB}lvfOJvXq_m6xwL+aTVxc`t*Z8>rT5ko;+4BF7mw=UXtblbbzPd*7lP_vDxIM$42tc*oGNWej?C+6O`gecT7G(!oL*)c*0 zg#Z+nQa&@Ls^^Vi%YrDIFNaMX;`*F1s>7*v&X}&lnKOTk==3~YqC(00d^zY5I1cCQ zVgsMMhLD5Y6Sp(IiQcTu%`pNmm9yrHBUT*ck*K}Tl)Y%Y5-TFA^XQr$WuQxU8MRH{ zFtKLqrltnI$~_ji0XIFUkT+G!WL(Fp=X$24bJurWZtEUro<&_uO^*>T@QABwrmDh& z=6T$tuEuN=serFlW1>jrZ<1?DD&?Ffiwn}JGArY5_v!HDXs8m9p>T-~aoZW6J5 zX!9Ez`Gk>gzt$EtebAPYxpSj{&9rQbzeOgafV4r%=3wLtsIywHC!Yy(1k) kyu+4TcV;05rASA@HNTRhh)0a*B1s?dKh5!Hn literal 0 HcmV?d00001 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_signExternalContainerReal.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDoc17Test_signExternalContainerReal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6532a6e0a77d299e00c8d704a98a51d1189abf9a GIT binary patch literal 12547 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 delta 3122 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 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocInAppendModeTest_signExternalContainerReal.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocInAppendModeTest_signExternalContainerReal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..96d972f054d9876eee87f8a36577444eeb7b2c81 GIT binary patch literal 18997 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 literal 0 HcmV?d00001 diff --git a/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest.pdf b/itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest_signDetached.pdf similarity index 71% rename from itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest.pdf rename to itext.tests/itext.sign.tests/resources/itext/signatures/mac/SignedDocumentWithMacTest/cmp_signNotMacProtectedDocTest_signDetached.pdf index 49b98db1e7b8a3d3f1c17e1f200bbe132653446f..1ecb485b3d6659a45487d4a09c74bf7e803e3bc6 100644 GIT binary patch delta 4047 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 delta 3830 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 z zQJcIcUUjnvwnt3G3;1HvoSpq5@q>KYxG`kEqy6O_fnJO6O>uM>)p>1e@I+puVJU5m z+=#8YjKX$%km(qZV54D~6y|*XsS&0v%YEsui0c{$eC}oswn-4)0N;EG;=AM3kKLNA zp;MWE@!84G&WE{myb|yW+b^|aPSXpAw{#d2(cZBpxA)}1YIj?VCi2M{j<-qZ1~=ZGMn>VfQKDVOrGhdEIs1h`X2~Cv}iDN z6A^{vIA4mRrzobu@m!VDQ9g!3PL!acL<|KUnkJ%P1xM{s35yLeaabNTXsGx?NtkFF z98QivI==WhC~f9p}5fHMo~1!*W4%0VK!Gi k7!Rg-NPu@xNXNjgE(uQJaONpF$^~TJrBS2yfxa&P0~zi7hyVZp literal 0 HcmV?d00001 diff --git a/itext/itext.bouncy-castle-connector/itext/bouncycastleconnector/BouncyCastleFactoryCreator.cs b/itext/itext.bouncy-castle-connector/itext/bouncycastleconnector/BouncyCastleFactoryCreator.cs index 674ad6ceae..44716a5d0e 100644 --- a/itext/itext.bouncy-castle-connector/itext/bouncycastleconnector/BouncyCastleFactoryCreator.cs +++ b/itext/itext.bouncy-castle-connector/itext/bouncycastleconnector/BouncyCastleFactoryCreator.cs @@ -48,8 +48,8 @@ namespace iText.Bouncycastleconnector { public sealed class BouncyCastleFactoryCreator { private static IBouncyCastleFactory factory; - private static IDictionary> factories = new LinkedDictionary>(); + private static readonly IDictionary> FACTORIES = new LinkedDictionary>(); private const String FACTORY_ENVIRONMENT_VARIABLE_NAME = "ITEXT_BOUNCY_CASTLE_FACTORY_NAME"; @@ -59,11 +59,11 @@ public sealed class BouncyCastleFactoryCreator { static BouncyCastleFactoryCreator() { PopulateFactoriesMap(); String factoryName = SystemUtil.GetEnvironmentVariable(FACTORY_ENVIRONMENT_VARIABLE_NAME); - Func systemVariableFactoryCreator = factories.Get(factoryName); + Func systemVariableFactoryCreator = FACTORIES.Get(factoryName); if (systemVariableFactoryCreator != null) { TryCreateFactory(systemVariableFactoryCreator); } - foreach (Func factorySupplier in factories.Values) { + foreach (Func factorySupplier in FACTORIES.Values) { if (factory != null) { break; } @@ -121,8 +121,8 @@ private static void CreateFactory(Func factoryCreator) { } private static void PopulateFactoriesMap() { - factories.Put("bouncy-castle", () => new BouncyCastleFactory()); - factories.Put("bouncy-castle-fips", () => new BouncyCastleFipsFactory()); + FACTORIES.Put("bouncy-castle", () => new BouncyCastleFactory()); + FACTORIES.Put("bouncy-castle-fips", () => new BouncyCastleFipsFactory()); } // Android-Conversion-Skip-Line (BC FIPS isn't supported on Android) } diff --git a/itext/itext.kernel/itext/kernel/mac/IMacContainerLocator.cs b/itext/itext.kernel/itext/kernel/mac/IMacContainerLocator.cs index 6b4ab7f3ac..d739dad5f3 100644 --- a/itext/itext.kernel/itext/kernel/mac/IMacContainerLocator.cs +++ b/itext/itext.kernel/itext/kernel/mac/IMacContainerLocator.cs @@ -48,6 +48,16 @@ public interface IMacContainerLocator { /// void LocateMacContainer(AbstractMacIntegrityProtector macIntegrityProtector); + /// Indicates, if MAC container was already located. + /// + /// + /// + /// if MAC container was already located, + /// + /// otherwise + /// + bool IsMacContainerLocated(); + /// /// Creates /// diff --git a/itext/itext.kernel/itext/kernel/mac/StandaloneMacContainerLocator.cs b/itext/itext.kernel/itext/kernel/mac/StandaloneMacContainerLocator.cs index 60b00aed42..38e49f7bfc 100644 --- a/itext/itext.kernel/itext/kernel/mac/StandaloneMacContainerLocator.cs +++ b/itext/itext.kernel/itext/kernel/mac/StandaloneMacContainerLocator.cs @@ -29,11 +29,21 @@ namespace iText.Kernel.Mac { /// location strategy, which locates MAC container in document's trailer. /// public class StandaloneMacContainerLocator : IMacContainerLocator { + private bool macContainerLocated = false; + /// /// . /// public virtual void LocateMacContainer(AbstractMacIntegrityProtector macIntegrityProtector) { ((StandaloneMacIntegrityProtector)macIntegrityProtector).PrepareDocument(); + macContainerLocated = true; + } + + /// + /// . + /// + public virtual bool IsMacContainerLocated() { + return macContainerLocated; } /// diff --git a/itext/itext.kernel/itext/kernel/pdf/PdfWriter.cs b/itext/itext.kernel/itext/kernel/pdf/PdfWriter.cs index fe8a8261c6..d24c1b40d3 100644 --- a/itext/itext.kernel/itext/kernel/pdf/PdfWriter.cs +++ b/itext/itext.kernel/itext/kernel/pdf/PdfWriter.cs @@ -197,9 +197,12 @@ protected internal virtual void InitCryptoIfSpecified(PdfVersion version) { // if default ones have been passed to WriterProperties int encryptionAlgorithm = crypto == null ? (encryptProps.encryptionAlgorithm & EncryptionConstants.ENCRYPTION_MASK ) : crypto.GetEncryptionAlgorithm(); + if (document.properties.disableMac) { + encryptProps.macProperties = null; + } if (encryptProps.macProperties == EncryptionProperties.DEFAULT_MAC_PROPERTIES) { - if ((version == null || version.CompareTo(PdfVersion.PDF_2_0) < 0) || (encryptionAlgorithm != EncryptionConstants - .ENCRYPTION_AES_256 && encryptionAlgorithm != EncryptionConstants.ENCRYPTION_AES_GCM)) { + if (version == null || version.CompareTo(PdfVersion.PDF_2_0) < 0 || encryptionAlgorithm < EncryptionConstants + .ENCRYPTION_AES_256) { encryptProps.macProperties = null; } } diff --git a/itext/itext.kernel/itext/kernel/pdf/StampingProperties.cs b/itext/itext.kernel/itext/kernel/pdf/StampingProperties.cs index cb86b0cfb7..797a416c55 100644 --- a/itext/itext.kernel/itext/kernel/pdf/StampingProperties.cs +++ b/itext/itext.kernel/itext/kernel/pdf/StampingProperties.cs @@ -35,6 +35,7 @@ public StampingProperties(iText.Kernel.Pdf.StampingProperties other) : base(other) { this.appendMode = other.appendMode; this.preserveEncryption = other.preserveEncryption; + this.disableMac = other.disableMac; } //\cond DO_NOT_DOCUMENT diff --git a/itext/itext.sign/itext/signatures/PdfSigner.cs b/itext/itext.sign/itext/signatures/PdfSigner.cs index 7130cead10..964c31cc2b 100644 --- a/itext/itext.sign/itext/signatures/PdfSigner.cs +++ b/itext/itext.sign/itext/signatures/PdfSigner.cs @@ -24,6 +24,8 @@ You should have received a copy of the GNU Affero General Public License using System.Collections.Generic; using System.IO; using iText.Bouncycastleconnector; +using iText.Commons.Bouncycastle; +using iText.Commons.Bouncycastle.Asn1; using iText.Commons.Bouncycastle.Asn1.Esf; using iText.Commons.Bouncycastle.Cert; using iText.Commons.Bouncycastle.Crypto; @@ -48,13 +50,20 @@ You should have received a copy of the GNU Affero General Public License using iText.Layout.Properties; using iText.Layout.Tagging; using iText.Pdfa; +using iText.Signatures.Cms; using iText.Signatures.Exceptions; using iText.Signatures.Mac; namespace iText.Signatures { /// Takes care of the cryptographic options and appearances that form a signature. public class PdfSigner { - private const int MAXIMUM_MAC_SIZE = 788; +//\cond DO_NOT_DOCUMENT + internal const int MAXIMUM_MAC_SIZE = 788; +//\endcond + + private static readonly IBouncyCastleFactory FACTORY = BouncyCastleFactoryCreator.GetFactory(); + + private const String ID_ATTR_PDF_MAC_DATA = "1.0.32004.1.2"; /// Enum containing the Cryptographic Standards. /// Enum containing the Cryptographic Standards. Possible values are "CMS" and "CADES". @@ -505,8 +514,8 @@ public virtual void SignDetached(IExternalDigest externalDigest, IExternalSignat if (tsaClient != null) { estimatedSize += tsaClient.GetTokenSizeEstimate() + 96; } - if (document.GetTrailer().GetAsDictionary(PdfName.AuthCode) != null) { - // if AuthCode is found in trailer, we assume MAC will be embedded and allocate additional space. + if (document.GetDiContainer().GetInstance().IsMacContainerLocated()) { + // If MAC container was located, we presume MAC will be embedded and allocate additional space. estimatedSize += MAXIMUM_MAC_SIZE; } } @@ -591,11 +600,16 @@ public virtual void SignExternalContainer(IExternalSignatureContainer externalSi PdfSignature dic = CreateSignatureDictionary(true); externalSignatureContainer.ModifySigningDictionary(dic.GetPdfObject()); cryptoDictionary = dic; + if (document.GetDiContainer().GetInstance().IsMacContainerLocated()) { + // If MAC container was located, we presume MAC will be embedded and allocate additional space. + estimatedSize += MAXIMUM_MAC_SIZE; + } IDictionary exc = new Dictionary(); exc.Put(PdfName.Contents, estimatedSize * 2 + 2); PreClose(exc); Stream data = GetRangeStream(); byte[] encodedSig = externalSignatureContainer.Sign(data); + encodedSig = EmbedMacTokenIntoSignatureContainer(encodedSig); if (estimatedSize < encodedSig.Length) { throw new System.IO.IOException(SignExceptionMessageConstant.NOT_ENOUGH_SPACE); } @@ -627,6 +641,10 @@ public virtual void Timestamp(ITSAClient tsa, String signatureName) { throw new PdfException(SignExceptionMessageConstant.PROVIDED_TSA_CLIENT_IS_NULL); } int contentEstimated = tsa.GetTokenSizeEstimate(); + if (document.GetDiContainer().GetInstance().IsMacContainerLocated()) { + // If MAC container was located, we presume MAC will be embedded and allocate additional space. + contentEstimated += MAXIMUM_MAC_SIZE; + } if (!IsDocumentPdf2()) { AddDeveloperExtension(PdfDeveloperExtension.ESIC_1_7_EXTENSIONLEVEL5); } @@ -653,6 +671,7 @@ public virtual void Timestamp(ITSAClient tsa, String signatureName) { throw iText.Bouncycastleconnector.BouncyCastleFactoryCreator.GetFactory().CreateGeneralSecurityException(e .Message, e); } + tsToken = EmbedMacTokenIntoSignatureContainer(tsToken); if (contentEstimated + 2 < tsToken.Length) { throw new System.IO.IOException(MessageFormatUtil.Format(SignExceptionMessageConstant.TOKEN_ESTIMATION_SIZE_IS_NOT_LARGE_ENOUGH , contentEstimated, tsToken.Length)); @@ -1204,6 +1223,22 @@ protected internal virtual int GetWidgetPageNumber(PdfWidgetAnnotation widget) { return pageNumber; } +//\cond DO_NOT_DOCUMENT + internal virtual PdfSignature CreateSignatureDictionary(bool includeDate) { + PdfSignature dic = new PdfSignature(); + dic.SetReason(this.signerProperties.GetReason()); + dic.SetLocation(this.signerProperties.GetLocation()); + dic.SetSignatureCreator(this.signerProperties.GetSignatureCreator()); + dic.SetContact(this.signerProperties.GetContact()); + DateTime claimedSignDate = this.signerProperties.GetClaimedSignDate(); + if (includeDate && claimedSignDate != TimestampConstants.UNDEFINED_TIMESTAMP_DATE) { + dic.SetDate(new PdfDate(claimedSignDate)); + } + // time-stamp will over-rule this + return dic; + } +//\endcond + private static String GetSignerName(IX509Certificate certificate) { String name = null; CertificateInfo.X500Name x500name = CertificateInfo.GetSubjectFields(certificate); @@ -1250,22 +1285,6 @@ private bool IsDocumentPdf2() { return document.GetPdfVersion().CompareTo(PdfVersion.PDF_2_0) >= 0; } -//\cond DO_NOT_DOCUMENT - internal virtual PdfSignature CreateSignatureDictionary(bool includeDate) { - PdfSignature dic = new PdfSignature(); - dic.SetReason(this.signerProperties.GetReason()); - dic.SetLocation(this.signerProperties.GetLocation()); - dic.SetSignatureCreator(this.signerProperties.GetSignatureCreator()); - dic.SetContact(this.signerProperties.GetContact()); - DateTime claimedSignDate = this.signerProperties.GetClaimedSignDate(); - if (includeDate && claimedSignDate != TimestampConstants.UNDEFINED_TIMESTAMP_DATE) { - dic.SetDate(new PdfDate(claimedSignDate)); - } - // time-stamp will over-rule this - return dic; - } -//\endcond - protected internal virtual void ApplyAccessibilityProperties(PdfFormField formField, IAccessibleElement modelElement , PdfDocument pdfDocument) { if (!pdfDocument.IsTagged()) { @@ -1278,6 +1297,30 @@ protected internal virtual void ApplyAccessibilityProperties(PdfFormField formFi } } + private byte[] EmbedMacTokenIntoSignatureContainer(byte[] signatureContainer) { + if (document.GetDiContainer().GetInstance().IsMacContainerLocated()) { + try { + CMSContainer cmsContainer = new CMSContainer(signatureContainer); + // If MAC is in the signature already, we regenerate it anyway. + cmsContainer.GetSignerInfo().RemoveUnSignedAttribute(ID_ATTR_PDF_MAC_DATA); + IAsn1EncodableVector unsignedVector = FACTORY.CreateASN1EncodableVector(); + document.DispatchEvent(new SignatureContainerGenerationEvent(unsignedVector, cmsContainer.GetSignerInfo(). + GetSignatureData(), GetRangeStream())); + if (FACTORY.CreateDERSequence(unsignedVector).Size() != 0) { + IAsn1Sequence sequence = FACTORY.CreateASN1Sequence(FACTORY.CreateDERSequence(unsignedVector).GetObjectAt( + 0)); + cmsContainer.GetSignerInfo().AddUnSignedAttribute(new CmsAttribute(FACTORY.CreateASN1ObjectIdentifier(sequence + .GetObjectAt(0)).GetId(), sequence.GetObjectAt(1).ToASN1Primitive())); + return cmsContainer.Serialize(); + } + } + catch (Exception exception) { + throw new PdfException(SignExceptionMessageConstant.NOT_POSSIBLE_TO_EMBED_MAC_TO_SIGNATURE, exception); + } + } + return signatureContainer; + } + private void ApplyDefaultPropertiesForTheNewField(PdfSignatureFormField sigField) { SignatureFieldAppearance formFieldElement = GetSignatureAppearance(); PdfFormAnnotation annotation = sigField.GetFirstFormAnnotation(); diff --git a/itext/itext.sign/itext/signatures/PdfTwoPhaseSigner.cs b/itext/itext.sign/itext/signatures/PdfTwoPhaseSigner.cs index 9fa3828ba2..723e3e46e0 100644 --- a/itext/itext.sign/itext/signatures/PdfTwoPhaseSigner.cs +++ b/itext/itext.sign/itext/signatures/PdfTwoPhaseSigner.cs @@ -26,6 +26,7 @@ You should have received a copy of the GNU Affero General Public License using iText.Commons.Digest; using iText.Kernel.Crypto; using iText.Kernel.Exceptions; +using iText.Kernel.Mac; using iText.Kernel.Pdf; using iText.Signatures.Cms; using iText.Signatures.Exceptions; @@ -172,6 +173,9 @@ private byte[] PrepareDocumentForSignature(SignerProperties signerProperties, IM } PdfSigner pdfSigner = CreatePdfSigner(signerProperties); PdfDocument document = pdfSigner.GetDocument(); + if (document.GetDiContainer().GetInstance().IsMacContainerLocated()) { + throw new PdfException(SignExceptionMessageConstant.NOT_POSSIBLE_TO_EMBED_MAC_TO_SIGNATURE); + } if (document.GetPdfVersion().CompareTo(PdfVersion.PDF_2_0) < 0) { document.GetCatalog().AddDeveloperExtension(PdfDeveloperExtension.ESIC_1_7_EXTENSIONLEVEL2); } diff --git a/itext/itext.sign/itext/signatures/cms/CMSContainer.cs b/itext/itext.sign/itext/signatures/cms/CMSContainer.cs index c05ba88274..c953ecb968 100644 --- a/itext/itext.sign/itext/signatures/cms/CMSContainer.cs +++ b/itext/itext.sign/itext/signatures/cms/CMSContainer.cs @@ -82,6 +82,8 @@ public class CMSContainer { /// This class only supports one signer per signature field. private SignerInfo signerInfo = new SignerInfo(); + private int version = 1; + /// Creates an empty SignedData structure. public CMSContainer() { } @@ -95,6 +97,7 @@ public CMSContainer(byte[] encodedCMSdata) { IAsn1Sequence contentInfo = BC_FACTORY.CreateASN1Sequence(@is.ReadObject()); IAsn1Sequence signedData = BC_FACTORY.CreateASN1Sequence(BC_FACTORY.CreateASN1TaggedObject(contentInfo.GetObjectAt (1)).GetObject()); + version = BC_FACTORY.CreateASN1Integer(signedData.GetObjectAt(0)).GetValue().GetIntValue(); // The digest algorithm is retrieved from SignerInfo later on, here we just validate // that there is exactly 1 digest algorithm. IAsn1Set digestAlgorithms = BC_FACTORY.CreateASN1Set(signedData.GetObjectAt(1)); @@ -150,10 +153,10 @@ public virtual long GetSizeEstimation() { return result.Length; } - /// Only version 1 is supported by this class. - /// 1 as CMSversion + /// The version of the CMS container. + /// version of the CMS container public virtual int GetCmsVersion() { - return 1; + return version; } /// The digest algorithm OID and parameters used by the signer. @@ -302,7 +305,7 @@ signerInfos SignerInfos SET IAsn1EncodableVector encapContentInfoV = BC_FACTORY.CreateASN1EncodableVector(); encapContentInfoV.Add(BC_FACTORY.CreateASN1ObjectIdentifier(encapContentInfo.GetContentType())); if (encapContentInfo.GetContent() != null) { - encapContentInfoV.Add(encapContentInfo.GetContent()); + encapContentInfoV.Add(BC_FACTORY.CreateDERTaggedObject(0, encapContentInfo.GetContent())); } singedDataV.Add(BC_FACTORY.CreateDERSequence(encapContentInfoV)); IAsn1EncodableVector certificateSetV = BC_FACTORY.CreateASN1EncodableVector(); diff --git a/itext/itext.sign/itext/signatures/cms/SignerInfo.cs b/itext/itext.sign/itext/signatures/cms/SignerInfo.cs index fa8fff74e6..71a175dd24 100644 --- a/itext/itext.sign/itext/signatures/cms/SignerInfo.cs +++ b/itext/itext.sign/itext/signatures/cms/SignerInfo.cs @@ -321,6 +321,16 @@ public virtual void AddUnSignedAttribute(CmsAttribute attribute) { unSignedAttributes.Add(attribute); } + /// Removes unsigned attribute from signer info object based on attribute type. + /// + /// + /// + /// attribute type + /// + public virtual void RemoveUnSignedAttribute(String type) { + unSignedAttributes.RemoveIf((cmsAttribute) => cmsAttribute.GetType().Equals(type)); + } + /// Retrieves the encoded signed attributes of the signer info. /// /// Retrieves the encoded signed attributes of the signer info. diff --git a/itext/itext.sign/itext/signatures/exceptions/SignExceptionMessageConstant.cs b/itext/itext.sign/itext/signatures/exceptions/SignExceptionMessageConstant.cs index 8465d78a0f..1595678b1d 100644 --- a/itext/itext.sign/itext/signatures/exceptions/SignExceptionMessageConstant.cs +++ b/itext/itext.sign/itext/signatures/exceptions/SignExceptionMessageConstant.cs @@ -92,6 +92,8 @@ public sealed class SignExceptionMessageConstant { public const String NOT_ENOUGH_SPACE = "Not enough space."; + public const String NOT_POSSIBLE_TO_EMBED_MAC_TO_SIGNATURE = "It was not possible to embed MAC token into signature. Most likely signature container is empty."; + public const String PATH_IS_NOT_DIRECTORY = "Provided path: {0} is not a directory. " + "Please provide a directory path to store temporary pdf files which are required for signing."; public const String PROVIDED_TSA_CLIENT_IS_NULL = "Provided TSA client is null. TSA client is required for timestamp signing."; diff --git a/itext/itext.sign/itext/signatures/mac/SignatureMacContainerLocator.cs b/itext/itext.sign/itext/signatures/mac/SignatureMacContainerLocator.cs index 61db328eb5..a625b578a3 100644 --- a/itext/itext.sign/itext/signatures/mac/SignatureMacContainerLocator.cs +++ b/itext/itext.sign/itext/signatures/mac/SignatureMacContainerLocator.cs @@ -34,11 +34,21 @@ namespace iText.Signatures.Mac { /// This strategy locates MAC container in signature unsigned attributes. /// public class SignatureMacContainerLocator : IMacContainerLocator { + private bool macContainerLocated = false; + /// /// . /// public virtual void LocateMacContainer(AbstractMacIntegrityProtector macIntegrityProtector) { ((SignatureMacIntegrityProtector)macIntegrityProtector).PrepareDocument(); + macContainerLocated = true; + } + + /// + /// . + /// + public virtual bool IsMacContainerLocated() { + return macContainerLocated; } /// diff --git a/port-hash b/port-hash index c2d50f67a1..d35473a50b 100644 --- a/port-hash +++ b/port-hash @@ -1 +1 @@ -5d52188d21a976693e808d174a519195b62f241c +9fe2316b0ddd5adea465af2301807686b70d4326