Sample code for 30+ languages & platforms
Tcl

RSA Sign using Base64 Private Key

See more RSA Examples

Signs a string using a non-encrypted RSA private key in base64 encoding. Returns the RSA signature as a base64 string.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set privKey [new_CkPrivateKey]

set sbPem [new_CkStringBuilder]

CkStringBuilder_AppendLine $sbPem "-----BEGIN RSA PRIVATE KEY-----" 1
CkStringBuilder_AppendLine $sbPem "MIIC .... j5A==" 1
CkStringBuilder_AppendLine $sbPem "-----END RSA PRIVATE KEY-----" 1

set success [CkPrivateKey_LoadPem $privKey [CkStringBuilder_getAsString $sbPem]]
if {$success == 0} then {
    puts [CkPrivateKey_lastErrorText $privKey]
    delete_CkPrivateKey $privKey
    delete_CkStringBuilder $sbPem
    exit
}

set rsa [new_CkRsa]

set success [CkRsa_UsePrivateKey $rsa $privKey]
if {$success == 0} then {
    puts [CkRsa_lastErrorText $rsa]
    delete_CkPrivateKey $privKey
    delete_CkStringBuilder $sbPem
    delete_CkRsa $rsa
    exit
}

set bd [new_CkBinData]

CkBinData_AppendString $bd "12345678" "utf-8"

set success [CkRsa_SignRawBd $rsa $bd]
if {$success == 0} then {
    puts [CkRsa_lastErrorText $rsa]
    delete_CkPrivateKey $privKey
    delete_CkStringBuilder $sbPem
    delete_CkRsa $rsa
    delete_CkBinData $bd
    exit
}

# Get the base64 RSA signature.
puts [CkBinData_getEncoded $bd base64]

set success [CkRsa_VerifyRawBd $rsa $bd]
if {$success == 0} then {
    puts [CkRsa_lastErrorText $rsa]
    delete_CkPrivateKey $privKey
    delete_CkStringBuilder $sbPem
    delete_CkRsa $rsa
    delete_CkBinData $bd
    exit
}

set strOriginal [CkBinData_getString $bd "utf-8"]
puts "$strOriginal"

delete_CkPrivateKey $privKey
delete_CkStringBuilder $sbPem
delete_CkRsa $rsa
delete_CkBinData $bd