1
mirror of https://github.com/jedisct1/libsodium.git synced 2024-12-19 18:15:18 -07:00

Add a pre-js script for providing /dev/urandom to tests in Javascript.

Not plugged to the build system yet.
This commit is contained in:
Frank Denis 2013-07-07 22:04:13 -07:00
parent c06e228867
commit 43132738d2

33
test/default/pre.js Normal file
View File

@ -0,0 +1,33 @@
try {
this['Module'] = Module;
Module.test;
} catch(e) {
this['Module'] = Module = {};
}
Module['preRun'] = Module['preRun'] || [];
Module['preRun'].push(function(){
var randombyte = null;
try {
function randombyte_standard() {
var buf = new Int8Array(1);
window.crypto.getRandomValues(buf);
return buf[0];
}
randombyte_standard();
randombyte = randombyte_standard;
} catch (e) {
try {
var crypto = require('crypto');
function randombyte_node() {
return crypto.randomBytes(1)[0];
}
randombyte_node();
randombyte = randombyte_node;
} catch(e) { }
}
FS.init();
var devFolder = FS.findObject('/dev') ||
Module['FS_createFolder']('/', 'dev', true, true);
Module['FS_createDevice'](devFolder, 'random', randombyte);
Module['FS_createDevice'](devFolder, 'urandom', randombyte);
});