// Define os parâmetros de conexão com o HSM constoptions = { host:"127.0.0.1", authUsernamePassword: { username:"master", password:"12345678", }, };
asyncfunctionimportKekWrap() { // Connecta ao HSM constconn = awaithsm.connect(options);
// Nome e Hexadecimal da chave que útilizaada para encriptar a chave AES constkekKeyName = "myKekKey"; constkekKeyData = Buffer.from( "1DBA0B9C732C697B204220F8D63A5FE2A521866864785A6CDB071152DA59639E", "hex" );
// Importa a chave útilizada para encriptar constkekImported = awaitconn.key.import( kekKeyName, // Nome da chave hsm.enums.SYMMETRICAL_KEYS.ALG_AES_256, // Algoritmo da chave kekKeyData, // Dados da chave true, // Se a chave é exportável true// Se a chave é temporária );
if (!kekImported) { console.log("Error importing KEK"); return; }
// Dados da chave que foi encriptada e será importada // Nome do chave constkeyName = "myEncryptedKey"; // IV (Inicialization Vector) utilizado para encriptar a chave constiv = "00000000000000000000000000000000"; // Dados da chave encriptada constdata = Buffer.from( "2C2E214A8A9D281D296FEF58F7474291FD0A9421C80A4161C3AE2CA253735854", "hex" );
// Importa a chave encriptada constimported = awaitconn.key.importKekWrap( hsm.enums.KEK_MODE.MODE_CBC, // Modo de operação para a importação da chave hsm.enums.KEK_WRAP_PADDING._0_PAD, // Padding utilizado na exportação da chave keyName, // Nome da chave kekKeyName, // Nome da chave útilizada para encriptar hsm.enums.SYMMETRICAL_KEYS.ALG_AES_256, // Algoritmo da chave data, // Dados da chave encriptada iv, // IV utilizado para encriptar a chave true, // Se a chave é exportável true// Se a chave é temporária );