aboutsummaryrefslogtreecommitdiff
path: root/javascript/olm_pre.js
blob: 7153f7ab0c80aec8b9684af8f1b6a06357e9f1b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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);
};