#include "dinamo.h"
Campos de Dados | |
BYTE | bOp |
char | szDst [MAX_OBJ_ID_FQN_LEN] |
BYTE | bCtxLen |
BYTE | pbCtx [DN_KEM_D_MAX_CTX_LEN] |
DWORD | dwType |
DWORD | dwAttr |
Informações relativas ao shared secret KEM (Key Encapsulation Mechanism).
Atualmente suporta o padrão ML-KEM de acordo com a FIPS-203.
BYTE bOp |
Operação que deverá ser realizada com o shared secret.
Valor | Signficado |
---|---|
DN_KEM_OP_SHARED_SECRET | Retorna o shared secret, sem criar chave. Os outros membros da estrutura deverão estar zerados. O Retorno será o shared secret com tamanho DN_KEM_D_ML_KEM_SS_LEN para chaves ML-KEM. |
DN_KEM_OP_DIRECT_KEY | Cria uma chave no HSM usando o shared secret. O tamanho da chave selecionada deverá ser menor ou igual ao tamanho do shared secret. Para ML-KEM o tamanho é de DN_KEM_D_ML_KEM_SS_LEN. Caso a chave seja maior, usar DN_KEM_OP_X9_63_SHA256. Preencher os outros campos da estrutura, não é preciso preencher pbCtx e bCtxLen. |
DN_KEM_OP_X9_63_SHA256 | Cria uma chave no HSM usando o KDF (Key Derivation Function) x9.63 SHA256 utilizando como parâmetros o shared secret e o contexto informado em pbCtx (opcional). É feito o stretching do shared secret até o tamanho necessário para a chave. Preencher todos os outros campos da estrutura, pbCtx (opcional). |
char szDst[MAX_OBJ_ID_FQN_LEN] |
Nome da chave de destino, gerada à partir do shared secret. Ver operações DN_KEM_OP_DIRECT_KEY e DN_KEM_OP_X9_63_SHA256. Caso não seja utilizado, preencher com zeros.
BYTE bCtxLen |
Tamanho de pbCtx. Caso não seja usado deve ser zero.
BYTE pbCtx[DN_KEM_D_MAX_CTX_LEN] |
Contexto, opcional, de derivação de chave quando utilizando a operação DN_KEM_OP_X9_63_SHA256. O tamanho máximo deste buffer é DN_KEM_D_MAX_CTX_LEN. Caso não seja utilizado, preencher com zeros.
DWORD dwType |
Tipo da chave gerada no HSM. Selecionar caso esteja utilizando DN_KEM_OP_DIRECT_KEY ou DN_KEM_OP_X9_63_SHA256. A chave pode ser simétrica, HMAC ou CSP (Critical Security Parameter). No caso do CSP (Critical Security Parameter) terá o tamanho do shared secret, ver bOp. Ver opções em DGenerateKey(). Caso não seja utilizado, deve ser 0.
DWORD dwAttr |
Atributos da chave criada. Ver DGenerateKey(). Caso não seja utilizado, deve ser 0.