forked from wolfSSL/wolfssl
Merge pull request #5715 from douzzer/20221018-linux6v1-and-WOLFSSL_CALLBACKS-fixes
20221018-linux6v1-and-WOLFSSL_CALLBACKS-fixes
This commit is contained in:
@@ -3360,6 +3360,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
|
||||
} while (err == WC_PENDING_E);
|
||||
}
|
||||
#else
|
||||
(void)nonBlocking;
|
||||
ret = NonBlockingSSL_Accept(ssl);
|
||||
#endif
|
||||
#ifdef WOLFSSL_EARLY_DATA
|
||||
|
@@ -305,3 +305,19 @@
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_LINUXKM_SIMD_X86 && WOLFSSL_LINUXKM_SIMD_X86_IRQ_ALLOWED */
|
||||
|
||||
#if defined(__PIE__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))
|
||||
/* needed in 6.1+ because show_free_areas() static definition in mm.h calls
|
||||
* __show_free_areas(), which isn't exported (neither was show_free_areas()).
|
||||
*/
|
||||
void my__show_free_areas(
|
||||
unsigned int flags,
|
||||
nodemask_t *nodemask,
|
||||
int max_zone_idx)
|
||||
{
|
||||
(void)flags;
|
||||
(void)nodemask;
|
||||
(void)max_zone_idx;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
@@ -105,6 +105,13 @@
|
||||
*/
|
||||
#undef USE_SPLIT_PMD_PTLOCKS
|
||||
#define USE_SPLIT_PMD_PTLOCKS 0
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
|
||||
/* without this, static show_free_areas() mm.h brings in direct
|
||||
* reference to unexported __show_free_areas().
|
||||
*/
|
||||
#define __show_free_areas my__show_free_areas
|
||||
#endif
|
||||
#endif
|
||||
#include <linux/mm.h>
|
||||
#ifndef SINGLE_THREADED
|
||||
@@ -267,8 +274,13 @@
|
||||
typeof(kvfree) *kvfree;
|
||||
#endif
|
||||
typeof(is_vmalloc_addr) *is_vmalloc_addr;
|
||||
typeof(kmem_cache_alloc_trace) *kmem_cache_alloc_trace;
|
||||
typeof(kmalloc_order_trace) *kmalloc_order_trace;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
|
||||
typeof(kmalloc_trace) *kmalloc_trace;
|
||||
#else
|
||||
typeof(kmem_cache_alloc_trace) *kmem_cache_alloc_trace;
|
||||
typeof(kmalloc_order_trace) *kmalloc_order_trace;
|
||||
#endif
|
||||
|
||||
typeof(get_random_bytes) *get_random_bytes;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
||||
@@ -402,8 +414,12 @@
|
||||
#define kvfree (wolfssl_linuxkm_get_pie_redirect_table()->kvfree)
|
||||
#endif
|
||||
#define is_vmalloc_addr (wolfssl_linuxkm_get_pie_redirect_table()->is_vmalloc_addr)
|
||||
#define kmem_cache_alloc_trace (wolfssl_linuxkm_get_pie_redirect_table()->kmem_cache_alloc_trace)
|
||||
#define kmalloc_order_trace (wolfssl_linuxkm_get_pie_redirect_table()->kmalloc_order_trace)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
|
||||
#define kmalloc_trace (wolfssl_linuxkm_get_pie_redirect_table()->kmalloc_trace)
|
||||
#else
|
||||
#define kmem_cache_alloc_trace (wolfssl_linuxkm_get_pie_redirect_table()->kmem_cache_alloc_trace)
|
||||
#define kmalloc_order_trace (wolfssl_linuxkm_get_pie_redirect_table()->kmalloc_order_trace)
|
||||
#endif
|
||||
|
||||
#define get_random_bytes (wolfssl_linuxkm_get_pie_redirect_table()->get_random_bytes)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
||||
|
@@ -394,10 +394,15 @@ static int set_up_wolfssl_linuxkm_pie_redirect_table(void) {
|
||||
wolfssl_linuxkm_pie_redirect_table.kvfree = kvfree;
|
||||
#endif
|
||||
wolfssl_linuxkm_pie_redirect_table.is_vmalloc_addr = is_vmalloc_addr;
|
||||
wolfssl_linuxkm_pie_redirect_table.kmem_cache_alloc_trace =
|
||||
kmem_cache_alloc_trace;
|
||||
wolfssl_linuxkm_pie_redirect_table.kmalloc_order_trace =
|
||||
kmalloc_order_trace;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
|
||||
wolfssl_linuxkm_pie_redirect_table.kmalloc_trace =
|
||||
kmalloc_trace;
|
||||
#else
|
||||
wolfssl_linuxkm_pie_redirect_table.kmem_cache_alloc_trace =
|
||||
kmem_cache_alloc_trace;
|
||||
wolfssl_linuxkm_pie_redirect_table.kmalloc_order_trace =
|
||||
kmalloc_order_trace;
|
||||
#endif
|
||||
|
||||
wolfssl_linuxkm_pie_redirect_table.get_random_bytes = get_random_bytes;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
||||
|
113
src/internal.c
113
src/internal.c
@@ -9637,8 +9637,10 @@ static int SendHandshakeMsg(WOLFSSL* ssl, byte* input, word32 inputSz,
|
||||
AddPacketName(ssl, packetName);
|
||||
}
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, packetName, handshake,
|
||||
ret = AddPacketInfo(ssl, packetName, handshake,
|
||||
output, outputSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
ssl->fragOffset += fragSz;
|
||||
@@ -15473,9 +15475,11 @@ static int DoHandShakeMsgType(WOLFSSL* ssl, byte* input, word32* inOutIdx,
|
||||
/* add name later, add the handshake header part back on and record layer
|
||||
* header */
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, 0, handshake, input + *inOutIdx -
|
||||
ret = AddPacketInfo(ssl, 0, handshake, input + *inOutIdx -
|
||||
HANDSHAKE_HEADER_SZ, size + HANDSHAKE_HEADER_SZ, READ_PROTO,
|
||||
RECORD_HEADER_SZ, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
#ifdef WOLFSSL_CALLBACKS
|
||||
AddLateRecordHeader(&ssl->curRL, &ssl->timeoutInfo);
|
||||
#endif
|
||||
@@ -18556,8 +18560,10 @@ static int DoAlert(WOLFSSL* ssl, byte* input, word32* inOutIdx, int* type)
|
||||
AddPacketName(ssl, "Alert");
|
||||
if (ssl->toInfoOn) {
|
||||
/* add record header back on to info + alert bytes level/code */
|
||||
AddPacketInfo(ssl, "Alert", alert, input + *inOutIdx, ALERT_SIZE,
|
||||
READ_PROTO, RECORD_HEADER_SZ, ssl->heap);
|
||||
int ret = AddPacketInfo(ssl, "Alert", alert, input + *inOutIdx,
|
||||
ALERT_SIZE, READ_PROTO, RECORD_HEADER_SZ, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
#ifdef WOLFSSL_CALLBACKS
|
||||
AddLateRecordHeader(&ssl->curRL, &ssl->timeoutInfo);
|
||||
#endif
|
||||
@@ -19678,11 +19684,13 @@ int ProcessReplyEx(WOLFSSL* ssl, int allowSocketErr)
|
||||
AddPacketName(ssl, "ChangeCipher");
|
||||
/* add record header back on info */
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "ChangeCipher",
|
||||
ret = AddPacketInfo(ssl, "ChangeCipher",
|
||||
change_cipher_spec,
|
||||
ssl->buffers.inputBuffer.buffer +
|
||||
ssl->buffers.inputBuffer.idx,
|
||||
1, READ_PROTO, RECORD_HEADER_SZ, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
#ifdef WOLFSSL_CALLBACKS
|
||||
AddLateRecordHeader(&ssl->curRL, &ssl->timeoutInfo);
|
||||
#endif
|
||||
@@ -20073,9 +20081,12 @@ int SendChangeCipher(WOLFSSL* ssl)
|
||||
#endif
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn) AddPacketName(ssl, "ChangeCipher");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "ChangeCipher", change_cipher_spec, output,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "ChangeCipher", change_cipher_spec, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
ssl->buffers.outputBuffer.length += sendSz;
|
||||
|
||||
@@ -21024,9 +21035,12 @@ int SendFinished(WOLFSSL* ssl)
|
||||
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn) AddPacketName(ssl, "Finished");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "Finished", handshake, output, sendSz,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "Finished", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
ssl->buffers.outputBuffer.length += sendSz;
|
||||
@@ -21466,9 +21480,12 @@ int SendCertificate(WOLFSSL* ssl)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "Certificate");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "Certificate", handshake, output, sendSz,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "Certificate", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
ssl->buffers.outputBuffer.length += sendSz;
|
||||
@@ -21662,9 +21679,12 @@ int SendCertificateRequest(WOLFSSL* ssl)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "CertificateRequest");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "CertificateRequest", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "CertificateRequest", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
ssl->buffers.outputBuffer.length += sendSz;
|
||||
if (ssl->options.groupMessages)
|
||||
@@ -21776,9 +21796,12 @@ static int BuildCertificateStatus(WOLFSSL* ssl, byte type, buffer* status,
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ret == 0 && ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "CertificateStatus");
|
||||
if (ret == 0 && ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "CertificateStatus", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret == 0 && ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "CertificateStatus", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ret == 0) {
|
||||
@@ -22703,9 +22726,12 @@ static int SendAlert_ex(WOLFSSL* ssl, int severity, int type)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "Alert");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "Alert", alert, output, sendSz, WRITE_PROTO, 0,
|
||||
ssl->heap);
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "Alert", alert, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
ssl->buffers.outputBuffer.length += sendSz;
|
||||
@@ -25173,7 +25199,7 @@ int PickHashSigAlgo(WOLFSSL* ssl, const byte* hashSigAlgo, word32 hashSigAlgoSz)
|
||||
* written 1 if this packet is being written to wire, 0 if being read
|
||||
* heap custom heap to use for mallocs/frees
|
||||
*/
|
||||
void AddPacketInfo(WOLFSSL* ssl, const char* name, int type,
|
||||
int AddPacketInfo(WOLFSSL* ssl, const char* name, int type,
|
||||
const byte* data, int sz, int written, int lateRL, void* heap)
|
||||
{
|
||||
#ifdef WOLFSSL_CALLBACKS
|
||||
@@ -25213,7 +25239,10 @@ int PickHashSigAlgo(WOLFSSL* ssl, const byte* hashSigAlgo, word32 hashSigAlgoSz)
|
||||
lateRL, data, sz);
|
||||
}
|
||||
}
|
||||
gettimeofday(&currTime, 0);
|
||||
|
||||
if (gettimeofday(&currTime, 0) < 0)
|
||||
return SYSLIB_FAILED_E;
|
||||
|
||||
info->packets[info->numberPackets].timestamp.tv_sec =
|
||||
currTime.tv_sec;
|
||||
info->packets[info->numberPackets].timestamp.tv_usec =
|
||||
@@ -25242,6 +25271,8 @@ int PickHashSigAlgo(WOLFSSL* ssl, const byte* hashSigAlgo, word32 hashSigAlgoSz)
|
||||
(void)type;
|
||||
(void)ssl;
|
||||
(void)lateRL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* WOLFSSL_CALLBACKS */
|
||||
@@ -26140,9 +26171,12 @@ static int HashSkeData(WOLFSSL* ssl, enum wc_HashType hashType,
|
||||
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn) AddPacketName(ssl, "ClientHello");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "ClientHello", handshake, output, sendSz,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "ClientHello", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
ssl->options.buildingMsg = 0;
|
||||
@@ -29506,9 +29540,13 @@ int SendClientKeyExchange(WOLFSSL* ssl)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "ClientKeyExchange");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "ClientKeyExchange", handshake,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "ClientKeyExchange", handshake,
|
||||
args->output, args->sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0) {
|
||||
goto exit_scke;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
ssl->buffers.outputBuffer.length += args->sendSz;
|
||||
@@ -30537,9 +30575,12 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "ServerHello");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "ServerHello", handshake, output, sendSz,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "ServerHello", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
ssl->options.serverState = SERVER_HELLO_COMPLETE;
|
||||
@@ -33956,9 +33997,12 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "ServerHelloDone");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "ServerHelloDone", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "ServerHelloDone", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
ssl->options.serverState = SERVER_HELLODONE_COMPLETE;
|
||||
ssl->options.buildingMsg = 0;
|
||||
@@ -35078,9 +35122,12 @@ static int DefTicketEncCb(WOLFSSL* ssl, byte key_name[WOLFSSL_TICKET_NAME_SZ],
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "HelloVerifyRequest");
|
||||
if (ssl->toInfoOn)
|
||||
AddPacketInfo(ssl, "HelloVerifyRequest", handshake, output,
|
||||
if (ssl->toInfoOn) {
|
||||
ret = AddPacketInfo(ssl, "HelloVerifyRequest", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* are we in scr */
|
||||
|
29
src/ssl.c
29
src/ssl.c
@@ -15201,29 +15201,29 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
|
||||
#define AddTimes(a, b, c) \
|
||||
do { \
|
||||
c.tv_sec = a.tv_sec + b.tv_sec; \
|
||||
c.tv_usec = a.tv_usec + b.tv_usec; \
|
||||
if (c.tv_usec >= 1000000) { \
|
||||
c.tv_sec++; \
|
||||
c.tv_usec -= 1000000; \
|
||||
(c).tv_sec = (a).tv_sec + (b).tv_sec; \
|
||||
(c).tv_usec = (a).tv_usec + (b).tv_usec;\
|
||||
if ((c).tv_usec >= 1000000) { \
|
||||
(c).tv_sec++; \
|
||||
(c).tv_usec -= 1000000; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define SubtractTimes(a, b, c) \
|
||||
do { \
|
||||
c.tv_sec = a.tv_sec - b.tv_sec; \
|
||||
c.tv_usec = a.tv_usec - b.tv_usec; \
|
||||
if (c.tv_usec < 0) { \
|
||||
c.tv_sec--; \
|
||||
c.tv_usec += 1000000; \
|
||||
(c).tv_sec = (a).tv_sec - (b).tv_sec; \
|
||||
(c).tv_usec = (a).tv_usec - (b).tv_usec;\
|
||||
if ((c).tv_usec < 0) { \
|
||||
(c).tv_sec--; \
|
||||
(c).tv_usec += 1000000; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define CmpTimes(a, b, cmp) \
|
||||
((a.tv_sec == b.tv_sec) ? \
|
||||
(a.tv_usec cmp b.tv_usec) : \
|
||||
(a.tv_sec cmp b.tv_sec)) \
|
||||
(((a).tv_sec == (b).tv_sec) ? \
|
||||
((a).tv_usec cmp (b).tv_usec) : \
|
||||
((a).tv_sec cmp (b).tv_sec)) \
|
||||
|
||||
|
||||
/* do nothing handler */
|
||||
@@ -15306,7 +15306,8 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
/* do callbacks */
|
||||
if (toCb) {
|
||||
if (oldTimerOn) {
|
||||
gettimeofday(&endTime, 0);
|
||||
if (gettimeofday(&endTime, 0) < 0)
|
||||
ERR_OUT(SYSLIB_FAILED_E);
|
||||
SubtractTimes(endTime, startTime, totalTime);
|
||||
/* adjust old timer for elapsed time */
|
||||
if (CmpTimes(totalTime, oldTimeout.it_value, <))
|
||||
|
38
src/tls13.c
38
src/tls13.c
@@ -3989,8 +3989,10 @@ int SendTls13ClientHello(WOLFSSL* ssl)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn) AddPacketName(ssl, "ClientHello");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "ClientHello", handshake, args->output, args->sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
ret = AddPacketInfo(ssl, "ClientHello", handshake, args->output,
|
||||
args->sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -6217,8 +6219,10 @@ int SendTls13ServerHello(WOLFSSL* ssl, byte extMsgType)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "ServerHello");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "ServerHello", handshake, output, sendSz,
|
||||
ret = AddPacketInfo(ssl, "ServerHello", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -6361,8 +6365,10 @@ static int SendTls13EncryptedExtensions(WOLFSSL* ssl)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "EncryptedExtensions");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "EncryptedExtensions", handshake, output,
|
||||
ret = AddPacketInfo(ssl, "EncryptedExtensions", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -6502,8 +6508,10 @@ static int SendTls13CertificateRequest(WOLFSSL* ssl, byte* reqCtx,
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "CertificateRequest");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "CertificateRequest", handshake, output,
|
||||
ret = AddPacketInfo(ssl, "CertificateRequest", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -7309,8 +7317,10 @@ static int SendTls13Certificate(WOLFSSL* ssl)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "Certificate");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "Certificate", handshake, output,
|
||||
ret = AddPacketInfo(ssl, "Certificate", handshake, output,
|
||||
sendSz, WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -7857,9 +7867,11 @@ static int SendTls13CertificateVerify(WOLFSSL* ssl)
|
||||
if (ssl->hsInfoOn)
|
||||
AddPacketName(ssl, "CertificateVerify");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "CertificateVerify", handshake,
|
||||
ret = AddPacketInfo(ssl, "CertificateVerify", handshake,
|
||||
args->output, args->sendSz, WRITE_PROTO, 0,
|
||||
ssl->heap);
|
||||
if (ret != 0)
|
||||
goto exit_scv;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -8778,8 +8790,10 @@ static int SendTls13Finished(WOLFSSL* ssl)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn) AddPacketName(ssl, "Finished");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "Finished", handshake, output, sendSz,
|
||||
ret = AddPacketInfo(ssl, "Finished", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -8987,8 +9001,10 @@ static int SendTls13KeyUpdate(WOLFSSL* ssl)
|
||||
#if defined(WOLFSSL_CALLBACKS) || defined(OPENSSL_EXTRA)
|
||||
if (ssl->hsInfoOn) AddPacketName(ssl, "KeyUpdate");
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, "KeyUpdate", handshake, output, sendSz,
|
||||
ret = AddPacketInfo(ssl, "KeyUpdate", handshake, output, sendSz,
|
||||
WRITE_PROTO, 0, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -10168,9 +10184,11 @@ int DoTls13HandShakeMsgType(WOLFSSL* ssl, byte* input, word32* inOutIdx,
|
||||
#if defined(WOLFSSL_CALLBACKS)
|
||||
/* add name later, add on record and handshake header part back on */
|
||||
if (ssl->toInfoOn) {
|
||||
AddPacketInfo(ssl, 0, handshake, input + *inOutIdx -
|
||||
ret = AddPacketInfo(ssl, 0, handshake, input + *inOutIdx -
|
||||
HANDSHAKE_HEADER_SZ, size + HANDSHAKE_HEADER_SZ, READ_PROTO,
|
||||
RECORD_HEADER_SZ, ssl->heap);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
AddLateRecordHeader(&ssl->curRL, &ssl->timeoutInfo);
|
||||
}
|
||||
#endif
|
||||
|
@@ -2072,8 +2072,8 @@ enum {
|
||||
#error Invalid static buffer length
|
||||
#endif
|
||||
#elif defined(LARGE_STATIC_BUFFERS)
|
||||
#define STATIC_BUFFER_LEN RECORD_HEADER_SZ + RECORD_SIZE + COMP_EXTRA + \
|
||||
MTU_EXTRA + MAX_MSG_EXTRA
|
||||
#define STATIC_BUFFER_LEN (RECORD_HEADER_SZ + RECORD_SIZE + COMP_EXTRA + \
|
||||
MTU_EXTRA + MAX_MSG_EXTRA)
|
||||
#else
|
||||
/* don't fragment memory from the record header */
|
||||
#define STATIC_BUFFER_LEN RECORD_HEADER_SZ
|
||||
@@ -5311,7 +5311,7 @@ WOLFSSL_API void SSL_ResourceFree(WOLFSSL* ssl); /* Micrium uses */
|
||||
|
||||
WOLFSSL_LOCAL void InitTimeoutInfo(TimeoutInfo* info);
|
||||
WOLFSSL_LOCAL void FreeTimeoutInfo(TimeoutInfo* info, void* heap);
|
||||
WOLFSSL_LOCAL void AddPacketInfo(WOLFSSL* ssl, const char* name, int type,
|
||||
WOLFSSL_LOCAL int AddPacketInfo(WOLFSSL* ssl, const char* name, int type,
|
||||
const byte* data, int sz, int written, int lateRL,
|
||||
void* heap);
|
||||
WOLFSSL_LOCAL void AddLateName(const char* name, TimeoutInfo* info);
|
||||
|
@@ -4104,10 +4104,10 @@ typedef int (*TimeoutCallBack)(TimeoutInfo*);
|
||||
|
||||
/* wolfSSL connect extension allowing HandShakeCallBack and/or TimeoutCallBack
|
||||
for diagnostics */
|
||||
WOLFSSL_API int wolfSSL_connect_ex(WOLFSSL* ssl, HandShakeCallBack, TimeoutCallBack,
|
||||
WOLFSSL_TIMEVAL);
|
||||
WOLFSSL_API int wolfSSL_accept_ex(WOLFSSL* ssl, HandShakeCallBack, TimeoutCallBack,
|
||||
WOLFSSL_TIMEVAL);
|
||||
WOLFSSL_API int wolfSSL_connect_ex(WOLFSSL* ssl, HandShakeCallBack hsCb,
|
||||
TimeoutCallBack toCb, WOLFSSL_TIMEVAL timeout);
|
||||
WOLFSSL_API int wolfSSL_accept_ex(WOLFSSL* ssl, HandShakeCallBack hsCb,
|
||||
TimeoutCallBack toCb, WOLFSSL_TIMEVAL timeout);
|
||||
|
||||
#endif /* WOLFSSL_CALLBACKS */
|
||||
|
||||
|
Reference in New Issue
Block a user