Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

loRsa = createobject("CkRsa")

// Load the .snk and return the private key as XML.
lcXmlStr = loRsa.SnkToXml("./test.snk")
if (loRsa.LastMethodSuccess = .F.) then
    ? loRsa.LastErrorText
    release loRsa
    return
endif

loPrivKey = createobject("CkPrivateKey")
llSuccess = loPrivKey.LoadXml(lcXmlStr)
if (llSuccess = .F.) then
    ? loPrivKey.LastErrorText
    release loRsa
    release loPrivKey
    return
endif

llSuccess = loRsa.UsePrivateKey(loPrivKey)
if (llSuccess = .F.) then
    ? loRsa.LastErrorText
    release loRsa
    release loPrivKey
    return
endif

// Sign the SHA-256 hash of the utf-8 byte representation of the contents of sb
// Return the signature in base64 format.
loRsa.EncodingMode = "base64"
loRsa.Charset = "utf-8"
lcSigBase64 = loRsa.SignStringENC("This is the text to be hashed and signed.","sha256")
if (loRsa.LastMethodSuccess = .F.) then
    ? loRsa.LastErrorText
    release loRsa
    release loPrivKey
    return
endif

? "RSA signature as base64: " + lcSigBase64


release loRsa
release loPrivKey