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
(VBScript) Decrypt a govtalk.gov.uk SOAP GovTalkMessageDemonstrates how to decrypt the content contained in the XML of a GovTalkMessage SOAP response.
Dim fso, outFile Set fso = CreateObject("Scripting.FileSystemObject") 'Create a Unicode (utf-16) output text file. Set outFile = fso.CreateTextFile("output.txt", True, True) ' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' The GovTalkMessage response looks something like this: ' <?xml version="1.0" encoding="utf-8"?> ' <GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope"> ' <EnvelopeVersion>3.1</EnvelopeVersion> ' <Header> ' <MessageDetails> ' <Class>CSSZ_DZDPN</Class> ' <Qualifier>request</Qualifier> ' <Function>submit</Function> ' <TransactionID /> ' <AuditID /> ' <CorrelationID>aaaaa</CorrelationID> ' <ResponseEndPoint PollInterval="0" /> ' <Transformation>XML</Transformation> ' <GatewayTest /> ' <GatewayTimestamp /> ' </MessageDetails> ' <SenderDetails> ' <IDAuthentication> ' <SenderID /> ' <Authentication> ' <Method>clear</Method> ' <Role /> ' <Value /> ' </Authentication> ' </IDAuthentication> ' <X509Certificate /> ' <EmailAddress>somebody@example.com</EmailAddress> ' </SenderDetails> ' </Header> ' <GovTalkDetails> ' <Keys> ' <Key Type="vars">9999999999</Key> ' </Keys> ' <GatewayAdditions> ' <Source>VREP</Source> ' </GatewayAdditions> ' </GovTalkDetails> ' <Body> ' <Message xmlns="http://www.cssz.cz/XMLSchema/envelope" version="1.2" eType="DZDPN20"> ' <Header> ' <Signature xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">MIIJ0A ... UMw= ' </Signature> ' <Vendor productName="some product name" version="2019" /> ' </Header> ' <Body xmlns:dt="urn:schemas-microsoft-com:datatypes" encrypted="yes" contentEncoding="gzip" dt:dt="bin.base64">MIIF2w ... N2vW</Body> ' </Message> ' </Body> ' </GovTalkMessage> ' We want to get the content of the Body and decrypt it. ' First, let's get the content of the Body XML element, which is a base64 string starting with MIIF2w... ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Xml") set xml = CreateObject("Chilkat.Xml") success = xml.LoadXmlFile("qa_data/xml/govTalkMessageResponse.xml") If (success = 0) Then outFile.WriteLine(xml.LastErrorText) WScript.Quit End If Body = xml.GetChildContent("Body|Message|Body") outFile.WriteLine(Body) ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Cert") set cert = CreateObject("Chilkat.Cert") success = cert.LoadPfxFile("qa_data/pfx/govTalkMessage_aaa.pfx","aaa") If (success = 0) Then outFile.WriteLine(cert.LastErrorText) WScript.Quit End If ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Crypt2") set crypt = CreateObject("Chilkat.Crypt2") crypt.CryptAlgorithm = "pki" success = crypt.SetDecryptCert(cert) If (success = 0) Then outFile.WriteLine(crypt.LastErrorText) WScript.Quit End If ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.BinData") set bd = CreateObject("Chilkat.BinData") ' Append the bytes to bd. success = bd.AppendEncoded(Body,"base64") ' Decrypt in-place. success = crypt.DecryptBd(bd) If (success = 0) Then outFile.WriteLine(crypt.LastErrorText) WScript.Quit End If ' Save the decrypted data to a file. success = bd.WriteFile("qa_output/out.dat") ' If the decrypted data is non-text (binary) then we can examine it in an encoding, such as hex: outFile.WriteLine("Decrypted bytes as hex: " & bd.GetEncoded("hex")) outFile.Close |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.