PureBasic
PureBasic
RSASSA-PSS Algorithm with SHA256 Hashing
See more RSA Examples
RSA encrypt a SHA256 hash with OAEP padding.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.
privkey.i = CkPrivateKey::ckCreate()
If privkey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Load the private key object from a PEM file.
; (To load from a PEM string, call LoadPem instead.)
success = CkPrivateKey::ckLoadPemFile(privkey,"somePath/myPrivateKey.pem")
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
; Use RSA-PSS by setting PkcsPadding = 0
CkRsa::setCkPkcsPadding(rsa, 0)
; Use SHA256
CkRsa::setCkOaepHash(rsa, "SHA-256")
CkRsa::ckUsePrivateKey(rsa,privkey)
; Generate a base64 signature.
CkRsa::setCkEncodingMode(rsa, "base64")
sigStr.s = CkRsa::ckSignStringENC(rsa,"String to be signed","SHA-256")
If CkRsa::ckLastMethodSuccess(rsa) = 0
Debug CkRsa::ckLastErrorText(rsa)
CkPrivateKey::ckDispose(privkey)
CkRsa::ckDispose(rsa)
ProcedureReturn
EndIf
Debug "Signature: " + sigStr
CkPrivateKey::ckDispose(privkey)
CkRsa::ckDispose(rsa)
ProcedureReturn
EndProcedure