Sample code for 30+ languages & platforms
PureBasic

Load a Public Key from BinData

Demonstrates the Chilkat PublicKey.LoadBd method, which loads a public key from the bytes in a BinData. The only argument is the BinData, which may contain binary DER or any textual representation recognized by LoadFromString.

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

Background: When key bytes are already in memory — downloaded, extracted from a container, or pulled from a database — this loads them directly with no temporary file. It applies the same content inspection as the string and file loaders, so it accepts both binary DER and any recognized text form. It is the in-memory counterpart to LoadFromFile.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkBinData.pb"
IncludeFile "CkPublicKey.pb"

Procedure ChilkatExample()

    success.i = 0

    ;  Demonstrates the PublicKey.LoadBd method, which loads a public key from the bytes in a BinData.
    ;  The only argument is the BinData, which may contain binary DER or any textual representation
    ;  recognized by LoadFromString.

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

    success = CkBinData::ckLoadFile(bd,"qa_data/public.der")
    If success = 0
        Debug CkBinData::ckLastErrorText(bd)
        CkBinData::ckDispose(bd)
        ProcedureReturn
    EndIf

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

    success = CkPublicKey::ckLoadBd(pubKey,bd)
    If success = 0
        Debug CkPublicKey::ckLastErrorText(pubKey)
        CkBinData::ckDispose(bd)
        CkPublicKey::ckDispose(pubKey)
        ProcedureReturn
    EndIf

    Debug "Loaded a " + CkPublicKey::ckKeyType(pubKey) + " public key."


    CkBinData::ckDispose(bd)
    CkPublicKey::ckDispose(pubKey)


    ProcedureReturn
EndProcedure