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