File

teal-src/util/hashes.d.tl @ 11590:5aafb832c91b

core.portmanager: Fix race condition in initialization of SNI cert map Under some circumstances when hosts and modules are loaded in some certain order, entries end up missing from the SNI map. This manifests in e.g. `curl https://localhost:5281/` giving an error about "unrecognized name". The `service` argument is `nil` when invoked from the "host-activated" event, leading it to iterating over every service. And then it would not be fetching e.g. `http_host` from the config, which explains why https would sometimes not work due to the missing name entry. Because when `service` is included, this limits the iteration to matching entries, while also returning the same value as the `name` loop variable. Because `name == service when service != nil` we can use name instead in the body of the loop.
author Kim Alvefur <zash@zash.se>
date Fri, 28 May 2021 17:09:22 +0200
parent 11576:fbd1ebd86369
child 12561:adfb46a3e8a7
line wrap: on
line source

local type hash = function (msg : string, hex : boolean) : string
local type hmac = function (key : string, msg : string, hex : boolean) : string
local type kdf = function (pass : string, salt : string, i : integer) : string

local record lib
	sha1 : hash
	sha256 : hash
	sha224 : hash
	sha384 : hash
	sha512 : hash
	md5 : hash
	hmac_sha1 : hmac
	hmac_sha256 : hmac
	hmac_sha512 : hmac
	hmac_md5 : hmac
	scram_Hi_sha1 : kdf
	pbkdf2_hmac_sha1 : kdf
	pbkdf2_hmac_sha256 : kdf
	equals : function (string, string) : boolean
	version : string
	_LIBCRYPTO_VERSION : string
end
return lib