QSMP: Quantum Secure Messaging Protocol 1.3.0.0a (A3)
A quantum secure encrypted tunneling protocol
qsmp_kex_duplex_server_state Struct Reference

Internal state for the Duplex key exchange (server-side). More...

#include <kex.h>

Data Fields

uint8_t keyid [QSMP_KEYID_SIZE]
 
uint8_t schash [QSMP_DUPLEX_SCHASH_SIZE]
 
uint8_t prikey [QSMP_ASYMMETRIC_PRIVATE_KEY_SIZE]
 
uint8_t pubkey [QSMP_ASYMMETRIC_PUBLIC_KEY_SIZE]
 
uint8_t rverkey [QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
 
uint8_t sigkey [QSMP_ASYMMETRIC_SIGNING_KEY_SIZE]
 
uint8_t verkey [QSMP_ASYMMETRIC_VERIFY_KEY_SIZE]
 
uint64_t expiration
 
bool(* key_query )(uint8_t *, const uint8_t *)
 

Detailed Description

Internal state for the Duplex key exchange (server-side).

This structure holds the state information required by a server participating in a Duplex key exchange. It contains cryptographic parameters including key identities, session hashes, asymmetric keys, and an expiration timestamp. In addition, it includes a callback function (key_query) that is used to retrieve the appropriate public key during the key exchange process.

Field Documentation

◆ expiration

uint64_t expiration

The expiration time, in seconds from epoch

◆ key_query

bool(* key_query) (uint8_t *, const uint8_t *)

The key query callback

◆ keyid

uint8_t keyid[QSMP_KEYID_SIZE]

The key identity string

◆ prikey

The asymmetric cipher private key

◆ pubkey

The asymmetric cipher public key

◆ rverkey

The remote asymmetric signature verification-key

◆ schash

uint8_t schash[QSMP_DUPLEX_SCHASH_SIZE]

The session token hash

◆ sigkey

The asymmetric signature signing-key

◆ verkey

The local asymmetric signature verification-key


The documentation for this struct was generated from the following file: