use wasm implementations
This commit is contained in:
parent
facf602fdc
commit
081ca46654
@ -54,8 +54,8 @@ function _crypto_scalarmult_ed25519 (q, n, p, clamp) {
|
|||||||
var t = q.slice()
|
var t = q.slice()
|
||||||
var i
|
var i
|
||||||
|
|
||||||
// if (ec.ge25519_is_canonical(p) == 0 || ec.ge25519_has_small_order(p) != 0 ||
|
if (ec.ge25519_is_canonical(p) == 0 || ec.ge25519_has_small_order(p) != 0 ||
|
||||||
if (ec.ge25519_frombytes(P, p) != 0 || ec.ge25519_is_on_main_subgroup(P) == 0) {
|
ec.ge25519_frombytes(P, p) != 0 || ec.ge25519_is_on_main_subgroup(P) == 0) {
|
||||||
throw new Error('Invalid base point')
|
throw new Error('Invalid base point')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,6 +70,12 @@ function fe25519_pow22523 (h, f) {
|
|||||||
|
|
||||||
const base = require('./fe25519_25/base.json').map(a => a.map(b => ge2(b)))
|
const base = require('./fe25519_25/base.json').map(a => a.map(b => ge2(b)))
|
||||||
|
|
||||||
|
const curve25519_h = Buffer.from([
|
||||||
|
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
])
|
||||||
|
|
||||||
const fe25519_sqrtm1 = fe25519([
|
const fe25519_sqrtm1 = fe25519([
|
||||||
-32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482
|
-32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482
|
||||||
])
|
])
|
||||||
@ -190,7 +196,8 @@ module.exports = {
|
|||||||
ristretto255_frombytes,
|
ristretto255_frombytes,
|
||||||
ristretto255_p3_tobytes,
|
ristretto255_p3_tobytes,
|
||||||
ristretto255_elligator,
|
ristretto255_elligator,
|
||||||
ristretto255_from_hash
|
ristretto255_from_hash,
|
||||||
|
curve25519_h
|
||||||
}
|
}
|
||||||
|
|
||||||
function print_ge (g, n = 4) {
|
function print_ge (g, n = 4) {
|
||||||
|
7
index.js
7
index.js
@ -14,6 +14,7 @@ var sodium = module.exports
|
|||||||
|
|
||||||
forward(require('./crypto_box'))
|
forward(require('./crypto_box'))
|
||||||
forward(require('./crypto_core'))
|
forward(require('./crypto_core'))
|
||||||
|
forward(require('./crypto_core_ristretto255'))
|
||||||
forward(require('./crypto_generichash'))
|
forward(require('./crypto_generichash'))
|
||||||
forward(require('./crypto_hash'))
|
forward(require('./crypto_hash'))
|
||||||
forward(require('./crypto_hash_sha256'))
|
forward(require('./crypto_hash_sha256'))
|
||||||
@ -21,16 +22,18 @@ forward(require('./crypto_kdf'))
|
|||||||
forward(require('./crypto_kx'))
|
forward(require('./crypto_kx'))
|
||||||
forward(require('./crypto_aead'))
|
forward(require('./crypto_aead'))
|
||||||
forward(require('./crypto_onetimeauth'))
|
forward(require('./crypto_onetimeauth'))
|
||||||
// forward(require('./crypto_scalarmult_ed25519'))
|
forward(require('./crypto_scalarmult_ed25519'))
|
||||||
forward(require('./crypto_scalarmult'))
|
// forward(require('./crypto_scalarmult'))
|
||||||
forward(require('./crypto_secretbox'))
|
forward(require('./crypto_secretbox'))
|
||||||
forward(require('./crypto_shorthash'))
|
forward(require('./crypto_shorthash'))
|
||||||
// forward(require('./crypto_sign'))
|
// forward(require('./crypto_sign'))
|
||||||
forward(require('./crypto_sign_ed25519'))
|
forward(require('./crypto_sign_ed25519'))
|
||||||
forward(require('./crypto_stream'))
|
forward(require('./crypto_stream'))
|
||||||
forward(require('./crypto_stream_chacha20'))
|
forward(require('./crypto_stream_chacha20'))
|
||||||
|
forward(require('./crypto_tweak'))
|
||||||
forward(require('./crypto_verify'))
|
forward(require('./crypto_verify'))
|
||||||
forward(require('./randombytes'))
|
forward(require('./randombytes'))
|
||||||
|
forward(require('./utils'))
|
||||||
|
|
||||||
function forward (submodule) {
|
function forward (submodule) {
|
||||||
Object.keys(submodule).forEach(function (prop) {
|
Object.keys(submodule).forEach(function (prop) {
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"browser-run": "^4.0.2",
|
"browser-run": "^4.0.2",
|
||||||
"browserify": "^14.1.0",
|
"browserify": "^14.1.0",
|
||||||
|
"sodium-native": "^3.4.1",
|
||||||
"sodium-test": "^0.7.0"
|
"sodium-test": "^0.7.0"
|
||||||
},
|
},
|
||||||
"browser": {
|
"browser": {
|
||||||
|
Loading…
Reference in New Issue
Block a user