Sample code for 30+ languages & platforms
PureBasic

Create PKCS1 RSA Signature with PEM Private Key

See more RSA Examples

Demonstrates how to load a private key from a PEM file and create a PKCS1 RSA digital signature.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkPrivateKey.pb"
IncludeFile "CkRsa.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    ; Load the private key from an RSA PEM file:
    success = CkPrivateKey::ckLoadPemFile(pkey,"pvkey2_rsa.pem")
    If success = 0
        Debug CkPrivateKey::ckLastErrorText(pkey)
        CkPrivateKey::ckDispose(pkey)
        ProcedureReturn
    EndIf

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

    ; Import the private key into the RSA object:
    success = CkRsa::ckUsePrivateKey(rsa,pkey)
    If success = 0
        Debug CkRsa::ckLastErrorText(rsa)
        CkPrivateKey::ckDispose(pkey)
        CkRsa::ckDispose(rsa)
        ProcedureReturn
    EndIf

    ; Get the signature as hex.
    CkRsa::setCkEncodingMode(rsa, "hex")

    strData.s = "This is the string to be signed."

    ; Sign the string using the sha-1 hash algorithm.
    ; Other valid choices are "md2", "md5", "sha256",
    ; "sha384", and "sha512".
    hexSig.s = CkRsa::ckSignStringENC(rsa,strData,"sha-1")

    Debug hexSig

    Debug "Success!"


    CkPrivateKey::ckDispose(pkey)
    CkRsa::ckDispose(rsa)


    ProcedureReturn
EndProcedure