Sample code for 30+ languages & platforms
PureBasic

Convert DSA PEM Private Key to DER

See more DSA Examples

Converts a DSA private key from PEM format to DER. The first part of the example will convert an unencrypted PEM to DER, then 2nd part will convert an encrypted PEM to unencrypted DER.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkDsa.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    ; Load a PEM private key.
    pemPrivateKey.s
    pemPrivateKey = CkDsa::ckLoadText(dsa,"dsa_priv.pem")
    ; Import the unencrypted PEM into the DSA object.
    success = CkDsa::ckFromPem(dsa,pemPrivateKey)
    If success <> 1
        Debug CkDsa::ckLastErrorText(dsa)
        CkDsa::ckDispose(dsa)
        ProcedureReturn
    EndIf

    ; Write it out as a DER file:
    success = CkDsa::ckToDerFile(dsa,"dsa_priv.der")
    If success <> 1
        Debug CkDsa::ckLastErrorText(dsa)
        CkDsa::ckDispose(dsa)
        ProcedureReturn
    EndIf

    ; Load an encrypted PEM private key.
    pemPrivateKey = CkDsa::ckLoadText(dsa,"dsa_privEncrypted.pem")
    ; Import the encrypted PEM into the DSA object.
    success = CkDsa::ckFromEncryptedPem(dsa,"myPassword",pemPrivateKey)
    If success <> 1
        Debug CkDsa::ckLastErrorText(dsa)
        CkDsa::ckDispose(dsa)
        ProcedureReturn
    EndIf

    ; Write it out as an unencrypted DER file:
    success = CkDsa::ckToDerFile(dsa,"dsa_priv2.der")
    If success <> 1
        Debug CkDsa::ckLastErrorText(dsa)
        CkDsa::ckDispose(dsa)
        ProcedureReturn
    EndIf

    Debug "Finished!"


    CkDsa::ckDispose(dsa)


    ProcedureReturn
EndProcedure