From 03c2db100f50bfb0d0e9c593939319d5bd8ee7e3 Mon Sep 17 00:00:00 2001 From: Miguel Oliveira Date: Tue, 1 Mar 2022 20:27:22 -0300 Subject: [PATCH] Fix module imports --- aead.lua | 7 +++---- fq.lua | 34 ++++++++++++++++++++++++++++++---- x25519.lua | 2 +- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/aead.lua b/aead.lua index ee640eb..ee2ff2d 100644 --- a/aead.lua +++ b/aead.lua @@ -1,7 +1,6 @@ -local expect = require "cc.expect".expect - -local chacha20 = require "ecnet.primitives.chacha20" -local poly1305 = require "ecnet.primitives.poly1305" +local expect = require "cc.expect".expect +local chacha20 = require "ccryptolib.chacha20" +local poly1305 = require "ccryptolib.poly1305" local bxor = bit32.bxor local bor = bit32.bor diff --git a/fq.lua b/fq.lua index 830480d..20e6865 100644 --- a/fq.lua +++ b/fq.lua @@ -1,13 +1,39 @@ --- Arithmetic on Curve25519's scalar field. -- --- @module ecnet.primitives.scalar +-- @module ccryptolib.fq -- -local util = require "ecnet.util" - -local rebaseLE = util.rebaseLE local unpack = unpack or table.unpack +--- Converts a little-endian array from one power-of-two base to another. +-- +-- @tparam {number...} a The array to convert, in little-endian. +-- @tparam number base1 The base to convert from. Must be a power of 2. +-- @tparam number base2 The base to convert to. Must be a power of 2. +-- @treturn {number...} +-- +local function rebaseLE(a, base1, base2) + local out = {} + local outlen = 1 + local acc = 0 + local mul = 1 + for i = 1, #a do + acc = acc + a[i] * mul + mul = mul * base1 + while mul >= base2 do + local rem = acc % base2 + acc = (acc - rem) / base2 + mul = mul / base2 + out[outlen] = rem + outlen = outlen + 1 + end + end + if mul > 0 then + out[outlen] = acc + end + return out +end + --- The scalar field's order, q. local Q = { 16110573, diff --git a/x25519.lua b/x25519.lua index fa57676..fca2ae3 100644 --- a/x25519.lua +++ b/x25519.lua @@ -1,5 +1,5 @@ local expect = require "cc.expect".expect -local fp = require "ecnet.primitives.fp" +local fp = require "ccryptolib.fp" local add = fp.add local sub = fp.sub