目录
密钥是由密钥属性和密钥数据共同组成的,密钥属性决定了其在管理周期内的角色和能力。
typedef struct psa_key_attributes_s psa_key_attributes_t;
struct psa_key_attributes_s
{
psa_core_key_attributes_t MBEDTLS_PRIVATE(core);
void *MBEDTLS_PRIVATE(domain_parameters);
size_t MBEDTLS_PRIVATE(domain_parameters_size);
};
从结构体看 密钥属性包含两部分(这里我们先抛弃MBEDTLS_PSA_CRYPTO_SE_C这个安全模块驱动实现部分),核心属性core和可选的参数domain_parameters,这里可以对应一下《X9 TR-31》,和这个规范里边的key header block定义很相似。core定义了密钥的关键属性,domain_parameters部分定义了一些可选的属性,例如rsa密钥的public exponent = 65537,或者定义了一个SECP256R1的Elliptic Curves的密钥,那么可以在这个domain_parameters参数中设置参数域的数据。
typedef struct
{
psa_key_type_t MBEDTLS_PRIVATE(type);
psa_key_bits_t MBEDTLS_PRIVATE(bits);
psa_key_lifetime_t MBEDTLS_PRIVATE(lifetime);