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

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

Rust

// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

let priv_key = chilkat::PrivateKey::new();

let sb_pem = chilkat::StringBuilder::new();
let _ = sb_pem.append_line("-----BEGIN RSA PRIVATE KEY-----", true);
let _ = sb_pem.append_line("MIIC .... j5A==", true);
let _ = sb_pem.append_line("-----END RSA PRIVATE KEY-----", true);

if priv_key.load_pem(&sb_pem.get_as_string().unwrap_or_default()).is_err() {
    println!("{}", priv_key.last_error_text());
    return;
}

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

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

let bd = chilkat::BinData::new();
let _ = bd.append_string("12345678", "utf-8");

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

// Get the base64 RSA signature.
println!("{}", bd.get_encoded("base64").unwrap_or_default());

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

let str_original = bd.get_string("utf-8").unwrap_or_default();
println!("{}", str_original);