util.jwt: Document interface as Teal definition file
authorKim Alvefur <zash@zash.se>
Fri, 10 Mar 2023 10:55:50 +0100
changeset 12930 f9e474cb86ac
parent 12929 6cb339423928
child 12931 918dfbb330fd
util.jwt: Document interface as Teal definition file
teal-src/util/jwt.d.tl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/teal-src/util/jwt.d.tl	Fri Mar 10 10:55:50 2023 +0100
@@ -0,0 +1,40 @@
+local record jwtlib
+	enum algorithm
+		"HS256"
+		"HS384"
+		"HS512"
+		"ES256"
+		"ES512"
+		"RS256"
+		"RS384"
+		"RS512"
+		"PS256"
+		"PS384"
+		"PS512"
+	end
+	type payload = { string : any }
+	type signer_t = function (payload : payload) : string
+	type verifier_t = function (token : string) : payload
+	enum key_type
+		"rsaEncryption"
+		"id-ecPublicKey"
+	end
+	record key_t
+		get_type : function (key_t) : key_type
+	end
+	record algorithm_t
+		sign : signer_t
+		verify : verifier_t
+		load_key : function (key : string) : key_t
+	end
+	init : function (algorithm, private_key : string, public_key : string, table) : signer_t, verifier_t
+	new_signer : function (algorithm, string, table) : signer_t
+	new_verifier : function (algorithm, string, table) : verifier_t
+	_algorithms : {
+		algorithm : algorithm_t
+	}
+	-- Deprecated
+	sign : function (string : key, payload) : string
+	verify : function (string) : payload
+end
+return jwtlib