Tcl
Tcl
RSA Signature using Private Key from .snk File
See more RSA Examples
A .snk file (Strong Name Key file) is a file format used in the .NET ecosystem to store an RSA public/private key pair. This key pair is typically used for strong-naming assemblies, which is a process of signing .NET assemblies to ensure their integrity and to uniquely identify them.This example loads a private key from a .snk file and creates an RSA signature.
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
set rsa [new_CkRsa]
# Load the .snk and return the private key as XML.
set xmlStr [CkRsa_snkToXml $rsa "./test.snk"]
if {[CkRsa_get_LastMethodSuccess $rsa] == 0} then {
puts [CkRsa_lastErrorText $rsa]
delete_CkRsa $rsa
exit
}
set privKey [new_CkPrivateKey]
set success [CkPrivateKey_LoadXml $privKey $xmlStr]
if {$success == 0} then {
puts [CkPrivateKey_lastErrorText $privKey]
delete_CkRsa $rsa
delete_CkPrivateKey $privKey
exit
}
set success [CkRsa_UsePrivateKey $rsa $privKey]
if {$success == 0} then {
puts [CkRsa_lastErrorText $rsa]
delete_CkRsa $rsa
delete_CkPrivateKey $privKey
exit
}
# Sign the SHA-256 hash of the utf-8 byte representation of the contents of sb
# Return the signature in base64 format.
CkRsa_put_EncodingMode $rsa "base64"
CkRsa_put_Charset $rsa "utf-8"
set sigBase64 [CkRsa_signStringENC $rsa "This is the text to be hashed and signed." "sha256"]
if {[CkRsa_get_LastMethodSuccess $rsa] == 0} then {
puts [CkRsa_lastErrorText $rsa]
delete_CkRsa $rsa
delete_CkPrivateKey $privKey
exit
}
puts "RSA signature as base64: $sigBase64"
delete_CkRsa $rsa
delete_CkPrivateKey $privKey