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

RSASSA-PSS Algorithm with SHA256 Hashing

See more RSA Examples

RSA encrypt a SHA256 hash with OAEP padding.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set privkey [new_CkPrivateKey]

#  Load the private key object from a PEM file.
#  (To load from a PEM string, call LoadPem instead.)
set success [CkPrivateKey_LoadPemFile $privkey "somePath/myPrivateKey.pem"]
if {$success == 0} then {
    puts [CkPrivateKey_lastErrorText $privkey]
    delete_CkPrivateKey $privkey
    exit
}

set rsa [new_CkRsa]

#  Use RSA-PSS by setting PkcsPadding = 0
CkRsa_put_PkcsPadding $rsa 0
#  Use SHA256
CkRsa_put_OaepHash $rsa "SHA-256"

CkRsa_UsePrivateKey $rsa $privkey

#  Generate a base64 signature.
CkRsa_put_EncodingMode $rsa "base64"

set sigStr [CkRsa_signStringENC $rsa "String to be signed" "SHA-256"]
if {[CkRsa_get_LastMethodSuccess $rsa] == 0} then {
    puts [CkRsa_lastErrorText $rsa]
    delete_CkPrivateKey $privkey
    delete_CkRsa $rsa
    exit
}

puts "Signature: $sigStr"

delete_CkPrivateKey $privkey
delete_CkRsa $rsa