tpm: TPM 2.0 supports SHA3 and CMAC
This commit is contained in:
@@ -59,6 +59,7 @@ ENUM_NEXT(tpm_alg_id_names, TPM_ALG_SM3_256, TPM_ALG_ECMQV, TPM_ALG_NULL,
|
|||||||
"OAEP",
|
"OAEP",
|
||||||
"ECDSA",
|
"ECDSA",
|
||||||
"ECDH",
|
"ECDH",
|
||||||
|
"ECDAA",
|
||||||
"SM2",
|
"SM2",
|
||||||
"ECSCHNORR",
|
"ECSCHNORR",
|
||||||
"ECMQV"
|
"ECMQV"
|
||||||
|
|||||||
@@ -62,11 +62,15 @@ ENUM_NEXT(tpm_alg_id_names, TPM2_ALG_KDF1_SP800_56A, TPM2_ALG_ECC, TPM2_ALG_ECMQ
|
|||||||
"KDF1_SP800_108",
|
"KDF1_SP800_108",
|
||||||
"ECC"
|
"ECC"
|
||||||
);
|
);
|
||||||
ENUM_NEXT(tpm_alg_id_names, TPM2_ALG_SYMCIPHER, TPM2_ALG_CAMELLIA, TPM2_ALG_ECC,
|
ENUM_NEXT(tpm_alg_id_names, TPM2_ALG_SYMCIPHER, TPM2_ALG_SHA3_512, TPM2_ALG_ECC,
|
||||||
"SYMCIPHER",
|
"SYMCIPHER",
|
||||||
"CAMELLIA"
|
"CAMELLIA",
|
||||||
|
"SHA3_256",
|
||||||
|
"SHA3_384",
|
||||||
|
"SHA3_512"
|
||||||
);
|
);
|
||||||
ENUM_NEXT(tpm_alg_id_names, TPM2_ALG_CTR, TPM2_ALG_ECB, TPM2_ALG_CAMELLIA,
|
ENUM_NEXT(tpm_alg_id_names, TPM2_ALG_CMAC, TPM2_ALG_ECB, TPM2_ALG_SHA3_512,
|
||||||
|
"CMAC",
|
||||||
"CTR",
|
"CTR",
|
||||||
"OFB",
|
"OFB",
|
||||||
"CBC",
|
"CBC",
|
||||||
|
|||||||
@@ -108,6 +108,12 @@ static TPM2_ALG_ID hash_alg_to_tpm_alg_id(hash_algorithm_t alg)
|
|||||||
return TPM2_ALG_SHA384;
|
return TPM2_ALG_SHA384;
|
||||||
case HASH_SHA512:
|
case HASH_SHA512:
|
||||||
return TPM2_ALG_SHA512;
|
return TPM2_ALG_SHA512;
|
||||||
|
case HASH_SHA3_256:
|
||||||
|
return TPM2_ALG_SHA3_256;
|
||||||
|
case HASH_SHA3_384:
|
||||||
|
return TPM2_ALG_SHA3_384;
|
||||||
|
case HASH_SHA3_512:
|
||||||
|
return TPM2_ALG_SHA3_512;
|
||||||
default:
|
default:
|
||||||
return TPM2_ALG_ERROR;
|
return TPM2_ALG_ERROR;
|
||||||
}
|
}
|
||||||
@@ -128,6 +134,12 @@ static hash_algorithm_t hash_alg_from_tpm_alg_id(TPM2_ALG_ID alg)
|
|||||||
return HASH_SHA384;
|
return HASH_SHA384;
|
||||||
case TPM2_ALG_SHA512:
|
case TPM2_ALG_SHA512:
|
||||||
return HASH_SHA512;
|
return HASH_SHA512;
|
||||||
|
case TPM2_ALG_SHA3_256:
|
||||||
|
return HASH_SHA3_256;
|
||||||
|
case TPM2_ALG_SHA3_384:
|
||||||
|
return HASH_SHA3_384;
|
||||||
|
case TPM2_ALG_SHA3_512:
|
||||||
|
return HASH_SHA3_512;
|
||||||
default:
|
default:
|
||||||
return HASH_UNKNOWN;
|
return HASH_UNKNOWN;
|
||||||
}
|
}
|
||||||
@@ -722,6 +734,7 @@ METHOD(tpm_tss_t, extend_pcr, bool,
|
|||||||
HASH_SIZE_SHA1);
|
HASH_SIZE_SHA1);
|
||||||
break;
|
break;
|
||||||
case HASH_SHA256:
|
case HASH_SHA256:
|
||||||
|
case HASH_SHA3_256:
|
||||||
if (data.len != HASH_SIZE_SHA256)
|
if (data.len != HASH_SIZE_SHA256)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -730,6 +743,7 @@ METHOD(tpm_tss_t, extend_pcr, bool,
|
|||||||
HASH_SIZE_SHA256);
|
HASH_SIZE_SHA256);
|
||||||
break;
|
break;
|
||||||
case HASH_SHA384:
|
case HASH_SHA384:
|
||||||
|
case HASH_SHA3_384:
|
||||||
if (data.len != HASH_SIZE_SHA384)
|
if (data.len != HASH_SIZE_SHA384)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -738,6 +752,7 @@ METHOD(tpm_tss_t, extend_pcr, bool,
|
|||||||
HASH_SIZE_SHA384);
|
HASH_SIZE_SHA384);
|
||||||
break;
|
break;
|
||||||
case HASH_SHA512:
|
case HASH_SHA512:
|
||||||
|
case HASH_SHA3_512:
|
||||||
if (data.len != HASH_SIZE_SHA512)
|
if (data.len != HASH_SIZE_SHA512)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
Reference in New Issue
Block a user