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) Get Certificates within XML SignatureDemonstrates how to get the certificates contained within an XML signature.
Use ChilkatAx-win32.pkg Procedure Test Variant vSbXml Handle hoSbXml Boolean iSuccess Handle hoDsig Integer i Variant vSaCerts Handle hoSaCerts Handle hoCert Boolean iBVerifyReferenceDigests Boolean iBVerified Integer j String sTemp1 Integer iTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbXml If (Not(IsComObjectCreated(hoSbXml))) Begin Send CreateComObject of hoSbXml End // Load XML containing one or more signatures. Get ComLoadFile Of hoSbXml "qa_data/xml_dsig_valid_samples/multipleSigners/sp.pdf.XAdES.xml" "utf-8" To iSuccess If (iSuccess = False) Begin Showln "Failed to load the XML file.." Procedure_Return End Get Create (RefClass(cComChilkatXmlDSig)) To hoDsig If (Not(IsComObjectCreated(hoDsig))) Begin Send CreateComObject of hoDsig End // First load the XML containing the signatures to be verified. // Note that this particular Signature already contains the RSA public key that will be used // for verification. Get pvComObject of hoSbXml to vSbXml Get ComLoadSignatureSb Of hoDsig vSbXml To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoDsig To sTemp1 Showln sTemp1 Procedure_Return End // For each signature, verify and also get the certificate(s) contained within each Signature. Move 0 To i Get Create (RefClass(cComCkStringArray)) To hoSaCerts If (Not(IsComObjectCreated(hoSaCerts))) Begin Send CreateComObject of hoSaCerts End Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComNumSignatures Of hoDsig To iTemp1 Showln "numSignatures = " iTemp1 While (i < (ComNumSignatures(hoDsig))) // Select the Nth signature by setting the Selector property. Set ComSelector Of hoDsig To i Move True To iBVerifyReferenceDigests Get ComVerifySignature Of hoDsig iBVerifyReferenceDigests To iBVerified Showln "Signature " (i + 1) " verified = " iBVerified // Get the certificates embedded in this signature. Send ComClear To hoSaCerts Get pvComObject of hoSaCerts to vSaCerts Get ComGetCerts Of hoDsig vSaCerts To iSuccess If (iSuccess = True) Begin Move 0 To j While (j < (ComCount(hoSaCerts))) Get ComGetString Of hoSaCerts j To sTemp1 Get ComLoadFromBase64 Of hoCert sTemp1 To iSuccess If (iSuccess = True) Begin Get ComSubjectDN Of hoCert To sTemp1 Showln " " sTemp1 End Move (j + 1) To j Loop End Move (i + 1) To i Loop End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.