From 500313a9be94dacd353a448389edb76b8980538d Mon Sep 17 00:00:00 2001 From: Packit Date: Aug 20 2020 13:34:21 +0000 Subject: Apply patch opencryptoki-3.14.0-crash-in-c_setpin.patch patch_name: opencryptoki-3.14.0-crash-in-c_setpin.patch location_in_specfile: 3 present_in_specfile: true --- diff --git a/usr/lib/tpm_stdll/tpm_openssl.c b/usr/lib/tpm_stdll/tpm_openssl.c index e1fc080..ca281da 100644 --- a/usr/lib/tpm_stdll/tpm_openssl.c +++ b/usr/lib/tpm_stdll/tpm_openssl.c @@ -57,7 +57,7 @@ void openssl_print_errors() } #endif -RSA *openssl_gen_key() +RSA *openssl_gen_key(STDLL_TokData_t *tokdata) { RSA *rsa; int rc, counter = 0; @@ -66,7 +66,7 @@ RSA *openssl_gen_key() BIGNUM *bne; #endif - token_specific_rng(NULL, (CK_BYTE *) buf, 32); + token_specific_rng(tokdata, (CK_BYTE *) buf, 32); RAND_seed(buf, 32); regen_rsa_key: diff --git a/usr/lib/tpm_stdll/tpm_specific.c b/usr/lib/tpm_stdll/tpm_specific.c index dc5f80f..6b0be01 100644 --- a/usr/lib/tpm_stdll/tpm_specific.c +++ b/usr/lib/tpm_stdll/tpm_specific.c @@ -159,8 +159,6 @@ CK_RV token_specific_rng(STDLL_TokData_t * tokdata, CK_BYTE * output, TSS_HTPM hTPM; BYTE *random_bytes = NULL; - UNUSED(tokdata); - rc = Tspi_Context_GetTpmObject(tpm_data->tspContext, &hTPM); if (rc) { TRACE_ERROR("Tspi_Context_GetTpmObject: %x\n", rc); @@ -1389,7 +1387,7 @@ CK_RV token_create_private_tree(STDLL_TokData_t * tokdata, CK_BYTE * pinHash, unsigned char n[256], p[256]; /* all sw generated keys are 2048 bits */ - if ((rsa = openssl_gen_key()) == NULL) + if ((rsa = openssl_gen_key(tokdata)) == NULL) return CKR_HOST_MEMORY; if (openssl_get_modulus_and_prime(rsa, &size_n, n, &size_p, p) != 0) { @@ -1467,7 +1465,7 @@ CK_RV token_create_public_tree(STDLL_TokData_t * tokdata, CK_BYTE * pinHash, unsigned char n[256], p[256]; /* all sw generated keys are 2048 bits */ - if ((rsa = openssl_gen_key()) == NULL) + if ((rsa = openssl_gen_key(tokdata)) == NULL) return CKR_HOST_MEMORY; if (openssl_get_modulus_and_prime(rsa, &size_n, n, &size_p, p) != 0) { diff --git a/usr/lib/tpm_stdll/tpm_specific.h b/usr/lib/tpm_stdll/tpm_specific.h index 541b679..81af274 100644 --- a/usr/lib/tpm_stdll/tpm_specific.h +++ b/usr/lib/tpm_stdll/tpm_specific.h @@ -56,7 +56,7 @@ /* retry count for generating software RSA keys */ #define KEYGEN_RETRY 5 -RSA *openssl_gen_key(); +RSA *openssl_gen_key(STDLL_TokData_t *); int openssl_write_key(STDLL_TokData_t *, RSA *, char *, CK_BYTE *); CK_RV openssl_read_key(STDLL_TokData_t *, char *, CK_BYTE *, RSA **); int openssl_get_modulus_and_prime(RSA *, unsigned int *, unsigned char *,