correction: crypto_kx is not actually an alias of crypto_box

This commit is contained in:
Christophe Diederichs 2020-06-16 15:54:44 +02:00
parent 67a4ba77cb
commit f969d1f707
2 changed files with 31 additions and 3 deletions

View File

@ -1,9 +1,36 @@
const { crypto_box_keypair, crypto_box_seed_keypair } = require('./crypto_box') const { crypto_scalarmult_base } = require('./crypto_scalarmult')
const { crypto_generichash } = require('./crypto_generichash')
const { randombytes_buf } = require('./randombytes')
var crypto_kx_SEEDBYTES = 32
var crypto_kx_PUBLICKEYBYTES = 32
var crypto_kx_SECRETKEYBYTES = 32
function crypto_kx_keypair (pk, sk) { function crypto_kx_keypair (pk, sk) {
return crypto_box_keypair(pk, sk) check(pk, crypto_kx_PUBLICKEYBYTES)
check(sk, crypto_kx_SECRETKEYBYTES)
randombytes_buf(sk, crypto_kx_SECRETKEYBYTES)
return crypto_scalarmult_base(pk, sk)
} }
function crypto_kx_seed_keypair (pk, sk, seed) { function crypto_kx_seed_keypair (pk, sk, seed) {
return crypto_box_seed_keypair(pk, sk, seed) check(pk, crypto_kx_PUBLICKEYBYTES)
check(sk, crypto_kx_SECRETKEYBYTES)
check(seed, crypto_kx_SEEDBYTES)
crypto_generichash(sk, seed)
return crypto_scalarmult_base(pk, sk)
}
function check (buf, len) {
if (!buf || (len && buf.length < len)) throw new Error('Argument must be a buffer' + (len ? ' of length ' + len : ''))
}
module.exports = {
crypto_kx_keypair,
crypto_kx_seed_keypair,
crypto_kx_SEEDBYTES,
crypto_kx_SECRETKEYBYTES,
crypto_kx_PUBLICKEYBYTES
} }

View File

@ -29,6 +29,7 @@ forward(require('./crypto_box'))
forward(require('./crypto_generichash')) forward(require('./crypto_generichash'))
forward(require('./crypto_hash')) forward(require('./crypto_hash'))
forward(require('./crypto_kdf')) forward(require('./crypto_kdf'))
forward(require('./crypto_kx'))
forward(require('./crypto_onetimeauth')) forward(require('./crypto_onetimeauth'))
forward(require('./crypto_scalarmult')) forward(require('./crypto_scalarmult'))
forward(require('./crypto_secretbox')) forward(require('./crypto_secretbox'))