Sample code for 30+ languages & platforms
DataFlex

Compress EBICS SignaturePubKeyOrderData XML

See more EBICS Examples

This example provides a note about how to compress the SignaturePubKeyOrderData XML for EBICS.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoFac
    String sStrXml
    Handle hoCompress
    String sB64CompressedStr

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // We have this XML to be compressed and then encoded in Base64.

    // <?xml version="1.0" encoding="UTF-8"?>
    // <SignaturePubKeyOrderData xmlns="http://www.ebics.org/S001" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ebics.org/S001 http://www.ebics.org/S001/ebics_signature.xsd">
    // <SignaturePubKeyInfo>
    // <ds:X509Data>
    // <ds:X509IssuerSerial>
    // <ds:X509IssuerName>ABCDEF eID User</ds:X509IssuerName>
    // <ds:X509SerialNumber>153594950300874710199347185895388116050</ds:X509SerialNumber>
    // </ds:X509IssuerSerial>
    // <ds:X509Certificate>MIIJTzCC...xzKyukE=</ds:X509Certificate>
    // </ds:X509Data>
    // <PubKeyValue>
    // <ds:RSAKeyValue><ds:Modulus>zedQEG0gNItQRG17p7CwiSv/N9YUBOzswEnfNSiNirQgb0bfWWAvCXOg7057WTCBMxOe7AHE7rLTTQFRHY2AEqSV1fj8iL7i186XnGQOFjsdVP3LBLV319HhoUIugaZOC5AbnDouq2Femr53NDK4fqYVI6skrvNo9LO4+8IBRNtR8lQudG+ABHCqIkrNjai1pXrjfEhvyAhz0URhqP00i3AUGD3BasM28uFhcNztqSfO/jp5xQOTAjSr2gCgwg9hJV5mVnOazwAEbWmKkW+NZGICrSdoyrJ+UKjbbhL6VI1woe2YufCYqYF0ec8bXdE9KlhHj+XjeaME3k/uBq22Kw==</ds:Modulus><ds:Exponent>AQAB</ds:Exponent></ds:RSAKeyValue>
    // <TimeStamp>2015-03-06T18:42:24.376+01:00</TimeStamp>
    // </PubKeyValue>
    // <SignatureVersion>A005</SignatureVersion>
    // </SignaturePubKeyInfo>
    // <PartnerID>XKB99999</PartnerID>
    // <UserID>XKB99999</UserID>
    // </SignaturePubKeyOrderData>  

    Get Create (RefClass(cComCkFileAccess)) To hoFac
    If (Not(IsComObjectCreated(hoFac))) Begin
        Send CreateComObject of hoFac
    End
    Get ComReadEntireTextFile Of hoFac "qa_data/ebics/SignaturePubKeyOrderData.xml" "utf-8" To sStrXml
    // Assuming the above statement succeeded...

    Get Create (RefClass(cComChilkatCompression)) To hoCompress
    If (Not(IsComObjectCreated(hoCompress))) Begin
        Send CreateComObject of hoCompress
    End

    // EBICS wants the deflate algorithm with the zlib header...
    Set ComAlgorithm Of hoCompress To "zlib"
    Set ComEncodingMode Of hoCompress To "base64"

    Get ComCompressStringENC Of hoCompress sStrXml To sB64CompressedStr

    Showln sB64CompressedStr


End_Procedure