correction: crypto_kx is not actually an alias of crypto_box
This commit is contained in:
parent
67a4ba77cb
commit
f969d1f707
33
crypto_kx.js
33
crypto_kx.js
@ -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
|
||||||
}
|
}
|
||||||
|
1
index.js
1
index.js
@ -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'))
|
||||||
|
Loading…
Reference in New Issue
Block a user