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;