diff --git a/.github/workflows/test-net-framework-samples.yml b/.github/workflows/test-net-framework-samples.yml
index 6d87bd6..9943580 100644
--- a/.github/workflows/test-net-framework-samples.yml
+++ b/.github/workflows/test-net-framework-samples.yml
@@ -93,7 +93,8 @@ jobs:
'Other/StreamIO/',
'Printing/PrintPDF/',
'Printing/PrintPDFGUI/',
- 'Security/AddDigitalSignature/',
+ 'Security/AddDigitalSignatureCMS/',
+ 'Security/AddDigitalSignatureRFC3161/',
'Security/AddRegexRedaction/',
'Security/Redactions/',
'Text/AddGlyphs/',
diff --git a/Samples.sln b/Samples.sln
index cfaba70..3783c8e 100644
--- a/Samples.sln
+++ b/Samples.sln
@@ -180,7 +180,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegexTextSearch", "Text\Reg
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextExtract", "Text\TextExtract\TextExtract.csproj", "{11C4A647-3DDA-41A5-855C-E14EDF1BFFDE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddDigitalSignature", "Security\AddDigitalSignature\AddDigitalSignature.csproj", "{AB753937-DF3D-4B06-B475-D3B597D32BC5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddDigitalSignatureCMS", "Security\AddDigitalSignatureCMS\AddDigitalSignatureCMS.csproj", "{AB753937-DF3D-4B06-B475-D3B597D32BC5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddDigitalSignatureRFC3161", "Security\AddDigitalSignatureRFC3161\AddDigitalSignatureRFC3161.csproj", "{74FA984E-AB89-475A-9077-9D612DE12AEC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -548,6 +550,10 @@ Global
{AB753937-DF3D-4B06-B475-D3B597D32BC5}.Debug|x64.Build.0 = Debug|x64
{AB753937-DF3D-4B06-B475-D3B597D32BC5}.Release|x64.ActiveCfg = Release|x64
{AB753937-DF3D-4B06-B475-D3B597D32BC5}.Release|x64.Build.0 = Release|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Debug|x64.ActiveCfg = Debug|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Debug|x64.Build.0 = Debug|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Release|x64.ActiveCfg = Release|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Security/AddDigitalSignature/AddDigitalSignature.cs b/Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.cs
similarity index 86%
rename from Security/AddDigitalSignature/AddDigitalSignature.cs
rename to Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.cs
index cfdd689..e742437 100644
--- a/Security/AddDigitalSignature/AddDigitalSignature.cs
+++ b/Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.cs
@@ -5,18 +5,18 @@
/*
*
- * This sample program demonstrates the use of AddDigitalSignature.
+ * This sample program demonstrates the use of AddDigitalSignature for CMS signature type.
*
* Copyright (c) 2025, Datalogics, Inc. All rights reserved.
*
*/
-namespace AddDigitalSignature
+namespace AddDigitalSignatureCMS
{
- class AddDigitalSignature
+ class AddDigitalSignatureCMS
{
static void Main(string[] args)
{
- Console.WriteLine("AddDigitalSignature Sample:");
+ Console.WriteLine("AddDigitalSignatureCMS Sample:");
using (new Library())
{
@@ -24,7 +24,7 @@ static void Main(string[] args)
String sInput = Library.ResourceDirectory + "Sample_Input/SixPages.pdf";
String sLogo = Library.ResourceDirectory + "Sample_Input/ducky_alpha.tif";
- String sOutput = "DigSig-out.pdf";
+ String sOutput = "DigSigCMS-out.pdf";
String sDERCert = Library.ResourceDirectory + "Sample_Input/Credentials/DER/RSA_certificate.der";
String sDERKey = Library.ResourceDirectory + "Sample_Input/Credentials/DER/RSA_privKey.der";
@@ -55,6 +55,10 @@ static void Main(string[] args)
sigDoc.SetNonPfxSignerCert(sDERCert, 0, CredentialStorageFmt.OnDisk);
sigDoc.SetNonPfxPrivateKey(sDERKey, 0, CredentialStorageFmt.OnDisk);
+ // Set the signature type to be used.
+ // The available types are defined in the SignatureType enum. Default CMS.
+ sigDoc.DocSignType = SignatureType.CMS;
+
// Setup the signer information
// (Logo image is optional)
sigDoc.SetSignerInfo(sLogo, 0.5F, "John Doe", "Chicago, IL", "Approval", "Datalogics, Inc.",
diff --git a/Security/AddDigitalSignature/AddDigitalSignature.csproj b/Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.csproj
similarity index 93%
rename from Security/AddDigitalSignature/AddDigitalSignature.csproj
rename to Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.csproj
index 866e62e..58f089f 100644
--- a/Security/AddDigitalSignature/AddDigitalSignature.csproj
+++ b/Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.csproj
@@ -6,8 +6,8 @@
x64
{AB753937-DF3D-4B06-B475-D3B597D32BC5}
Exe
- AddDigitalSignature
- AddDigitalSignature
+ AddDigitalSignatureCMS
+ AddDigitalSignatureCMS
v4.7.2
512
true
@@ -45,7 +45,7 @@
-
+
diff --git a/Security/AddDigitalSignature/AddDigitalSignature.sln b/Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.sln
similarity index 91%
rename from Security/AddDigitalSignature/AddDigitalSignature.sln
rename to Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.sln
index fb572c5..ccaef93 100644
--- a/Security/AddDigitalSignature/AddDigitalSignature.sln
+++ b/Security/AddDigitalSignatureCMS/AddDigitalSignatureCMS.sln
@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35818.85
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddDigitalSignature", "AddDigitalSignature.csproj", "{3790CE63-DB43-4F16-8226-BDFEFA25BCDD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddDigitalSignatureCMS", "AddDigitalSignatureCMS.csproj", "{3790CE63-DB43-4F16-8226-BDFEFA25BCDD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Security/AddDigitalSignature/App.config b/Security/AddDigitalSignatureCMS/App.config
similarity index 100%
rename from Security/AddDigitalSignature/App.config
rename to Security/AddDigitalSignatureCMS/App.config
diff --git a/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.cs b/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.cs
new file mode 100644
index 0000000..f4f8726
--- /dev/null
+++ b/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Datalogics.PDFL;
+
+/*
+ *
+ * This sample program demonstrates the use of AddDigitalSignature for RFC3161 timestamp signature type.
+ *
+ * Copyright (c) 2025, Datalogics, Inc. All rights reserved.
+ *
+ */
+namespace AddDigitalSignatureRFC3161
+{
+ class AddDigitalSignatureRFC3161
+ {
+ static void Main(string[] args)
+ {
+ Console.WriteLine("AddDigitalSignatureRFC3161 Sample:");
+
+ using (new Library())
+ {
+ Console.WriteLine("Initialized the library.");
+
+ String sInput = Library.ResourceDirectory + "Sample_Input/CreateAcroForm2h.pdf";
+
+ String sOutput = "DigSigRFC3161-out.pdf";
+
+ if (args.Length > 0)
+ sInput = args[0];
+
+ if (args.Length > 1)
+ sOutput = args[1];
+
+ Console.WriteLine("Input file: " + sInput);
+ Console.WriteLine("Writing to output: " + sOutput);
+
+ using (Document doc = new Document(sInput))
+ {
+ using (Datalogics.PDFL.SignDoc sigDoc = new Datalogics.PDFL.SignDoc())
+ {
+ // Setup Sign params
+ sigDoc.FieldID = SignatureFieldID.SearchForFirstUnsignedField;
+
+ // Set signing attributes
+ sigDoc.DigestCategory = DigestCategory.Sha256;
+
+ // Set the signature type to be used, RFC3161/TimeStamp.
+ // The available types are defined in the SignatureType enum. Default CMS.
+ sigDoc.DocSignType = SignatureType.RFC3161;
+
+ // Setup Save params
+ sigDoc.OutputPath = sOutput;
+
+ // Finally, sign and save the document
+ sigDoc.AddDigitalSignature(doc);
+
+ Console.WriteLine();
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.csproj b/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.csproj
new file mode 100644
index 0000000..41f0a65
--- /dev/null
+++ b/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.csproj
@@ -0,0 +1,62 @@
+
+
+
+
+ Debug
+ x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}
+ Exe
+ AddDigitalSignatureRFC3161
+ AddDigitalSignatureRFC3161
+ v4.7.2
+ 512
+ true
+ true
+
+
+
+
+ x64
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x64
+ pdbonly
+ false
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 18.*
+
+
+
+
+
+
+
diff --git a/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.sln b/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.sln
new file mode 100644
index 0000000..1ec98b9
--- /dev/null
+++ b/Security/AddDigitalSignatureRFC3161/AddDigitalSignatureRFC3161.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35818.85
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddDigitalSignatureRFC3161", "AddDigitalSignatureRFC3161.csproj", "{74FA984E-AB89-475A-9077-9D612DE12AEC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Debug|x64.ActiveCfg = Debug|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Debug|x64.Build.0 = Debug|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Release|x64.ActiveCfg = Release|x64
+ {74FA984E-AB89-475A-9077-9D612DE12AEC}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {08DC1B85-4756-4272-B76A-197A8E79394D}
+ EndGlobalSection
+EndGlobal
diff --git a/Security/AddDigitalSignatureRFC3161/App.config b/Security/AddDigitalSignatureRFC3161/App.config
new file mode 100644
index 0000000..aad6a5e
--- /dev/null
+++ b/Security/AddDigitalSignatureRFC3161/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Security/README.md b/Security/README.md
index 7bf8293..b960e4f 100644
--- a/Security/README.md
+++ b/Security/README.md
@@ -1,6 +1,9 @@
-## ***AddDigitalSignature***
+## ***AddDigitalSignatureCMS***
Demonstrates adding a digital signature with a logo to a PDF document.
+## ***AddDigitalSignatureRFC3161***
+Demonstrates adding an RFC3161 timestamp signature to a PDF document.
+
## ***AddRegexRedaction***
Uses a regular expression to find a specified phrase of text in a PDF document and then redacts that text.