Software /
code /
prosody
Changeset
12110:b5b799a2a10c
util.id: Adjust entropy levels, with rationales
Modules using ids for logging should not need the now pretty large
medium one.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 02 Dec 2021 01:14:55 +0100 |
parents | 12109:83bec90a352c |
children | 12111:f8d280215633 |
files | net/server_epoll.lua net/unbound.lua plugins/mod_scansion_record.lua util/id.lua |
diffstat | 4 files changed, 17 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/net/server_epoll.lua Tue Oct 05 18:15:06 2021 +0200 +++ b/net/server_epoll.lua Thu Dec 02 01:14:55 2021 +0100 @@ -26,7 +26,7 @@ local inet = require "util.net"; local inet_pton = inet.pton; local _SOCKETINVALID = socket._SOCKETINVALID or -1; -local new_id = require "util.id".medium; +local new_id = require "util.id".short; local xpcall = require "util.xpcall".xpcall; local poller = require "util.poll"
--- a/net/unbound.lua Tue Oct 05 18:15:06 2021 +0200 +++ b/net/unbound.lua Thu Dec 02 01:14:55 2021 +0100 @@ -18,7 +18,7 @@ local net_server = require "net.server"; local libunbound = require"lunbound"; local promise = require"util.promise"; -local new_id = require "util.id".medium; +local new_id = require "util.id".short; local gettime = require"socket".gettime; local dns_utils = require"util.dns";
--- a/plugins/mod_scansion_record.lua Tue Oct 05 18:15:06 2021 +0200 +++ b/plugins/mod_scansion_record.lua Thu Dec 02 01:14:55 2021 +0100 @@ -8,7 +8,7 @@ local dm = require "util.datamanager"; local st = require "util.stanza"; -local record_id = id.medium():lower(); +local record_id = id.short():lower(); local record_date = os.date("%Y%b%d"):lower(); local header_file = dm.getpath(record_id, "scansion", record_date, "scs", true); local record_file = dm.getpath(record_id, "scansion", record_date, "log", true);
--- a/util/id.lua Tue Oct 05 18:15:06 2021 +0200 +++ b/util/id.lua Thu Dec 02 01:14:55 2021 +0100 @@ -17,9 +17,20 @@ end return { - short = function () return b64url_random(6); end; - medium = function () return b64url_random(12); end; - long = function () return b64url_random(24); end; + -- sizes divisible by 3 fit nicely into base64 without padding== + + -- close to 8 bytes, should be good enough for relatively short lived or uses + -- scoped by host or users, half the size of an uuid + short = function() return b64url_random(9); end; + + -- more entropy than uuid at 2/3 the size + -- should be okay for globally scoped ids or security token + medium = function() return b64url_random(18); end; + + -- as long as an uuid but MOAR entropy + long = function() return b64url_random(27); end; + + -- pick your own adventure custom = function (size) return function () return b64url_random(size); end; end;