PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/tweetnacl-ts/es
Просмотр файла: secretbox.js
import { ByteArray } from './array';
import { _verify_16 } from './verify';
import { _stream_xor, _stream } from './salsa20';
import { poly1305_init, poly1305_update, poly1305_finish } from './poly1305';
import { checkArrayTypes, checkLengths } from './check';
export function secretbox(msg, nonce, key) {
checkArrayTypes(msg, nonce, key);
checkLengths(key, nonce);
var m = ByteArray(32 /* Zero */ + msg.length);
var c = 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 */);
}
export function secretbox_open(box, nonce, key) {
checkArrayTypes(box, nonce, key);
checkLengths(key, nonce);
var c = ByteArray(16 /* Overhead */ + box.length);
var m = 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 */);
}
// low level
function _secretbox(c, m, d, n, k) {
if (d < 32)
return -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 = ByteArray(32);
if (d < 32)
return -1;
_stream(x, 0, 32, n, k);
if (_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0)
return -1;
_stream_xor(m, 0, c, 0, d, n, k);
for (var i = 0; i < 32; i++)
m[i] = 0;
return 0;
}
export function _onetimeauth(out, outpos, m, mpos, n, k) {
var s = poly1305_init(k);
poly1305_update(s, m, mpos, n);
poly1305_finish(s, out, outpos);
return 0;
}
function _onetimeauth_verify(h, hpos, m, mpos, n, k) {
var x = ByteArray(16);
_onetimeauth(x, 0, m, mpos, n, k);
return _verify_16(h, hpos, x, 0);
}
//# sourceMappingURL=secretbox.js.mapВыполнить команду
Для локальной разработки. Не используйте в интернете!