Sample code for 30+ languages & platforms
Node.js

RSA Sign Binary Data and Verify (Recover the Original Data)

See more RSA Examples

Demonstrates how to RSA sign binary data and then verify/recover the original data.

Note: This example uses methods introduced in Chilkat v9.5.0.77.

Chilkat Node.js Downloads

Node.js
NODEJS_PRELUDE

function chilkatExample() {

    var success = false;

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

    //  Load an RSA private key for signing.
    var privKey = new chilkat.PrivateKey();
    success = privKey.LoadEncryptedPemFile("qa_data/pem/rsa_passwd.pem","passwd");
    if (success == false) {
        console.log(privKey.LastErrorText);
        return;
    }

    var rsa = new chilkat.Rsa();
    rsa.UsePrivateKey(privKey);

    //  We have some binary data (in hex) to sign
    var originalData = "0102030405060708090A";
    var bd = new chilkat.BinData();
    bd.AppendEncoded(originalData,"hex");

    //  If successful, the contents of bd are replaced with the RSA signature.
    success = rsa.SignRawBd(bd);
    if (success == false) {
        console.log(rsa.LastErrorText);
        return;
    }

    //  Show the RSA signature in base64
    console.log(bd.GetEncoded("base64"));

    //  ------------------------------------------
    //  Get the public key from the private key
    var pubKey = new chilkat.PublicKey();
    privKey.ToPublicKey(pubKey);

    //  Verify the signature and extract the original data.
    var rsa2 = new chilkat.Rsa();
    rsa2.UsePublicKey(pubKey);

    var bVerified = rsa2.VerifyRawBd(bd);
    console.log("signature verified: " + bVerified);

    //  Show the original data:
    console.log("original data: " + bd.GetEncoded("hex"));

}

chilkatExample();