2020-06-18 15:09:03 +00:00
|
|
|
'use strict'
|
2019-08-13 15:00:27 +00:00
|
|
|
|
2017-01-24 10:41:06 +00:00
|
|
|
// Based on https://github.com/dchest/tweetnacl-js/blob/6dcbcaf5f5cbfd313f2dcfe763db35c828c8ff5b/nacl-fast.js.
|
|
|
|
|
2017-02-12 02:37:17 +00:00
|
|
|
var sodium = module.exports
|
2017-01-24 10:41:06 +00:00
|
|
|
|
|
|
|
// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.
|
|
|
|
// Public domain.
|
|
|
|
//
|
|
|
|
// Implementation derived from TweetNaCl version 20140427.
|
|
|
|
// See for details: http://tweetnacl.cr.yp.to/
|
|
|
|
|
2017-06-19 20:32:33 +00:00
|
|
|
// also forwarded at the bottom but randombytes is non-enumerable
|
2017-01-24 10:41:06 +00:00
|
|
|
|
2020-06-18 15:09:03 +00:00
|
|
|
sodium.sodium_memzero = function (arr) {
|
|
|
|
arr.fill(0)
|
2017-01-24 10:41:06 +00:00
|
|
|
}
|
|
|
|
|
2020-06-18 15:09:03 +00:00
|
|
|
sodium.sodium_malloc = function (n) {
|
|
|
|
return new Uint8Array(n)
|
2017-06-06 19:04:50 +00:00
|
|
|
}
|
|
|
|
|
2020-06-18 15:09:03 +00:00
|
|
|
forward(require('./crypto_box'))
|
2017-06-06 19:04:36 +00:00
|
|
|
forward(require('./crypto_generichash'))
|
2020-06-18 15:09:03 +00:00
|
|
|
forward(require('./crypto_hash'))
|
|
|
|
forward(require('./crypto_hash_sha256'))
|
2017-06-07 20:38:40 +00:00
|
|
|
forward(require('./crypto_kdf'))
|
2020-06-18 15:09:03 +00:00
|
|
|
forward(require('./crypto_kx'))
|
|
|
|
forward(require('./crypto_aead'))
|
|
|
|
forward(require('./crypto_onetimeauth'))
|
|
|
|
forward(require('./crypto_scalarmult'))
|
|
|
|
forward(require('./crypto_secretbox'))
|
2017-06-12 08:05:49 +00:00
|
|
|
forward(require('./crypto_shorthash'))
|
2020-06-18 15:09:03 +00:00
|
|
|
forward(require('./crypto_sign'))
|
2017-06-28 09:11:38 +00:00
|
|
|
forward(require('./crypto_stream'))
|
2020-06-18 15:09:03 +00:00
|
|
|
forward(require('./crypto_stream_chacha20'))
|
|
|
|
forward(require('./crypto_verify'))
|
|
|
|
forward(require('./randombytes'))
|
2017-01-24 10:41:06 +00:00
|
|
|
|
2017-06-06 19:04:36 +00:00
|
|
|
function forward (submodule) {
|
|
|
|
Object.keys(submodule).forEach(function (prop) {
|
|
|
|
module.exports[prop] = submodule[prop]
|
|
|
|
})
|
|
|
|
}
|