![]()  | 
  
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
 
      (VB.NET) Decrypt a govtalk.gov.uk SOAP GovTalkMessageDemonstrates how to decrypt the content contained in the XML of a GovTalkMessage SOAP response. 
 ' 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... Dim xml As New Chilkat.Xml Dim success As Boolean = xml.LoadXmlFile("qa_data/xml/govTalkMessageResponse.xml") If (success = False) Then Debug.WriteLine(xml.LastErrorText) Exit Sub End If Dim Body As String = xml.GetChildContent("Body|Message|Body") Debug.WriteLine(Body) Dim cert As New Chilkat.Cert success = cert.LoadPfxFile("qa_data/pfx/govTalkMessage_aaa.pfx","aaa") If (success = False) Then Debug.WriteLine(cert.LastErrorText) Exit Sub End If Dim crypt As New Chilkat.Crypt2 crypt.CryptAlgorithm = "pki" success = crypt.SetDecryptCert(cert) If (success = False) Then Debug.WriteLine(crypt.LastErrorText) Exit Sub End If Dim bd As New Chilkat.BinData ' Append the bytes to bd. success = bd.AppendEncoded(Body,"base64") ' Decrypt in-place. success = crypt.DecryptBd(bd) If (success = False) Then Debug.WriteLine(crypt.LastErrorText) Exit Sub 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: Debug.WriteLine("Decrypted bytes as hex: " & bd.GetEncoded("hex"))  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.