mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-04 05:04:41 +02:00
Only cache messages when required.
This commit is contained in:
@@ -6053,18 +6053,26 @@ static int Ed25519Update(WOLFSSL* ssl, const byte* data, int sz)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
byte* msgs;
|
byte* msgs;
|
||||||
|
|
||||||
if (!IsAtLeastTLSv1_3(ssl->version) || ssl->options.downgrade) {
|
if (!IsAtLeastTLSv1_2(ssl))
|
||||||
msgs = (byte*)XREALLOC(ssl->hsHashes->messages,
|
return 0;
|
||||||
ssl->hsHashes->length + sz, ssl->heap,
|
if (IsAtLeastTLSv1_3(ssl->version) && !ssl->options.downgrade)
|
||||||
DYNAMIC_TYPE_HASHES);
|
return 0;
|
||||||
if (msgs == NULL)
|
if (ssl->options.side == WOLFSSL_CLIENT_END &&
|
||||||
ret = MEMORY_E;
|
ssl->buffers.keyType != ed25519_sa_algo)
|
||||||
if (ret == 0) {
|
return 0;
|
||||||
ssl->hsHashes->messages = msgs;
|
if (ssl->options.side == WOLFSSL_SERVER_END && (ssl->options.resuming ||
|
||||||
XMEMCPY(msgs + ssl->hsHashes->length, data, sz);
|
!ssl->options.verifyPeer))
|
||||||
ssl->hsHashes->prevLen = ssl->hsHashes->length;
|
return 0;
|
||||||
ssl->hsHashes->length += sz;
|
|
||||||
}
|
msgs = (byte*)XREALLOC(ssl->hsHashes->messages, ssl->hsHashes->length + sz,
|
||||||
|
ssl->heap, DYNAMIC_TYPE_HASHES);
|
||||||
|
if (msgs == NULL)
|
||||||
|
ret = MEMORY_E;
|
||||||
|
if (ret == 0) {
|
||||||
|
ssl->hsHashes->messages = msgs;
|
||||||
|
XMEMCPY(msgs + ssl->hsHashes->length, data, sz);
|
||||||
|
ssl->hsHashes->prevLen = ssl->hsHashes->length;
|
||||||
|
ssl->hsHashes->length += sz;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user