Sample code for 30+ languages & platforms
Rust Requires Chilkat v11.0.0+

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

Rust

let rsa = chilkat::Rsa::new();

// Load the .snk and return the private key as XML.
let Ok(xml_str) = rsa.snk_to_xml("./test.snk") else {
    println!("{}", rsa.last_error_text());
    return;
};

let priv_key = chilkat::PrivateKey::new();
if priv_key.load_xml(&xml_str).is_err() {
    println!("{}", priv_key.last_error_text());
    return;
}

if rsa.use_private_key(&priv_key).is_err() {
    println!("{}", rsa.last_error_text());
    return;
}

// Sign the SHA-256 hash of the utf-8 byte representation of the contents of sb
// Return the signature in base64 format.
rsa.set_encoding_mode("base64");
rsa.set_charset("utf-8");
let Ok(sig_base64) = rsa.sign_string_enc("This is the text to be hashed and signed.", "sha256") else {
    println!("{}", rsa.last_error_text());
    return;
};

println!("RSA signature as base64: {}", sig_base64);