From 0a3151163432e319c02a23c2005393833ac1ff55 Mon Sep 17 00:00:00 2001 From: Irfana Jaffer Sadhik Date: Mon, 1 Sep 2025 18:07:51 +0530 Subject: [PATCH 1/3] commit code samples --- ...rieve-signer-data-from-the-. p7m-files.sln | 25 ++++++++ .../Data/XCORE-DocumentoTest.pdf.p7m | Bin 0 -> 12163 bytes ...ve-signer-data-from-the-. p7m-files.csproj | 15 +++++ .../Program.cs | 59 ++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln create mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Data/XCORE-DocumentoTest.pdf.p7m create mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj create mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln new file mode 100644 index 00000000..72ffeef4 --- /dev/null +++ b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36401.2 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "How-to-retrieve-signer-data-from-the-. p7m-files", "How-to-retrieve-signer-data-from-the-. p7m-files\How-to-retrieve-signer-data-from-the-. p7m-files.csproj", "{F0EB3137-9B02-4781-8770-250AAECA4DC6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4CB798B6-B529-4ED0-8F9E-C5F26579318D} + EndGlobalSection +EndGlobal diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Data/XCORE-DocumentoTest.pdf.p7m b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Data/XCORE-DocumentoTest.pdf.p7m new file mode 100644 index 0000000000000000000000000000000000000000..5e4cd0ba90ee4012e3da2b1657a6b1a140e00d33 GIT binary patch literal 12163 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 BF*pDK literal 0 HcmV?d00001 diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj new file mode 100644 index 00000000..5c7cfc79 --- /dev/null +++ b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + How_to_retrieve_signer_data_from_the_._p7m_files + enable + enable + + + + + + + diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs new file mode 100644 index 00000000..4cc47eed --- /dev/null +++ b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs @@ -0,0 +1,59 @@ +using System.Security.Cryptography; +using System.Security.Cryptography.Pkcs; +using System.Security.Cryptography.X509Certificates; + +namespace How_to_retrieve_signer_data_from_the_. p7m_files +{ + internal class Program + { + static void Main(string[] args) + { + // Load the signed CMS (assumes signedCmsBytes contains the Signed CMS data) + byte[] signedCmsBytes = File.ReadAllBytes(Path.GetFullPath("Data/XCORE-DocumentoTest.pdf.p7m")); + + SignedCms signedCms = new SignedCms(); + + // Decode the Signed CMS data + signedCms.Decode(signedCmsBytes); + + // Verify the signature without considering the certificate chain + signedCms.CheckSignature(true); + + // Extract the original content + byte[] originalMessage = signedCms.ContentInfo.Content; + File.WriteAllBytes(Path.GetFullPath("Data/Decoded.pdf"), originalMessage); + + // Extract signer information + foreach (SignerInfo signerInfo in signedCms.SignerInfos) + { + // Get the signing certificate + X509Certificate2 signerCertificate = signerInfo.Certificate; + + // Extract signer's name + string signerName = signerCertificate?.Subject ?? "Unknown Signer"; + Console.WriteLine($"Signer Name: {signerName}"); + + // Extract signing date (signing time attribute) + Pkcs9SigningTime signingTime = null; + foreach (var data in from CryptographicAttributeObject attr in signerInfo.SignedAttributes + from AsnEncodedData data in attr.Values + where data is Pkcs9SigningTime + select data) + { + signingTime = (Pkcs9SigningTime)data; + break; + } + + if (signingTime != null) + { + Console.WriteLine($"Signing Time: {signingTime.SigningTime}"); + } + else + { + Console.WriteLine("Signing Time: Not available in the attributes."); + } + } + } + } + +} From 7c13fd04bee79a8ff177459f01cdc518a08b49e6 Mon Sep 17 00:00:00 2001 From: Irfana Jaffer Sadhik Date: Thu, 6 Nov 2025 16:02:34 +0530 Subject: [PATCH 2/3] Task-929640- committed the sample --- ...d-Certificate-Metadata-from-p7m-Files.slnx | 3 + .../Data/TestCert.pdf.p7s | Bin 0 -> 6398 bytes ...Certificate-Metadata-from-p7m-Files.csproj | 16 +++++ .../Program.cs | 59 ++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.slnx create mode 100644 Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Data/TestCert.pdf.p7s create mode 100644 Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.csproj create mode 100644 Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Program.cs diff --git a/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.slnx b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.slnx new file mode 100644 index 00000000..12475b3f --- /dev/null +++ b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.slnx @@ -0,0 +1,3 @@ + + + diff --git a/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Data/TestCert.pdf.p7s b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Data/TestCert.pdf.p7s new file mode 100644 index 0000000000000000000000000000000000000000..e8e2456bc57bfff324fcbf5f852cb5537fb50119 GIT binary patch literal 6398 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 Hjo|+PWM&*j literal 0 HcmV?d00001 diff --git a/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.csproj b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.csproj new file mode 100644 index 00000000..85ddcbe8 --- /dev/null +++ b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files.csproj @@ -0,0 +1,16 @@ + + + + Exe + net8.0 + Extract_PDF_Content_and_Certificate_Metadata_from_p7m_Files + enable + enable + + + + + + + + diff --git a/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Program.cs b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Program.cs new file mode 100644 index 00000000..f7696590 --- /dev/null +++ b/Digital Signature/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Extract-PDF-Content-and-Certificate-Metadata-from-p7m-Files/Program.cs @@ -0,0 +1,59 @@ +using System.Security.Cryptography; +using System.Security.Cryptography.Pkcs; +using System.Security.Cryptography.X509Certificates; + +namespace ConsoleApp +{ + internal class Program + { + static void Main(string[] args) + { + // Load the signed CMS (assumes signedCmsBytes contains the Signed CMS data) + byte[] signedCmsBytes = File.ReadAllBytes("../../../TestCert.pdf.p7s"); + + SignedCms signedCms = new SignedCms(); + + // Decode the Signed CMS data + signedCms.Decode(signedCmsBytes); + + // Verify the signature without considering the certificate chain + signedCms.CheckSignature(true); + + // Extract the original content + byte[] originalMessage = signedCms.ContentInfo.Content; + File.WriteAllBytes("D://Decoded.pdf", originalMessage); + + // Extract signer information + foreach (SignerInfo signerInfo in signedCms.SignerInfos) + { + // Get the signing certificate + X509Certificate2 signerCertificate = signerInfo.Certificate; + + // Extract signer's name + string signerName = signerCertificate?.Subject ?? "Unknown Signer"; + Console.WriteLine($"Signer Name: {signerName}"); + + // Extract signing date (signing time attribute) + Pkcs9SigningTime signingTime = null; + foreach (var data in from CryptographicAttributeObject attr in signerInfo.SignedAttributes + from AsnEncodedData data in attr.Values + where data is Pkcs9SigningTime + select data) + { + signingTime = (Pkcs9SigningTime)data; + break; + } + + if (signingTime != null) + { + Console.WriteLine($"Signing Time: {signingTime.SigningTime}"); + } + else + { + Console.WriteLine("Signing Time: Not available in the attributes."); + } + } + } + } + +} From 3b1ea03bc00fe286036db01b47375ebcbcb5f7d6 Mon Sep 17 00:00:00 2001 From: Irfana Jaffer Sadhik Date: Thu, 6 Nov 2025 16:05:28 +0530 Subject: [PATCH 3/3] committed the changes --- ...rieve-signer-data-from-the-. p7m-files.sln | 25 -------- .../Data/XCORE-DocumentoTest.pdf.p7m | Bin 12163 -> 0 bytes ...ve-signer-data-from-the-. p7m-files.csproj | 15 ----- .../Program.cs | 59 ------------------ 4 files changed, 99 deletions(-) delete mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln delete mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Data/XCORE-DocumentoTest.pdf.p7m delete mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj delete mode 100644 Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln deleted file mode 100644 index 72ffeef4..00000000 --- a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.14.36401.2 d17.14 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "How-to-retrieve-signer-data-from-the-. p7m-files", "How-to-retrieve-signer-data-from-the-. p7m-files\How-to-retrieve-signer-data-from-the-. p7m-files.csproj", "{F0EB3137-9B02-4781-8770-250AAECA4DC6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0EB3137-9B02-4781-8770-250AAECA4DC6}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4CB798B6-B529-4ED0-8F9E-C5F26579318D} - EndGlobalSection -EndGlobal diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Data/XCORE-DocumentoTest.pdf.p7m b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Data/XCORE-DocumentoTest.pdf.p7m deleted file mode 100644 index 5e4cd0ba90ee4012e3da2b1657a6b1a140e00d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12163 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 BF*pDK diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj deleted file mode 100644 index 5c7cfc79..00000000 --- a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - Exe - net8.0 - How_to_retrieve_signer_data_from_the_._p7m_files - enable - enable - - - - - - - diff --git a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs b/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs deleted file mode 100644 index 4cc47eed..00000000 --- a/Digital Signature/How-to-retrieve-signer-data-from-the-. p7m-files/How-to-retrieve-signer-data-from-the-. p7m-files/Program.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Security.Cryptography; -using System.Security.Cryptography.Pkcs; -using System.Security.Cryptography.X509Certificates; - -namespace How_to_retrieve_signer_data_from_the_. p7m_files -{ - internal class Program - { - static void Main(string[] args) - { - // Load the signed CMS (assumes signedCmsBytes contains the Signed CMS data) - byte[] signedCmsBytes = File.ReadAllBytes(Path.GetFullPath("Data/XCORE-DocumentoTest.pdf.p7m")); - - SignedCms signedCms = new SignedCms(); - - // Decode the Signed CMS data - signedCms.Decode(signedCmsBytes); - - // Verify the signature without considering the certificate chain - signedCms.CheckSignature(true); - - // Extract the original content - byte[] originalMessage = signedCms.ContentInfo.Content; - File.WriteAllBytes(Path.GetFullPath("Data/Decoded.pdf"), originalMessage); - - // Extract signer information - foreach (SignerInfo signerInfo in signedCms.SignerInfos) - { - // Get the signing certificate - X509Certificate2 signerCertificate = signerInfo.Certificate; - - // Extract signer's name - string signerName = signerCertificate?.Subject ?? "Unknown Signer"; - Console.WriteLine($"Signer Name: {signerName}"); - - // Extract signing date (signing time attribute) - Pkcs9SigningTime signingTime = null; - foreach (var data in from CryptographicAttributeObject attr in signerInfo.SignedAttributes - from AsnEncodedData data in attr.Values - where data is Pkcs9SigningTime - select data) - { - signingTime = (Pkcs9SigningTime)data; - break; - } - - if (signingTime != null) - { - Console.WriteLine($"Signing Time: {signingTime.SigningTime}"); - } - else - { - Console.WriteLine("Signing Time: Not available in the attributes."); - } - } - } - } - -}