tpm2: Remove test case for OpenSSL SSKDF to KDFe comparison

Remove the test case and renaming of the reference implementation of
CryptKDFe. Reverting this patch would bring the test case back in case
it was necessary.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
This commit is contained in:
Stefan Berger 2024-07-25 14:44:31 -04:00 committed by Stefan Berger
parent 2ff2f84170
commit 7d95e9ce41
5 changed files with 5 additions and 102 deletions

1
.gitignore vendored
View File

@ -52,7 +52,6 @@ Makefile
/tests/base64decode
/tests/fuzz
/tests/freebl_sha1flattensize
/tests/kdfe_openssl
/tests/nvram_offsets
/tests/object_size
/tests/tpm2_createprimary

View File

@ -392,15 +392,4 @@ LIB_EXPORT UINT16 CryptKDFe(TPM_ALG_ID hashAlg, // IN: hash algorithm used in
BYTE* keyStream // OUT: key buffer
);
#if USE_OPENSSL_FUNCTIONS_SSKDF // libtpms added begin: for test case
LIB_EXPORT UINT16 ReferenceCryptKDFe(TPM_ALG_ID hashAlg, // IN: hash algorithm used in HMAC
TPM2B* Z, // IN: Z
const TPM2B* label, // IN: a label value for the KDF
TPM2B* partyUInfo, // IN: PartyUInfo
TPM2B* partyVInfo, // IN: PartyVInfo
UINT32 sizeInBits, // IN: size of generated key in bits
BYTE* keyStream // OUT: key buffer
);
#endif // USE_OPENSSL_FUNCTIONS_SSKDF // libtpms added end
#endif // _CRYPT_HASH_FP_H_

View File

@ -815,12 +815,8 @@ LIB_EXPORT UINT16 CryptKDFa(
// 0 hash algorithm is not supported or is TPM_ALG_NULL
// > 0 the number of bytes in the 'keyStream' buffer
//
#if USE_OPENSSL_FUNCTIONS_SSKDF // libtpms added: begin
LIB_EXPORT UINT16 ReferenceCryptKDFe // Renamed for test case
#else
LIB_EXPORT UINT16 CryptKDFe
#endif // libtpms added
(TPM_ALG_ID hashAlg, // IN: hash algorithm used in HMAC
#if ! USE_OPENSSL_FUNCTIONS_SSKDF // libtpms added
LIB_EXPORT UINT16 CryptKDFe(TPM_ALG_ID hashAlg, // IN: hash algorithm used in HMAC
TPM2B* Z, // IN: Z
const TPM2B* label, // IN: a label value for the KDF
TPM2B* partyUInfo, // IN: PartyUInfo
@ -900,7 +896,7 @@ LIB_EXPORT UINT16 CryptKDFe
return (UINT16)((sizeInBits + 7) / 8);
}
#if USE_OPENSSL_FUNCTIONS_SSKDF
#else // USE_OPENSSL_FUNCTIONS_SSKDF
LIB_EXPORT UINT16 CryptKDFe(TPM_ALG_ID hashAlg, // IN: hash algorithm used in HMAC
TPM2B* Z, // IN: Z
const TPM2B* label, // IN: a label value for the KDF

View File

@ -56,11 +56,9 @@ if ENABLE_STATIC_TESTS
# object_size needs ANY_OBJECT_Marshal which only is accessible with '-static'
check_PROGRAMS += \
object_size \
kdfe_openssl
object_size
TESTS += \
object_size \
kdfe_openssl
object_size
object_size_SOURCES = object_size.c
object_size_CFLAGS = $(AM_CFLAGS) \
@ -72,19 +70,6 @@ object_size_CFLAGS = $(AM_CFLAGS) \
-I$(top_srcdir)/src/tpm2/crypto/openssl \
-DTPM_POSIX
object_size_LDFLAGS = $(AM_LDFLAGS)
kdfe_openssl_SOURCES = kdfe_openssl.c
kdfe_openssl_CFLAGS = $(AM_CFLAGS) \
-static \
-g -ggdb \
-I$(top_srcdir)/include/libtpms \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/tpm2 \
-I$(top_srcdir)/src/tpm2/crypto \
-I$(top_srcdir)/src/tpm2/crypto/openssl \
-DTPM_POSIX
kdfe_openssl_LDFLAGS = $(AM_LDFLAGS)
endif # ENABLE_STATIC_TESTS
endif # WITH_TPM2

View File

@ -1,66 +0,0 @@
#if USE_OPENSSL_FUNCTIONS_SSKDF
#include "Tpm.h"
#include "Helpers_fp.h"
int main(void)
{
UINT16 gen1, gen2;
TPM2B_LABEL Z = {
.t.size = 6,
.t.buffer = {1, 2, 3, 4, 5, 6},
};
TPM2B_LABEL label = {
.t.size = 5,
.t.buffer = "label",
};
TPM2B_LABEL partyUInfo = {
.t.size = 6,
.t.buffer = "test12",
};
TPM2B_LABEL partyVInfo = {
.t.size = 7,
.t.buffer = "test123",
};
TPM2B_LABEL info = {
.t.size = 8,
.t.buffer = "label123",
};
BYTE keyStream1[128] = {0, }, keyStream2[128] = {0, };
UINT32 sizeInBits = 8 * sizeof(keyStream2);
TPM_ALG_ID hashAlgs[] = {
TPM_ALG_SHA1,
TPM_ALG_SHA256,
TPM_ALG_SHA384,
TPM_ALG_SHA512
};
size_t i, o;
for (o = 0; o < 8; o++) {
for (i = 0; i < ARRAY_SIZE(hashAlgs); i++) {
gen1 = ReferenceCryptKDFe(hashAlgs[i], &Z.b, &label.b,
&partyUInfo.b, &partyVInfo.b, sizeInBits - o, keyStream1);
gen2 = OSSLCryptKDFe(hashAlgs[i], &Z.b, &label.b,
&partyUInfo.b, &partyVInfo.b, sizeInBits - o, keyStream2);
if (gen1 != gen2 || memcmp(keyStream1, keyStream2, gen1)) {
fprintf(stderr, "results are not equal: gen1: %d gen2: %d o: %d\n", gen1, gen2, o);
fprintf(stderr, "%02x %02x %02x .. %02x\n",
keyStream1[0], keyStream1[1], keyStream1[2], keyStream1[gen1 - 1]);
fprintf(stderr, "%02x %02x %02x .. %02x\n",
keyStream2[0], keyStream2[1], keyStream2[2], keyStream2[gen2 - 1]);
return 1;
}
}
}
}
#else
int main(void)
{
return 0;
}
#endif