Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) 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.
#include <CkAsn.h> #include <CkXml.h> void ChilkatSample(void) { CkString strOut; CkAsn asn; bool success; // Begin with loading ASN.1 from a binary DER/BER format file. success = asn.LoadBinaryFile("/Users/chilkat/testData/p7b/test.p7b"); if (success != true) { strOut.append(asn.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Convert ASN.1 to XML: const char *strXml = asn.asnToXml(); if (asn.get_LastMethodSuccess() != true) { strOut.append(asn.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // The XML returned by AsnToXml will be compact and not pretty-formatted. // Use Chilkat XML to format the XML better: CkXml xml; success = xml.LoadXml(strXml); // Assuming success for this example.. // This is formatted better for human viewing: strOut.append(xml.getXml()); strOut.append("\r\n"); // 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. const char *strBase64 = asn.getEncodedDer("base64"); // Load the ASN.1 from XML: CkAsn asn2; success = asn2.LoadAsnXml(xml.getXml()); if (success != true) { strOut.append(asn2.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Load the ASN.1 from an encoded string, such as base64: CkAsn asn3; success = asn3.LoadEncoded(strBase64,"base64"); if (success != true) { strOut.append(asn3.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.