PureBasic
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
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