/
githubmirror
/
swtpm
Обзор
Документация
Войти
/
githubmirror
/
swtpm
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/patches/libtpm.patch
203 строки
5 KB
Stefan Berger
tests: Extend tpm12 tests patch to fix issues with unused variables
14 июл 2026, 20:33
14 июл 2026, 20:33
de323e7
Код
Авторство
О чём код?
From ead78dc6991a2bbbfb49e57196a11221e7e0a578 Mon Sep 17 00:00:00 2001 From: Stefan Berger <stefanb@linux.ibm.com> Date: Wed, 11 Feb 2026 17:21:04 -0500 Subject: [PATCH] Patch for TPM 1.2 test suite to support recent gcc & OpenSSL versions. --- lib/hmac.c | 38 ++++++++++++++++++++++++++++++-------- lib/keys.c | 4 ++++ utils/delegatemanage.c | 12 ++++++------ utils/test_console.sh | 4 ++-- 4 files changed, 42 insertions(+), 16 deletions(-) diff --git a/lib/hmac.c b/lib/hmac.c index fb92d4e..f9ee343 100644 --- a/lib/hmac.c +++ b/lib/hmac.c @@ -3,7 +3,7 @@ /* TPM HMAC routines */ /* Written by J. Kravitz */ /* IBM Thomas J. Watson Research Center */ -/* $Id: hmac.c 4726 2014-09-03 22:02:10Z kgoldman $ */ +/* $Id: hmac.c 4771 2017-08-31 21:12:33Z kgoldman $ */ /* */ /* (c) Copyright IBM Corporation 2006, 2010. */ /* */ @@ -381,16 +381,29 @@ uint32_t TSS_authhmac(unsigned char *digest, unsigned char *key, unsigned int ke /****************************************************************************/ uint32_t TSS_rawhmac(unsigned char *digest, const unsigned char *key, unsigned int keylen, ...) { - HMAC_CTX hmac; +#if OPENSSL_VERSION_NUMBER < 0x10100000 + HMAC_CTX hmac; +#else + HMAC_CTX *hmac; +#endif unsigned int dlen; unsigned char *data; va_list argp; -#ifdef HAVE_HMAC_CTX_CLEANUP +#if OPENSSL_VERSION_NUMBER < 0x10100000 HMAC_CTX_init(&hmac); +#else + hmac = HMAC_CTX_new(); #endif - HMAC_Init(&hmac,key,keylen,EVP_sha1()); +#if OPENSSL_VERSION_NUMBER < 0x10100000 + HMAC_Init(&hmac,key,keylen,EVP_sha1()); +#else + HMAC_Init_ex(hmac, + key, keylen, /* HMAC key */ + EVP_sha1(), /* message digest method */ + NULL); +#endif va_start(argp,keylen); for (;;) { @@ -398,14 +411,23 @@ uint32_t TSS_rawhmac(unsigned char *digest, const unsigned char *key, unsigned i if (dlen == 0) break; data = (unsigned char *)va_arg(argp,unsigned char *); if (data == NULL) return ERR_NULL_ARG; - HMAC_Update(&hmac,data,dlen); + +#if OPENSSL_VERSION_NUMBER < 0x10100000 + HMAC_Update(&hmac, data, dlen); +#else + HMAC_Update(hmac, data, dlen); +#endif } - HMAC_Final(&hmac,digest,&dlen); +#if OPENSSL_VERSION_NUMBER < 0x10100000 + HMAC_Final(&hmac, digest, &dlen); +#else + HMAC_Final(hmac, digest, &dlen); +#endif -#ifdef HAVE_HMAC_CTX_CLEANUP +#if OPENSSL_VERSION_NUMBER < 0x10100000 HMAC_CTX_cleanup(&hmac); #else - HMAC_cleanup(&hmac); + HMAC_CTX_free(hmac); #endif va_end(argp); return 0; diff --git a/lib/keys.c b/lib/keys.c index de5171d..8cff4a6 100644 --- a/lib/keys.c +++ b/lib/keys.c @@ -1316,8 +1316,12 @@ RSA *TSS_convpubkey(pubkeydata *k) exp); } /* set up the RSA public key structure */ +#if OPENSSL_VERSION_NUMBER < 0x10100000 rsa->n = mod; rsa->e = exp; +#else + RSA_set0_key(rsa, mod, exp, NULL); +#endif return rsa; } diff --git a/utils/delegatemanage.c b/utils/delegatemanage.c index 0f7d0de..8ba9bea 100644 --- a/utils/delegatemanage.c +++ b/utils/delegatemanage.c @@ -78,7 +78,7 @@ int main(int argc, char *argv[]) const char *ownerAuthFilename = NULL; unsigned char ownerAuth[TPM_HASH_SIZE]; unsigned char *ownerAuthPtr = NULL; - TPM_BOOL bool = TRUE; + TPM_BOOL mybool = TRUE; int mode = -1; STACK_TPM_BUFFER(buffer); uint32_t len; @@ -158,10 +158,10 @@ int main(int argc, char *argv[]) usage(); } if (x == 0) { - bool = 0; + mybool = 0; } else { - bool = 1; + mybool = 1; } } else { printf("Missing parameter for -enable.\n"); @@ -178,10 +178,10 @@ int main(int argc, char *argv[]) usage(); } if (x == 0) { - bool = 0; + mybool = 0; } else { - bool = 1; + mybool = 1; } } else { printf("Missing parameter for -admin.\n"); @@ -264,7 +264,7 @@ int main(int argc, char *argv[]) case TPM_FAMILY_ADMIN: ret = TPM_Delegate_Manage(familyID, mode, - &bool, sizeof(TPM_BOOL), + &mybool, sizeof(TPM_BOOL), ownerAuthPtr, retbuffer, &retbufferlen); break; diff --git a/lib/delegation.c b/lib/delegation.c index d67845e..ac61ed5 100644 --- a/lib/delegation.c +++ b/lib/delegation.c @@ -697,6 +697,8 @@ TPM_BOOL TPM_FindDelegationBlob(uint32_t etype, } else { printf("NO entry found!\n"); } +#else + (void)entry; #endif return rc; } diff --git a/utils/sha.c b/utils/sha.c index 5f0df81..10af67e 100644 --- a/utils/sha.c +++ b/utils/sha.c @@ -256,7 +256,8 @@ int main(int argc, char * argv[]) { } } total += n; - + (void)total; + if (index >= 0) { ret = TPM_SHA1CompleteExtend(&buf[offset],n, index, diff --git a/utils/test_console.sh b/utils/test_console.sh index 3aabcb7..821da0f 100755 --- a/utils/test_console.sh +++ b/utils/test_console.sh @@ -61,7 +61,7 @@ USE_OWNERCLEAR="1" USE_HWTPM="0" export TPM_SERVER_NAME export TPM_SERVER_PORT -export TPM_TRANSPORT="0" +export TPM_TRANSPORT=${TPM_TRANSPORT:-0} export TPM_TRANSPORT_EK export TPM_TRANSPORT_EKP export TPM_TRANSPORT_SK @@ -71,7 +71,7 @@ export TPM_TRANSPORT_HANDLE export TPM_TRANSPORT_ENONCE export TPM_TRANSPORT_ENC export LOADKEY_VERSION="" -export TPM_AUDITING="0" +export TPM_AUDITING=${TPM_AUDITING:-0} export TPM_IS_FIPS="0" export TPM_ET_ENCRYPT_AES="0" export NO_SRK_PASSWORD=0 -- 2.52.0