Stop bringing Fp functions into scope

Performance overhead is probably negligible (except for minified size).
Might change this later.
This commit is contained in:
Miguel Oliveira 2022-03-01 20:36:55 -03:00
parent 7fa854c06b
commit 981cd0dec9
No known key found for this signature in database
GPG key ID: 2C2BE789E1377025

View file

@ -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