* openUBMC is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#ifndef __CAPABILITY_H__
#define __CAPABILITY_H__
#include "common.h"
#include "industry_standard/spdm.h"
#include "library/spdm_common_lib.h"
#define CAPABILITY_FLAG \
(SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CERT_CAP | SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHAL_CAP | \
SPDM_GET_CAPABILITIES_REQUEST_FLAGS_CHUNK_CAP)
#define MEASUREMENT_SPEC SPDM_MEASUREMENT_SPECIFICATION_DMTF
#ifdef G_ENABLE_TEST
#define ASYM_ALGO \
(SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P384 | \
SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P256)
#else
#define ASYM_ALGO \
(SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_2048 | SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_3072 | \
SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_RSAPSS_4096 | SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_ECDSA_ECC_NIST_P521 | \
SPDM_ALGORITHMS_BASE_ASYM_ALGO_TPM_ALG_SM2_ECC_SM2_P256)
#endif
#define HASH_ALGO \
(SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_256 | SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_384 | \
SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_512 | SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SM3_256)
string GetCapabilityString(const string& cap_type, uint32_t cap);
#endif