071029c201
The Pointer_stringify() function is deprecated and has a couple of issues because it tries to guess the encoding of the buffer. In some cases it can ignore the length parameter which could end up in inconsistencies. Switch to UTF8toString() that takes a length parameter and respects, that way we don't need to allocate an additional byte for a NULL byte.
41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
var get_random_values;
|
|
|
|
if (typeof(window) !== 'undefined') {
|
|
// We're in a browser (directly, via browserify, or via webpack).
|
|
get_random_values = function(buf) {
|
|
window.crypto.getRandomValues(buf);
|
|
};
|
|
} else if (module["exports"]) {
|
|
// We're running in node.
|
|
var nodeCrypto = require("crypto");
|
|
get_random_values = function(buf) {
|
|
// [''] syntax needed here rather than '.' to prevent
|
|
// closure compiler from mangling the import(!)
|
|
var bytes = nodeCrypto['randomBytes'](buf.length);
|
|
buf.set(bytes);
|
|
};
|
|
process = global["process"];
|
|
} else {
|
|
throw new Error("Cannot find global to attach library to");
|
|
}
|
|
|
|
/* applications should define OLM_OPTIONS in the environment to override
|
|
* emscripten module settings
|
|
*/
|
|
if (typeof(OLM_OPTIONS) !== 'undefined') {
|
|
for (var olm_option_key in OLM_OPTIONS) {
|
|
if (OLM_OPTIONS.hasOwnProperty(olm_option_key)) {
|
|
Module[olm_option_key] = OLM_OPTIONS[olm_option_key];
|
|
}
|
|
}
|
|
}
|
|
|
|
Module['onRuntimeInitialized'] = function() {
|
|
OLM_ERROR = Module['_olm_error']();
|
|
olm_exports["PRIVATE_KEY_LENGTH"] = Module['_olm_pk_private_key_length']();
|
|
if (onInitSuccess) onInitSuccess();
|
|
};
|
|
|
|
Module['onAbort'] = function(err) {
|
|
if (onInitFail) onInitFail(err);
|
|
};
|