Sample code for 30+ languages & platforms
PureBasic

RSA Signature SHA256withRSA, iso-8859-1, base64

See more RSA Examples

RSA sign the iso-8859-1 byte representation of a string with SHA256withRSA, and return the signature in the base64 encoding.

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

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

    ; This example will duplicate the following Java code:
    ; 
    ; Signature sign = Signature.getInstance("SHA256withRSA");
    ; sign.initSign(privateKey);
    ; sign.update(original.getBytes(Charset.forName("ISO-8859-1")));
    ; 
    ; ...
    ; byte[] resultado = sign.sign();
    ; sello = encodeByteArrayToBase64(resultado);
    ; 

    ; Load an RSA private key for signing.
    ; You can load any format file.  This example loads a .pem, but you can provide path to any type of file holding a private key.
    privKey.i = CkPrivateKey::ckCreate()
    If privKey.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkPrivateKey::ckLoadAnyFormatFile(privKey,"qa_data/pem/rsa_passwd.pem","passwd")
    If success = 0
        Debug CkPrivateKey::ckLastErrorText(privKey)
        CkPrivateKey::ckDispose(privKey)
        ProcedureReturn
    EndIf

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

    CkRsa::ckUsePrivateKey(rsa,privKey)

    originalData.s = "This is the string to be hashed an RSA signed."

    ; Indicate that we want the iso-8859-1 byte representation of the string to be signed
    CkRsa::setCkCharset(rsa, "iso-8859-1")

    ; We want the RSA signature in base64 format
    CkRsa::setCkEncodingMode(rsa, "base64")

    sigBase64.s = CkRsa::ckSignStringENC(rsa,originalData,"sha256")
    Debug sigBase64


    CkPrivateKey::ckDispose(privKey)
    CkRsa::ckDispose(rsa)


    ProcedureReturn
EndProcedure