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
(DataFlex) 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.
Use ChilkatAx-win32.pkg Procedure Test Handle hoCrypt Variant vCert Handle hoCert Boolean iSuccess Variant vBd Handle hoBd Variant vBd 2 Handle hoBd2 String sTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End // If loading from a smart card, set the smartcard PIN. Set ComSmartCardPin Of hoCert To "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.. Get ComLoadFromSmartcard Of hoCert "" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End Get pvComObject of hoCert to vCert Get ComSetSigningCert Of hoCrypt vCert To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCrypt To sTemp1 Showln sTemp1 Procedure_Return End // 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.) Get Create (RefClass(cComChilkatBinData)) To hoBd If (Not(IsComObjectCreated(hoBd))) Begin Send CreateComObject of hoBd End Get ComLoadFile Of hoBd "qa_data/p7s/cosign/sample.pdf.p7s" To iSuccess If (iSuccess = False) Begin Showln "Failed to load pdf.p7s input file." Procedure_Return End // bd2 will contain the co-signed result. Get Create (RefClass(cComChilkatBinData)) To hoBd2 If (Not(IsComObjectCreated(hoBd2))) Begin Send CreateComObject of hoBd2 End Get pvComObject of hoBd to vBd Get pvComObject of hoCert to vCert Get pvComObject of hoBd2 to vBd2 Get ComCoSign Of hoCrypt vBd vCert vBd2 To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCrypt To sTemp1 Showln sTemp1 Procedure_Return End Get ComWriteFile Of hoBd "qa_output/cosigned.pdf.p7s" To iSuccess If (iSuccess = False) Begin Showln "Failed to save pdf.p7s output file." Procedure_Return End Showln "Success!" End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.