Sample code for 30+ languages & platforms
PureBasic

RSA Sign with PKCS8 Encrypted Key

See more RSA Examples

Demonstrates how to load a private key from an encrypted PKCS8 file and create an 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::ckLoadPkcs8EncryptedFile(pkey,"privateKey.key","myPassword")

    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

    ; Return the signature in 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", "sha256", "sha384", "sha512",  and "md5".
    hexSig.s = CkRsa::ckSignStringENC(rsa,strData,"sha-1")

    Debug hexSig


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


    ProcedureReturn
EndProcedure