/** * @file tls_logger.h * @author Mike Scott * @brief TLS 1.3 logging * */ // Log protocol progress #ifndef TLS_LOGGER_H #define TLS_LOGGER_H #include #include "tls1_3.h" #include "tls_x509.h" /** @brief internal printf function - all output funnels through this function * @param s a string to be output */ extern void myprintf(char *s); /** @brief basic logging function * @param logit logging level @param preamble a string to be output @param string another string, or a format specifier for info, or NULL @param info an integer to be output @param O an octad to be output (or NULL) */ extern void log(int logit,char *preamble,char *string,unsign32 info,octad *O); /** @brief logging the Server hello * @param cipher_suite the chosen cipher suite @param pskid the chosen preshared key (or -1 if none) @param PK the Server Public Key @param CK a Cookie (if any) */ extern void logServerHello(int cipher_suite,int pskid,octad *PK,octad *CK); /** @brief logging a resumption ticket * @param T a resumption ticket */ extern void logTicket(ticket *T); /** @brief logging server extended extensions responses vs expectations * @param e structure containing server expectations @param r structure containing server responses */ extern void logEncExt(ee_status *e,ee_status *r); /** @brief logging a Certificate in standard base 64 format * @param CERT the certificate to be logged */ extern void logCert(octad *CERT); /** @brief logging Certificate details * @param PUBKEY the certificate public key octad @param pk the public key type @param SIG the signature on the certificate @param sg the signature type @param ISSUER the (composite) certificate issuer @param SUBJECT the (composite) certificate subject */ extern void logCertDetails(octad *PUBKEY,pktype pk,octad *SIG,pktype sg,octad *ISSUER,octad *SUBJECT); /** @brief log client processing of a Server response * @param r the Server response */ extern void logServerResponse(ret r); /** @brief log Server Alert * @param detail the server's alert code */ extern void logAlert(int detail); /** @brief log Cipher Suite * @param cipher_suite the Cipher Suite to be logged */ extern void logCipherSuite(int cipher_suite); /** @brief log Key Exchange Group * @param kex the Key Exchange Group to be logged */ extern void logKeyExchange(int kex); /** @brief log Signature Algorithm * @param sigAlg the Signature Algorithm to be logged */ extern void logSigAlg(int sigAlg); #endif