PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/tweetnacl-ts

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var array_1 = require("./array");
var verify_1 = require("./verify");
var salsa20_1 = require("./salsa20");
var poly1305_1 = require("./poly1305");
var check_1 = require("./check");
function secretbox(msg, nonce, key) {
    check_1.checkArrayTypes(msg, nonce, key);
    check_1.checkLengths(key, nonce);
    var m = array_1.ByteArray(32 /* Zero */ + msg.length);
    var c = array_1.ByteArray(m.length);
    for (var i = 0; i < msg.length; i++)
        m[i + 32 /* Zero */] = msg[i];
    _secretbox(c, m, m.length, nonce, key);
    return c.subarray(16 /* Overhead */);
}
exports.secretbox = secretbox;
function secretbox_open(box, nonce, key) {
    check_1.checkArrayTypes(box, nonce, key);
    check_1.checkLengths(key, nonce);
    var c = array_1.ByteArray(16 /* Overhead */ + box.length);
    var m = array_1.ByteArray(c.length);
    for (var i = 0; i < box.length; i++)
        c[i + 16 /* Overhead */] = box[i];
    if (c.length < 32 /* Zero */ || _secretbox_open(m, c, c.length, nonce, key) !== 0)
        return;
    return m.subarray(32 /* Zero */);
}
exports.secretbox_open = secretbox_open;
// low level
function _secretbox(c, m, d, n, k) {
    if (d < 32)
        return -1;
    salsa20_1._stream_xor(c, 0, m, 0, d, n, k);
    _onetimeauth(c, 16, c, 32, d - 32, c);
    for (var i = 0; i < 16; i++)
        c[i] = 0;
    return 0;
}
function _secretbox_open(m, c, d, n, k) {
    var x = array_1.ByteArray(32);
    if (d < 32)
        return -1;
    salsa20_1._stream(x, 0, 32, n, k);
    if (_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0)
        return -1;
    salsa20_1._stream_xor(m, 0, c, 0, d, n, k);
    for (var i = 0; i < 32; i++)
        m[i] = 0;
    return 0;
}
function _onetimeauth(out, outpos, m, mpos, n, k) {
    var s = poly1305_1.poly1305_init(k);
    poly1305_1.poly1305_update(s, m, mpos, n);
    poly1305_1.poly1305_finish(s, out, outpos);
    return 0;
}
exports._onetimeauth = _onetimeauth;
function _onetimeauth_verify(h, hpos, m, mpos, n, k) {
    var x = array_1.ByteArray(16);
    _onetimeauth(x, 0, m, mpos, n, k);
    return verify_1._verify_16(h, hpos, x, 0);
}
//# sourceMappingURL=secretbox.js.map

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


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