Stop bringing Fp functions into scope
Performance overhead is probably negligible (except for minified size). Might change this later.
This commit is contained in:
parent
7fa854c06b
commit
981cd0dec9
41
x25519.lua
41
x25519.lua
|
@ -1,29 +1,20 @@
|
||||||
local expect = require "cc.expect".expect
|
local expect = require "cc.expect".expect
|
||||||
local fp = require "ccryptolib.fp"
|
local fp = require "ccryptolib.fp"
|
||||||
|
|
||||||
local add = fp.add
|
|
||||||
local sub = fp.sub
|
|
||||||
local kmul = fp.kmul
|
|
||||||
local mul = fp.mul
|
|
||||||
local square = fp.square
|
|
||||||
local invert = fp.invert
|
|
||||||
local encode = fp.encode
|
|
||||||
local decode = fp.decode
|
|
||||||
|
|
||||||
local function step(dx, x1, z1, x2, z2)
|
local function step(dx, x1, z1, x2, z2)
|
||||||
local a = add(x1, z1)
|
local a = fp.add(x1, z1)
|
||||||
local aa = square(a)
|
local aa = fp.square(a)
|
||||||
local b = sub(x1, z1)
|
local b = fp.sub(x1, z1)
|
||||||
local bb = square(b)
|
local bb = fp.square(b)
|
||||||
local e = sub(aa, bb)
|
local e = fp.sub(aa, bb)
|
||||||
local c = add(x2, z2)
|
local c = fp.add(x2, z2)
|
||||||
local d = sub(x2, z2)
|
local d = fp.sub(x2, z2)
|
||||||
local da = mul(d, a)
|
local da = fp.mul(d, a)
|
||||||
local cb = mul(c, b)
|
local cb = fp.mul(c, b)
|
||||||
local x4 = square(add(da, cb))
|
local x4 = fp.square(fp.add(da, cb))
|
||||||
local z4 = mul(dx, square(sub(da, cb)))
|
local z4 = fp.mul(dx, fp.square(fp.sub(da, cb)))
|
||||||
local x3 = mul(aa, bb)
|
local x3 = fp.mul(aa, bb)
|
||||||
local z3 = mul(e, add(bb, kmul(e, 121666)))
|
local z3 = fp.mul(e, fp.add(bb, fp.kmul(e, 121666)))
|
||||||
return x3, z3, x4, z4
|
return x3, z3, x4, z4
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -40,7 +31,7 @@ local function x25519(dx, bits)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return mul(x1, invert(z1))
|
return fp.mul(x1, fp.invert(z1))
|
||||||
end
|
end
|
||||||
|
|
||||||
local function bits(str)
|
local function bits(str)
|
||||||
|
@ -72,7 +63,7 @@ function mod.publicKey(sk)
|
||||||
expect(1, sk, "string")
|
expect(1, sk, "string")
|
||||||
assert(#sk == 32, "secret key length must be 32")
|
assert(#sk == 32, "secret key length must be 32")
|
||||||
|
|
||||||
return encode(x25519({9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, bits(sk)))
|
return fp.encode(x25519({9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, bits(sk)))
|
||||||
end
|
end
|
||||||
|
|
||||||
function mod.exchange(sk, pk)
|
function mod.exchange(sk, pk)
|
||||||
|
@ -81,7 +72,7 @@ function mod.exchange(sk, pk)
|
||||||
expect(2, pk, "string")
|
expect(2, pk, "string")
|
||||||
assert(#pk == 32, "public key length must be 32")
|
assert(#pk == 32, "public key length must be 32")
|
||||||
|
|
||||||
return encode(x25519(decode(pk), bits(sk)))
|
return fp.encode(x25519(fp.decode(pk), bits(sk)))
|
||||||
end
|
end
|
||||||
|
|
||||||
return mod
|
return mod
|
||||||
|
|
Loading…
Reference in a new issue