diff --git a/src/ssl.c b/src/ssl.c index eb7d13e67..ac656d48d 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -5472,6 +5472,14 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff, case RSAk: #ifdef HAVE_PK_CALLBACKS keyType = rsa_sa_algo; + #endif + #ifdef HAVE_PKCS11 + if (ctx) { + ctx->privateKeyType = rsa_sa_algo; + } + else { + ssl->buffers.keyType = rsa_sa_algo; + } #endif /* Determine RSA key size by parsing public key */ idx = 0; @@ -5500,6 +5508,14 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff, case ECDSAk: #ifdef HAVE_PK_CALLBACKS keyType = ecc_dsa_sa_algo; + #endif + #ifdef HAVE_PKCS11 + if (ctx) { + ctx->privateKeyType = ecc_dsa_sa_algo; + } + else { + ssl->buffers.keyType = ecc_dsa_sa_algo; + } #endif /* Determine ECC key size based on curve */ keySz = wc_ecc_get_curve_size_from_id( @@ -5525,6 +5541,14 @@ int ProcessBuffer(WOLFSSL_CTX* ctx, const unsigned char* buff, case ED25519k: #ifdef HAVE_PK_CALLBACKS keyType = ed25519_sa_algo; + #endif + #ifdef HAVE_PKCS11 + if (ctx) { + ctx->privateKeyType = ed25519_sa_algo; + } + else { + ssl->buffers.keyType = ed25519_sa_algo; + } #endif /* ED25519 is fixed key size */ keySz = ED25519_KEY_SIZE;