Sample code for 30+ languages & platforms
DataFlex

Convert a MIME Part's ASN.1 Body to XML

See more MIME Examples

Demonstrates the Chilkat Mime.AsnBodyToXml method, which parses the current part's decoded body as ASN.1 DER and returns an XML representation of the ASN.1 structure. It takes no arguments.

Tip: Code to parse the returned XML can be generated at Chilkat Tools.

Note: The file path is relative to the application's current working directory. Absolute paths may also be used. Supply the path to your own file.

Background: ASN.1 DER is the binary encoding behind PKCS #7/CMS structures — the signatures and encrypted blobs in S/MIME — and it is opaque to the naked eye. Rendering it as XML exposes the nested structure (content types, certificates, signer info) so you can inspect exactly what a signature or encrypted part contains. It is primarily a diagnostic and learning tool.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMime
    String sAsnXml
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    //  Demonstrates the Mime.AsnBodyToXml method, which parses the current part's decoded body as
    //  ASN.1 DER and returns an XML representation of the ASN.1 structure.  It takes no arguments.
    //  This is primarily useful for inspecting binary ASN.1 content such as PKCS #7 structures.

    Get Create (RefClass(cComChilkatMime)) To hoMime
    If (Not(IsComObjectCreated(hoMime))) Begin
        Send CreateComObject of hoMime
    End
    Get ComLoadMimeFile Of hoMime "qa_data/pkcs7_part.p7m" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMime To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComAsnBodyToXml Of hoMime To sAsnXml
    Get ComLastMethodSuccess Of hoMime To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoMime To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln sAsnXml
    //  Code to parse this XML can be generated at Chilkat's online tool:
    //  https://tools.chilkat.io/xmlParse


End_Procedure