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
(PureBasic) Convert ASN.1 to/from Binary DER, XML, and Base64Demonstrates how to convert ASN.1 from and to any of the following formats: binary DER, Base64, and XML.
IncludeFile "CkAsn.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() asn.i = CkAsn::ckCreate() If asn.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Begin with loading ASN.1 from a binary DER/BER format file. success = CkAsn::ckLoadBinaryFile(asn,"/Users/chilkat/testData/p7b/test.p7b") If success <> 1 Debug CkAsn::ckLastErrorText(asn) CkAsn::ckDispose(asn) ProcedureReturn EndIf ; Convert ASN.1 to XML: strXml.s = CkAsn::ckAsnToXml(asn) If CkAsn::ckLastMethodSuccess(asn) <> 1 Debug CkAsn::ckLastErrorText(asn) CkAsn::ckDispose(asn) ProcedureReturn EndIf ; The XML returned by AsnToXml will be compact and not pretty-formatted. ; Use Chilkat XML to format the XML better: xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkXml::ckLoadXml(xml,strXml) ; Assuming success for this example.. ; This is formatted better for human viewing: Debug CkXml::ckGetXml(xml) ; Now get the ASN.1 in base64 format. Any encoding supported ; by Chilkat can be passed, such as "hex", "uu", "quoted-printable", "base32", "modbase64", etc. strBase64.s = CkAsn::ckGetEncodedDer(asn,"base64") ; Load the ASN.1 from XML: asn2.i = CkAsn::ckCreate() If asn2.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkAsn::ckLoadAsnXml(asn2,CkXml::ckGetXml(xml)) If success <> 1 Debug CkAsn::ckLastErrorText(asn2) CkAsn::ckDispose(asn) CkXml::ckDispose(xml) CkAsn::ckDispose(asn2) ProcedureReturn EndIf ; Load the ASN.1 from an encoded string, such as base64: asn3.i = CkAsn::ckCreate() If asn3.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkAsn::ckLoadEncoded(asn3,strBase64,"base64") If success <> 1 Debug CkAsn::ckLastErrorText(asn3) CkAsn::ckDispose(asn) CkXml::ckDispose(xml) CkAsn::ckDispose(asn2) CkAsn::ckDispose(asn3) ProcedureReturn EndIf CkAsn::ckDispose(asn) CkXml::ckDispose(xml) CkAsn::ckDispose(asn2) CkAsn::ckDispose(asn3) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.