commit
9d7943920f
|
@ -95,7 +95,7 @@ if not string.pack or pcall(string.dump, string.pack) then
|
||||||
local w = {}
|
local w = {}
|
||||||
for i in fmt:gmatch("I([%d]+)") do
|
for i in fmt:gmatch("I([%d]+)") do
|
||||||
local n = tonumber(i) or 4
|
local n = tonumber(i) or 4
|
||||||
assert(n > 0 and n <= 4, "integral size out of limits")
|
assert(n > 0 and n <= 16, "integral size out of limits")
|
||||||
w[#w + 1] = n
|
w[#w + 1] = n
|
||||||
end
|
end
|
||||||
return fn(w, e == ">")
|
return fn(w, e == ">")
|
||||||
|
|
|
@ -30,6 +30,7 @@ end
|
||||||
--- Mixes extra entropy into the generator state.
|
--- Mixes extra entropy into the generator state.
|
||||||
--- @param data string The additional entropy to mix.
|
--- @param data string The additional entropy to mix.
|
||||||
local function mix(data)
|
local function mix(data)
|
||||||
|
expect(1, data, "string")
|
||||||
state = blake3.digestKeyed(state, data)
|
state = blake3.digestKeyed(state, data)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -39,7 +40,7 @@ end
|
||||||
local function random(len)
|
local function random(len)
|
||||||
expect(1, len, "number")
|
expect(1, len, "number")
|
||||||
lassert(initialized, "attempt to use an uninitialized random generator", 2)
|
lassert(initialized, "attempt to use an uninitialized random generator", 2)
|
||||||
local msg = ("\0"):rep(len + 32)
|
local msg = ("\0"):rep(math.max(len, 0) + 32)
|
||||||
local nonce = ("\0"):rep(12)
|
local nonce = ("\0"):rep(12)
|
||||||
local out = chacha20.crypt(state, nonce, msg, 8, 0)
|
local out = chacha20.crypt(state, nonce, msg, 8, 0)
|
||||||
state = out:sub(1, 32)
|
state = out:sub(1, 32)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
--- General utilities for handling byte strings.
|
--- General utilities for handling byte strings.
|
||||||
|
|
||||||
local expect = require "cc.expect".expect
|
local expect = require "cc.expect".expect
|
||||||
local random = require "cryptolib.random"
|
local random = require "ccryptolib.random"
|
||||||
local poly1305 = require "ccryptolib.poly1305"
|
local poly1305 = require "ccryptolib.poly1305"
|
||||||
|
|
||||||
--- Returns the hexadecimal version of a string.
|
--- Returns the hexadecimal version of a string.
|
||||||
|
|
Loading…
Reference in a new issue