Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions examples/pcr/policy_sign.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,6 @@ static void usage(void)
printf("./examples/pcr/policy_sign -pcr=16 -pcr=15 -pcrdigest=ba8ac02be16d9d33080d98611d70bb869aa8ac3fc684ab732b91f75f164b36bc\n");
}

#ifndef WC_MAX_ENCODED_DIG_ASN_SZ
#define WC_MAX_ENCODED_DIG_ASN_SZ 9 /* enum(bit or octet) + length(4) */
#endif

/* Function to sign policy with external key */
static int PolicySign(TPM_ALG_ID alg, const char* keyFile, const char* password,
TPM_ALG_ID hashAlg, byte* hash, word32 hashSz, byte* sig, word32* sigSz,
Expand Down Expand Up @@ -142,7 +138,7 @@ static int PolicySign(TPM_ALG_ID alg, const char* keyFile, const char* password,
#if !defined(NO_RSA) && !defined(NO_ASN)
rc = wc_InitRsaKey(&key.rsa, NULL);
if (rc == 0) {
byte encHash[WC_MAX_DIGEST_SIZE + WC_MAX_ENCODED_DIG_ASN_SZ];
byte encHash[WOLFTPM_MAX_DER_DIGEST_SZ];
word32 idx = 0;
#ifdef HAVE_PKCS8
/* skip PKCS8 header */
Expand Down
6 changes: 6 additions & 0 deletions src/fwtpm/fwtpm_command.c
Original file line number Diff line number Diff line change
Expand Up @@ -9518,6 +9518,12 @@ static TPM_RC FwCmd_Sign(FWTPM_CTX* ctx, TPM2_Packet* cmd,
/* Use key's scheme if command scheme is NULL */
FwResolveSignScheme(obj, &sigScheme, &sigHashAlg);
}
/* Part 3 Sec.20.2.1: digest size MUST match the scheme hashAlg digest
* size (matches FwCmd_SignDigest). */
if (rc == 0 && sigHashAlg != TPM_ALG_NULL &&
digest.size != (UINT16)TPM2_GetHashDigestSize(sigHashAlg)) {
rc = TPM_RC_SIZE;
}

/* Parse validation ticket (TPMT_TK_HASHCHECK) */
if (rc == 0) {
Expand Down
6 changes: 2 additions & 4 deletions src/fwtpm/fwtpm_crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -3905,8 +3905,7 @@ TPM_RC FwSignDigestAndAppend(FWTPM_CTX* ctx, FWTPM_Object* obj,
}
else {
/* RSASSA PKCS#1 v1.5: wrap in ASN.1 DigestInfo */
byte encHash[WC_MAX_DIGEST_SIZE +
MAX_ENCODED_DIG_ASN_SZ];
byte encHash[WOLFTPM_MAX_DER_DIGEST_SZ];
int encSz;
int oid = wc_HashGetOID(
(enum wc_HashType)wcHashType);
Expand Down Expand Up @@ -4064,8 +4063,7 @@ TPM_RC FwVerifySignatureCore(FWTPM_Object* obj,
}
else {
FWTPM_DECLARE_BUF(decSig, FWTPM_MAX_PUB_BUF);
byte expDI[WC_MAX_DIGEST_SIZE +
MAX_ENCODED_DIG_ASN_SZ];
byte expDI[WOLFTPM_MAX_DER_DIGEST_SZ];
int wcHash = FwGetRsaHashOid(
sig->signature.rsassa.hash);
int oid = wc_HashGetOID(
Expand Down
Loading
Loading