Sample code for 30+ languages & platforms
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

Tcl

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