Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) CoSign PKCS7/CMS Signed DataSee more Digital Signatures ExamplesDemonstrates how to add a 2nd signature to a CMS SignedData. This is to add an additional signature, SignerInfo and certificate(s) to an existing CMS signed data. In this example, we cosign an existing pdf.p7s Note: The CoSign method is added in Chilkat v9.5.0.89.
integer li_rc oleobject loo_Crypt oleobject loo_Cert integer li_Success oleobject loo_Bd oleobject loo_Bd2 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Crypt = create oleobject // Use "Chilkat_9_5_0.Crypt2" for versions of Chilkat < 10.0.0 li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2") if li_rc < 0 then destroy loo_Crypt MessageBox("Error","Connecting to COM object failed") return end if loo_Cert = create oleobject // Use "Chilkat_9_5_0.Cert" for versions of Chilkat < 10.0.0 li_rc = loo_Cert.ConnectToNewObject("Chilkat.Cert") // If loading from a smart card, set the smartcard PIN. loo_Cert.SmartCardPin = "0000" // Load a certificate in some way, such as from a smart card. // Chilkat provides other methods to load from a .pfx, .pem, or from the Windows certificate stores.. li_Success = loo_Cert.LoadFromSmartcard("") if li_Success = 0 then Write-Debug loo_Cert.LastErrorText destroy loo_Crypt destroy loo_Cert return end if li_Success = loo_Crypt.SetSigningCert(loo_Cert) if li_Success = 0 then Write-Debug loo_Crypt.LastErrorText destroy loo_Crypt destroy loo_Cert return end if // Load the file to be co-signed. // NOTE: This is to cosign a PDF file contained within a CMS (PKCS7) message. // (In other words, the PDF is contained within the CMS SignedData, rather than the other way around // where a CMS signature is contained within a PDF. Use Chilkat's PDF class to sign a PDF, which is // to embed a CMS signature within the PDF.) loo_Bd = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_Bd.ConnectToNewObject("Chilkat.BinData") li_Success = loo_Bd.LoadFile("qa_data/p7s/cosign/sample.pdf.p7s") if li_Success = 0 then Write-Debug "Failed to load pdf.p7s input file." destroy loo_Crypt destroy loo_Cert destroy loo_Bd return end if // bd2 will contain the co-signed result. loo_Bd2 = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_Bd2.ConnectToNewObject("Chilkat.BinData") li_Success = loo_Crypt.CoSign(loo_Bd,loo_Cert,loo_Bd2) if li_Success = 0 then Write-Debug loo_Crypt.LastErrorText destroy loo_Crypt destroy loo_Cert destroy loo_Bd destroy loo_Bd2 return end if li_Success = loo_Bd.WriteFile("qa_output/cosigned.pdf.p7s") if li_Success = 0 then Write-Debug "Failed to save pdf.p7s output file." destroy loo_Crypt destroy loo_Cert destroy loo_Bd destroy loo_Bd2 return end if Write-Debug "Success!" destroy loo_Crypt destroy loo_Cert destroy loo_Bd destroy loo_Bd2 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.