PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/tweetnacl-ts

Просмотр файла: curve25519.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var array_1 = require("./array");
var verify_1 = require("./verify");
var core_1 = require("./core");
function set25519(r, a) {
    for (var i = 0; i < 16; i++)
        r[i] = a[i] | 0;
}
exports.set25519 = set25519;
function car25519(o) {
    var i, v, c = 1;
    for (i = 0; i < 16; i++) {
        v = o[i] + c + 65535;
        c = Math.floor(v / 65536);
        o[i] = v - c * 65536;
    }
    o[0] += c - 1 + 37 * (c - 1);
}
function sel25519(p, q, b) {
    var t, c = ~(b - 1);
    for (var i = 0; i < 16; i++) {
        t = c & (p[i] ^ q[i]);
        p[i] ^= t;
        q[i] ^= t;
    }
}
exports.sel25519 = sel25519;
function pack25519(o, n) {
    var m = core_1.gf(), t = core_1.gf();
    var i, j, b;
    for (i = 0; i < 16; i++)
        t[i] = n[i];
    car25519(t);
    car25519(t);
    car25519(t);
    for (j = 0; j < 2; j++) {
        m[0] = t[0] - 0xffed;
        for (i = 1; i < 15; i++) {
            m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);
            m[i - 1] &= 0xffff;
        }
        m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);
        b = (m[15] >> 16) & 1;
        m[14] &= 0xffff;
        sel25519(t, m, 1 - b);
    }
    for (i = 0; i < 16; i++) {
        o[2 * i] = t[i] & 0xff;
        o[2 * i + 1] = t[i] >> 8;
    }
}
exports.pack25519 = pack25519;
function neq25519(a, b) {
    var c = array_1.ByteArray(32), d = array_1.ByteArray(32);
    pack25519(c, a);
    pack25519(d, b);
    return verify_1._verify_32(c, 0, d, 0);
}
exports.neq25519 = neq25519;
function par25519(a) {
    var d = array_1.ByteArray(32);
    pack25519(d, a);
    return d[0] & 1;
}
exports.par25519 = par25519;
function unpack25519(o, n) {
    for (var i = 0; i < 16; i++)
        o[i] = n[2 * i] + (n[2 * i + 1] << 8);
    o[15] &= 0x7fff;
}
exports.unpack25519 = unpack25519;
function inv25519(o, i) {
    var c = core_1.gf();
    var a;
    for (a = 0; a < 16; a++)
        c[a] = i[a];
    for (a = 253; a >= 0; a--) {
        core_1.S(c, c);
        if (a !== 2 && a !== 4)
            core_1.M(c, c, i);
    }
    for (a = 0; a < 16; a++)
        o[a] = c[a];
}
exports.inv25519 = inv25519;
//# sourceMappingURL=curve25519.js.map

Выполнить команду


Для локальной разработки. Не используйте в интернете!