MattS
0
Q:

fortuna based rng js

var os = require('os');
if (os.platform() == 'win32') {  
    if (os.arch() == 'ia32') {
        var chilkat = require('@chilkat/ck-node11-win-ia32');
    } else {
        var chilkat = require('@chilkat/ck-node11-win64'); 
    }
} else if (os.platform() == 'linux') {
    if (os.arch() == 'arm') {
        var chilkat = require('@chilkat/ck-node11-arm');
    } else if (os.arch() == 'x86') {
        var chilkat = require('@chilkat/ck-node11-linux32');
    } else {
        var chilkat = require('@chilkat/ck-node11-linux64');
    }
} else if (os.platform() == 'darwin') {
    var chilkat = require('@chilkat/ck-node11-macosx');
}

function chilkatExample() {

    // All Chilkat classes can be unlocked at once at the beginning of a program
    // by calling UnlockBundle.  It requires a Bundle unlock code.
    var chilkatGlob = new chilkat.Global();
    var success = chilkatGlob.UnlockBundle("Anything for 30-day trial.");
    if (success !== true) {
        console.log(chilkatGlob.LastErrorText);
        return;
    }

    var fortuna = new chilkat.Prng();

    // Before beginning to generate random data, 
    // the PRNG (Pseudo Random Number Generator) should
    // be seeded with real random data (also known as "entropy").

    // Note: Accumulating real random data can be difficult
    // and time-consuming to collect.  It is for this reason
    // that pseudorandom data (i.e. a PRNG) is used.  The pseudorandom data generator
    // is seeded with entropy.  In addition, new entropy can (and should)
    // be periodically added as more pseudorandom data is generated.

    // Get 32 bytes of system entropy.  On Linux/Unix systems, this reads
    // from /dev/random.  On MS Windows systems, it uses the Crypto API's 
    // CryptGenRandom function.
    var strEntropy = fortuna.GetEntropy(32,"hex");
    if (fortuna.LastMethodSuccess !== true) {
        console.log(fortuna.LastErrorText);
        return;
    }

    // Seed the PRNG with this entropy:
    success = fortuna.AddEntropy(strEntropy,"hex");
    if (success !== true) {
        console.log(fortuna.LastErrorText);
        return;
    }

    // Generate some random data:
    var strRandHex = fortuna.GenRandom(16,"hex");
    var strRandBase64 = fortuna.GenRandom(22,"base64");
    var strRandBase58 = fortuna.GenRandom(32,"base58");

    console.log("hex random bytes: " + strRandHex);
    console.log("base64 random bytes: " + strRandBase64);
    console.log("base58 random bytes: " + strRandBase58);

}

chilkatExample();

0

New to Communities?

Join the community