Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.0.0+

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