add: crypto_box_seed_keypair
This commit is contained in:
parent
7d7249ddc2
commit
84bf4229e4
@ -1,8 +1,24 @@
|
|||||||
const { crypto_hash_sha512 } = require('./crypto_hash')
|
const { crypto_hash_sha512 } = require('./crypto_hash')
|
||||||
|
const { crypto_scalarmult, crypto_scalarmult_base } = require('./crypto_scalarmult')
|
||||||
|
const { randombytes } = require('./randombytes')
|
||||||
|
const { crypto_generichash_batch } = require('./crypto_generichash')
|
||||||
|
const { crypto_secretbox_open_easy, crypto_secretbox_easy } = require('./crypto_secretbox')
|
||||||
|
const xsalsa20 = require('xsalsa20')
|
||||||
const { memzero } = require('./')
|
const { memzero } = require('./')
|
||||||
|
|
||||||
|
var crypto_box_PUBLICKEYBYTES = 32,
|
||||||
|
crypto_box_SECRETKEYBYTES = 32,
|
||||||
|
crypto_box_BEFORENMBYTES = 32,
|
||||||
|
crypto_box_NONCEBYTES = 24,
|
||||||
|
crypto_box_ZEROBYTES = 32,
|
||||||
|
crypto_box_BOXZEROBYTES = 16,
|
||||||
|
crypto_box_SEALBYTES = 48,
|
||||||
|
crypto_box_SEEDBYTES = 32,
|
||||||
|
crypto_box_BEFORENMBYTES = 32
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
crypto_box_keypair,
|
crypto_box_keypair,
|
||||||
|
crypto_box_seed_keypair,
|
||||||
crypto_box_seal,
|
crypto_box_seal,
|
||||||
crypto_box_seal_open,
|
crypto_box_seal_open,
|
||||||
crypto_box_PUBLICKEYBYTES,
|
crypto_box_PUBLICKEYBYTES,
|
||||||
@ -12,6 +28,7 @@ module.exports = {
|
|||||||
crypto_box_ZEROBYTES,
|
crypto_box_ZEROBYTES,
|
||||||
crypto_box_BOXZEROBYTES,
|
crypto_box_BOXZEROBYTES,
|
||||||
crypto_box_SEALBYTES,
|
crypto_box_SEALBYTES,
|
||||||
|
crypto_box_SEEDBYTES,
|
||||||
crypto_box_BEFORENMBYTES
|
crypto_box_BEFORENMBYTES
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +46,7 @@ function crypto_box_seed_keypair(pk, sk, seed) {
|
|||||||
|
|
||||||
const hash = Buffer.alloc(64)
|
const hash = Buffer.alloc(64)
|
||||||
crypto_hash_sha512(hash, seed, 32)
|
crypto_hash_sha512(hash, seed, 32)
|
||||||
sk.set(hash, 0, 0, 32)
|
hash.copy(sk, 0, 0, 32)
|
||||||
memzero(hash)
|
memzero(hash)
|
||||||
|
|
||||||
return crypto_scalarmult_base(pk, sk)
|
return crypto_scalarmult_base(pk, sk)
|
||||||
@ -44,7 +61,7 @@ function crypto_box_seal(c, m, pk) {
|
|||||||
crypto_box_keypair(epk, esk)
|
crypto_box_keypair(epk, esk)
|
||||||
|
|
||||||
var n = new Uint8Array(crypto_box_NONCEBYTES)
|
var n = new Uint8Array(crypto_box_NONCEBYTES)
|
||||||
sodium.crypto_generichash_batch(n, [ epk, pk ])
|
crypto_generichash_batch(n, [ epk, pk ])
|
||||||
|
|
||||||
var s = new Uint8Array(crypto_box_PUBLICKEYBYTES)
|
var s = new Uint8Array(crypto_box_PUBLICKEYBYTES)
|
||||||
crypto_scalarmult(s, esk, pk)
|
crypto_scalarmult(s, esk, pk)
|
||||||
@ -67,7 +84,7 @@ function crypto_box_seal_open(m, c, pk, sk) {
|
|||||||
var epk = c.subarray(0, crypto_box_PUBLICKEYBYTES)
|
var epk = c.subarray(0, crypto_box_PUBLICKEYBYTES)
|
||||||
|
|
||||||
var n = new Uint8Array(crypto_box_NONCEBYTES)
|
var n = new Uint8Array(crypto_box_NONCEBYTES)
|
||||||
sodium.crypto_generichash_batch(n, [ epk, pk ])
|
crypto_generichash_batch(n, [ epk, pk ])
|
||||||
|
|
||||||
var s = new Uint8Array(crypto_box_PUBLICKEYBYTES)
|
var s = new Uint8Array(crypto_box_PUBLICKEYBYTES)
|
||||||
crypto_scalarmult(s, sk, epk)
|
crypto_scalarmult(s, sk, epk)
|
||||||
@ -83,11 +100,6 @@ function check (buf, len) {
|
|||||||
if (!buf || (len && buf.length < len)) throw new Error('Argument must be a buffer' + (len ? ' of length ' + len : ''))
|
if (!buf || (len && buf.length < len)) throw new Error('Argument must be a buffer' + (len ? ' of length ' + len : ''))
|
||||||
}
|
}
|
||||||
|
|
||||||
var crypto_box_PUBLICKEYBYTES = 32,
|
function cleanup(arr) {
|
||||||
crypto_box_SECRETKEYBYTES = 32,
|
for (var i = 0; i < arr.length; i++) arr[i] = 0;
|
||||||
crypto_box_BEFORENMBYTES = 32,
|
}
|
||||||
crypto_box_NONCEBYTES = 24,
|
|
||||||
crypto_box_ZEROBYTES = 32,
|
|
||||||
crypto_box_BOXZEROBYTES = 16,
|
|
||||||
crypto_box_SEALBYTES = 48,
|
|
||||||
crypto_box_BEFORENMBYTES = 32
|
|
||||||
|
Loading…
Reference in New Issue
Block a user