teal-src/prosody/util/jwt.d.tl
author Kim Alvefur <zash@zash.se>
Thu, 23 Mar 2023 13:36:52 +0100
changeset 12983 fbbf4f0db8f0
parent 12933 teal-src/util/jwt.d.tl@245ffbb06f55
permissions -rw-r--r--
teal: Move into prosody namespace
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12983
fbbf4f0db8f0 teal: Move into prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12933
diff changeset
     1
local crypto = require "prosody.util.crypto"
12930
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
local record jwtlib
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
	enum algorithm
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
		"HS256"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
		"HS384"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
		"HS512"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
		"ES256"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
		"ES512"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
		"RS256"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
		"RS384"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
		"RS512"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
		"PS256"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
		"PS384"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
		"PS512"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
	end
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
	type payload = { string : any }
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
	type signer_t = function (payload : payload) : string
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
	type verifier_t = function (token : string) : payload
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
	enum key_type
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
		"rsaEncryption"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
		"id-ecPublicKey"
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
	end
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
	record algorithm_t
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
		sign : signer_t
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
		verify : verifier_t
12933
245ffbb06f55 util.jwt: Import definition of key from util.crypto
Kim Alvefur <zash@zash.se>
parents: 12932
diff changeset
    26
		load_key : function (key : string) : crypto.key
12930
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
	end
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
	init : function (algorithm, private_key : string, public_key : string, table) : signer_t, verifier_t
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
	new_signer : function (algorithm, string, table) : signer_t
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
	new_verifier : function (algorithm, string, table) : verifier_t
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
	_algorithms : {
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
		algorithm : algorithm_t
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
	}
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
	-- Deprecated
12932
916af6fcef1e util.jwt: Fixup argument and type order
Kim Alvefur <zash@zash.se>
parents: 12930
diff changeset
    35
	sign : function (private_key : string, payload) : string
12930
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
	verify : function (string) : payload
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
end
f9e474cb86ac util.jwt: Document interface as Teal definition file
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
return jwtlib