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