teal-src/util/crypto.d.tl
author Matthew Wild <mwild1@gmail.com>
Fri, 02 Dec 2022 20:32:36 +0000
changeset 12799 87424cbedc55
parent 12699 6aaa604fdfd5
permissions -rw-r--r--
util.hashring: Support associating arbitrary data with nodes In this API, a 'node' is always a simple text string. Sometimes the caller may have a more complex structure representing a node, but the hash ring is really only concerned with the node's name. This API change allows :add_nodes() to take a table of `node_name = value` pairs, as well as the simple array of node names previously accepted. The 'value' of the selected node is returned as a new second result from :get_node(). If no value is passed when a node is added, it defaults to `true` (as before, but this was never previously exposed).

local record lib
	record key
		private_pem : function (key) : string
		public_pem : function (key) : string
		get_type : function (key) : string
	end

	generate_ed25519_keypair : function () : key
	ed25519_sign : function (key, string) : string
	ed25519_verify : function (key, string, string) : boolean

	ecdsa_sha256_sign : function (key, string) : string
	ecdsa_sha256_verify : function (key, string, string) : boolean
	parse_ecdsa_signature : function (string) : string, string
	build_ecdsa_signature : function (string, string) : string

	import_private_pem : function (string) : key
	import_public_pem : function (string) : key

	aes_128_gcm_encrypt : function (key, string, string) : string
	aes_128_gcm_decrypt : function (key, string, string) : string
	aes_256_gcm_encrypt : function (key, string, string) : string
	aes_256_gcm_decrypt : function (key, string, string) : string


	version : string
	_LIBCRYPTO_VERSION : string
end
return lib