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 00000000..e8e2456b
Binary files /dev/null and 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 differ
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.");
+ }
+ }
+ }
+ }
+
+}