Sample code for 30+ languages & platforms
PureBasic

UN/EDIFACT Syntax Level A Encoding/Decoding

See more Encryption Examples

Demonstrates the new "eda" encoding that can be used throughout Chilkat starting in v9.5.0.65.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkCrypt2.pb"

Procedure ChilkatExample()

    ; Note: Requires Chilkat v9.5.0.65 or greater.

    sb.i = CkStringBuilder::ckCreate()
    If sb.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkStringBuilder::ckAppend(sb,"The 5 men of 223rd St")
    Debug CkStringBuilder::ckGetAsString(sb)

    ; Encode the utf-8 byte representation of the string in the 
    ; UN/EDIFACT syntax level A character set.
    CkStringBuilder::ckEncode(sb,"eda","utf-8")
    Debug CkStringBuilder::ckGetAsString(sb)

    ; EDA Output should be: BTME027FCF6CFARFI94JT6.)F(14KJ2U

    ; Decode back to the original string.
    CkStringBuilder::ckDecode(sb,"eda","utf-8")
    Debug CkStringBuilder::ckGetAsString(sb)
    Debug "----"

    ; The following requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    ; The "eda" encoding can be used anywhere within Chilkat.
    ; For example, with the Crypt2 API
    crypt.i = CkCrypt2::ckCreate()
    If crypt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkCrypt2::setCkCryptAlgorithm(crypt, "aes")
    CkCrypt2::setCkCipherMode(crypt, "cbc")
    CkCrypt2::setCkKeyLength(crypt, 256)
    CkCrypt2::setCkEncodingMode(crypt, "eda")

    ivHex.s = "000102030405060708090A0B0C0D0E0F"
    CkCrypt2::ckSetEncodedIV(crypt,ivHex,"hex")
    keyHex.s = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
    CkCrypt2::ckSetEncodedKey(crypt,keyHex,"hex")

    encStr.s = CkCrypt2::ckEncryptStringENC(crypt,"The quick brown fox jumps over the lazy dog.")
    ; The output is UN/EDIFACT syntax level A 
    Debug encStr

    ; Now decrypt:
    decStr.s = CkCrypt2::ckDecryptStringENC(crypt,encStr)
    Debug decStr


    CkStringBuilder::ckDispose(sb)
    CkCrypt2::ckDispose(crypt)


    ProcedureReturn
EndProcedure