X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=crypto%2Ftlse.h;h=b152c543157135392a2139618adfc4def1c59ba8;hb=HEAD;hp=9645195c92621a6f918734384175e21b99bb3796;hpb=cad54faaf17cc59e3c8a84ddfac7eb8448da1628;p=zpackage diff --git a/crypto/tlse.h b/crypto/tlse.h index 9645195..b152c54 100644 --- a/crypto/tlse.h +++ b/crypto/tlse.h @@ -54,15 +54,26 @@ #endif #ifdef DEBUG -#define DEBUG_PRINTLN(...) do { fprintf(stderr, "line %d: ", __LINE__); fprintf(stderr, __VA_ARGS__); } while (0) -#define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) +extern int tls_indent; +extern int tls_indent_i; +#define INDENT do { for (tls_indent_i=0; tls_indent_i < tls_indent; tls_indent_i++) { fprintf(stderr, " "); } } while (0) -#define DEBUG_DUMP_HEX(buf, len) do {int _i_; for (_i_ = 0; _i_ < (int)len; _i_++) { DEBUG_PRINT("%02X ", (unsigned int)(buf)[_i_]); } } while (0) +#define MARKP do { INDENT; fprintf(stderr, "%s %s:%d ", __FILE__, __func__, __LINE__); } while (0) +#define MARK do { INDENT; fprintf(stderr, "%s %s:%d\n", __FILE__, __func__, __LINE__); } while (0) + +#define DEBUG_PRINTLN(...) do { MARKP; fprintf(stderr, __VA_ARGS__); } while (0) +#define DEBUG_PRINTI(...) do { INDENT; fprintf(stderr, __VA_ARGS__); } while (0) +#define DEBUG_PRINT(...) do { fprintf(stderr, __VA_ARGS__); } while (0) + +#define DEBUG_DUMP_HEX(buf, len) do {int _i_; for (_i_ = 0; _i_ < (int)len; _i_++) { DEBUG_PRINT("%02x ", (unsigned int)((unsigned char *)buf)[_i_]); } } while (0) #define DEBUG_INDEX(fields) print_index(fields) #define DEBUG_DUMP(buf, length) fwrite(buf, 1, length, stderr); -#define DEBUG_DUMP_HEX_LABEL(title, buf, len) do {fprintf(stderr, "%s (%i): ", title, (int)len); DEBUG_DUMP_HEX(buf, len); fprintf(stderr, "\n");} while (0) +#define DEBUG_DUMP_HEX_LABEL(title, buf, len) do {fprintf(stderr, "%s (%d): ", title, (int)len); DEBUG_DUMP_HEX(buf, len); fprintf(stderr, "\n");} while (0) + +#define ENTER do { MARKP; fprintf(stderr, "enter function\n"); tls_indent++; } while (0) +#define LEAVE do { tls_indent--; MARKP; fprintf(stderr, "leave function\n");} while (0) #else #define DEBUG_PRINTLN(...) #define DEBUG_PRINT(...) { } @@ -70,6 +81,9 @@ #define DEBUG_INDEX(fields) { } #define DEBUG_DUMP(buf, length) { } #define DEBUG_DUMP_HEX_LABEL(title, buf, len) { } +#define MARK +#define ENTER +#define LEAVE #endif #define TLS_WITH_CHACHA20_POLY1305 @@ -449,6 +463,11 @@ struct TLSContext { struct timespec sleep_until; unsigned short tls13_version; + +#ifdef DEBUG + int level; + uint32_t debug_flags; +#endif }; typedef int (*tls_validation_function)(struct TLSContext *context, struct TLSCertificate **certificate_chain, int len);