diff options
author | Daiki Ueno <ueno@gnu.org> | 2023-05-02 08:41:08 +0900 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2023-05-04 18:47:56 +0900 |
commit | 4fe788cc172e6c06f40a42ba516a60f21369018c (patch) | |
tree | 1e84b4e61a611894f264ceb5e9e2ef9a51dacfd0 /lib/handshake-defs.h | |
parent | 643342325a15e652fedac27b7bcb4614a242ab0d (diff) | |
download | gnutls-4fe788cc172e6c06f40a42ba516a60f21369018c.tar.gz |
psk: Add basic support for RFC 9258 external PSK importer interface
This adds a minimal, callback-based API to import external PSK,
following RFC 9258. The client and the server importing external PSK
are supposed to set a callback to retrieve PSK, which returns flags
that may indicate the PSK is imported, along with the key:
typedef int gnutls_psk_client_credentials_function3(
gnutls_session_t session,
gnutls_datum_t *username, gnutls_datum_t *key,
gnutls_psk_key_flags *flags);
typedef int gnutls_psk_server_credentials_function3(
gnutls_session_t session,
const gnutls_datum_t *username, gnutls_datum_t *key,
gnutls_psk_key_flags *flags);
Those callbacks are responsible to call
gnutls_psk_format_imported_identity() for external PSKs to build a
serialized PSK identity, and set GNUTLS_PSK_KEY_EXT in flags if the
identity is an imported one.
Signed-off-by: Daiki Ueno <ueno@gnu.org>
Diffstat (limited to 'lib/handshake-defs.h')
-rw-r--r-- | lib/handshake-defs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/handshake-defs.h b/lib/handshake-defs.h index 1b0c250e75..51aa5d2369 100644 --- a/lib/handshake-defs.h +++ b/lib/handshake-defs.h @@ -25,10 +25,12 @@ #define EARLY_TRAFFIC_LABEL "c e traffic" #define EXT_BINDER_LABEL "ext binder" #define RES_BINDER_LABEL "res binder" +#define IMP_BINDER_LABEL "imp binder" #define EARLY_EXPORTER_MASTER_LABEL "e exp master" #define HANDSHAKE_CLIENT_TRAFFIC_LABEL "c hs traffic" #define HANDSHAKE_SERVER_TRAFFIC_LABEL "s hs traffic" #define DERIVED_LABEL "derived" +#define DERIVED_PSK_LABEL "derived psk" #define APPLICATION_CLIENT_TRAFFIC_LABEL "c ap traffic" #define APPLICATION_SERVER_TRAFFIC_LABEL "s ap traffic" #define APPLICATION_TRAFFIC_UPDATE "traffic upd" |