qsmp_errors qsmp_kex_simplex_server_key_exchange(qsmp_kex_simplex_server_state *kss, qsmp_connection_state *cns)
Execute the server-side Simplex key exchange.
Definition kex.c:1916
qsmp_errors qsmp_kex_duplex_client_key_exchange(qsmp_kex_duplex_client_state *kcs, qsmp_connection_state *cns)
Execute the client-side Duplex key exchange.
Definition kex.c:893
qsmp_errors qsmp_kex_simplex_client_key_exchange(qsmp_kex_simplex_client_state *kcs, qsmp_connection_state *cns)
Execute the client-side Simplex key exchange.
Definition kex.c:1744
bool qsmp_kex_test()
Run internal tests for the key exchange functions.
Definition kex.c:2065
qsmp_errors qsmp_kex_duplex_server_key_exchange(qsmp_kex_duplex_server_state *kss, qsmp_connection_state *cns)
Execute the server-side Duplex key exchange.
Definition kex.c:1127
QSMP support header Common defined parameters and functions of the qsmp client and server implementat...
#define QSMP_SECRET_SIZE
The size of the shared secret for each channel.
Definition qsmp.h:335
#define QSMP_ASYMMETRIC_PRIVATE_KEY_SIZE
The byte size of the asymmetric cipher private-key array.
Definition qsmp.h:436
#define QSMP_ASYMMETRIC_VERIFY_KEY_SIZE
The byte size of the asymmetric signature verification-key array.
Definition qsmp.h:454
#define QSMP_ASYMMETRIC_PUBLIC_KEY_SIZE
The byte size of the asymmetric cipher public-key array.
Definition qsmp.h:442
qsmp_errors
The QSMP error values.
Definition qsmp.h:854
#define QSMP_ASYMMETRIC_SIGNING_KEY_SIZE
The byte size of the asymmetric signature signing-key array.
Definition qsmp.h:448
#define QSMP_KEYID_SIZE
The QSMP key identity size.
Definition qsmp.h:266
#define QSMP_DUPLEX_SCHASH_SIZE
The Duplex session token 512-bit hash size.
Definition qsmp.h:191
#define QSMP_SIMPLEX_SCHASH_SIZE
The Simplex 256-bit session token hash size.
Definition qsmp.h:161
The QSMP socket connection state structure.
Definition qsmp.h:1002
Internal state for the Duplex key exchange (client-side).
Definition kex.h:92
uint64_t expiration
Definition kex.h:101
uint8_t schash[QSMP_DUPLEX_SCHASH_SIZE]
Definition kex.h:94
uint8_t rverkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:97
uint8_t prikey[QSMP_ASYMMETRIC_PRIVATE_KEY_SIZE]
Definition kex.h:95
uint8_t sigkey[QSMP_ASYMMETRIC_SIGNING_KEY_SIZE]
Definition kex.h:98
uint8_t verkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:100
uint8_t keyid[QSMP_KEYID_SIZE]
Definition kex.h:93
uint8_t pubkey[QSMP_ASYMMETRIC_PUBLIC_KEY_SIZE]
Definition kex.h:96
uint8_t ssec[QSMP_SECRET_SIZE]
Definition kex.h:99
Internal state for the Duplex key exchange (server-side).
Definition kex.h:115
uint64_t expiration
Definition kex.h:123
uint8_t schash[QSMP_DUPLEX_SCHASH_SIZE]
Definition kex.h:117
uint8_t rverkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:120
uint8_t prikey[QSMP_ASYMMETRIC_PRIVATE_KEY_SIZE]
Definition kex.h:118
uint8_t sigkey[QSMP_ASYMMETRIC_SIGNING_KEY_SIZE]
Definition kex.h:121
uint8_t verkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:122
uint8_t keyid[QSMP_KEYID_SIZE]
Definition kex.h:116
bool(* key_query)(uint8_t *, const uint8_t *)
Definition kex.h:124
uint8_t pubkey[QSMP_ASYMMETRIC_PUBLIC_KEY_SIZE]
Definition kex.h:119
Internal state for the Simplex key exchange (client-side).
Definition kex.h:137
uint64_t expiration
Definition kex.h:143
uint8_t rverkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:139
uint8_t sigkey[QSMP_ASYMMETRIC_SIGNING_KEY_SIZE]
Definition kex.h:140
uint8_t schash[QSMP_SIMPLEX_SCHASH_SIZE]
Definition kex.h:141
uint8_t verkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:142
uint8_t keyid[QSMP_KEYID_SIZE]
Definition kex.h:138
Internal state for the Simplex key exchange (server-side).
Definition kex.h:156
uint64_t expiration
Definition kex.h:163
uint8_t prikey[QSMP_ASYMMETRIC_PRIVATE_KEY_SIZE]
Definition kex.h:159
uint8_t sigkey[QSMP_ASYMMETRIC_SIGNING_KEY_SIZE]
Definition kex.h:161
uint8_t schash[QSMP_SIMPLEX_SCHASH_SIZE]
Definition kex.h:158
uint8_t verkey[QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
Definition kex.h:162
uint8_t keyid[QSMP_KEYID_SIZE]
Definition kex.h:157
uint8_t pubkey[QSMP_ASYMMETRIC_PUBLIC_KEY_SIZE]
Definition kex.h:160