Skip to content

Commit 634e547

Browse files
committed
Initial implementation of new option to always copy over key to SSL ctx
1 parent bc68819 commit 634e547

3 files changed

Lines changed: 19 additions & 0 deletions

File tree

src/internal.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6829,7 +6829,14 @@ int SetSSL_CTX(WOLFSSL* ssl, WOLFSSL_CTX* ctx, int writeDup)
68296829
ssl->buffers.certChainCnt = ctx->certChainCnt;
68306830
#endif
68316831
#ifndef WOLFSSL_BLIND_PRIVATE_KEY
6832+
#ifdef WOLFSSL_COPY_KEY
6833+
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,
6834+
ctx->privateKey->length, ctx->privateKey->type,
6835+
ctx->privateKey->heap);
6836+
ssl->buffers.weOwnKey = 1;
6837+
#else
68326838
ssl->buffers.key = ctx->privateKey;
6839+
#endif
68336840
#else
68346841
if (ctx->privateKey != NULL) {
68356842
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,

src/ssl.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20410,7 +20410,14 @@ WOLFSSL_CTX* wolfSSL_set_SSL_CTX(WOLFSSL* ssl, WOLFSSL_CTX* ctx)
2041020410
ssl->buffers.certChainCnt = ctx->certChainCnt;
2041120411
#endif
2041220412
#ifndef WOLFSSL_BLIND_PRIVATE_KEY
20413+
#ifdef WOLFSSL_COPY_KEY
20414+
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,
20415+
ctx->privateKey->length, ctx->privateKey->type,
20416+
ctx->privateKey->heap);
20417+
ssl->buffers.weOwnKey = 1;
20418+
#else
2041320419
ssl->buffers.key = ctx->privateKey;
20420+
#endif
2041420421
#else
2041520422
if (ctx->privateKey != NULL) {
2041620423
AllocCopyDer(&ssl->buffers.key, ctx->privateKey->buffer,

wolfssl/wolfcrypt/settings.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3581,6 +3581,11 @@ extern void uITRON4_free(void *p) ;
35813581
#define WOLFSSL_COPY_CERT
35823582
#endif
35833583

3584+
#if defined(OPENSSL_ALL) && !defined(WOLFSSL_NO_COPY_KEY)
3585+
#undef WOLFSSL_COPY_KEY
3586+
#define WOLFSSL_COPY_KEY
3587+
#endif
3588+
35843589
/*
35853590
* Keeps the "Finished" messages after a TLS handshake for use as the so-called
35863591
* "tls-unique" channel binding. See comment in internal.h around clientFinished

0 commit comments

Comments
 (0)