// Remove objetos de execuções anteriores, se existirem for (constnameof [keyName, certName]) { try { awaitconn.key.delete(name); } catch { // Objeto não existe } }
// Importa a chave privada e o certificado awaitconn.key.import(keyName, hsm.enums.RSA_ASYMMETRIC_KEYS.ALG_RSA_2048, testKey, true); awaitconn.key.importCertificate(certName, testCert); console.log("Chave e certificado importados");
// Gera o JWS (Compact Serialization: header.payload.assinatura em base64url) constjws = awaitconn.pix.PIXJWSSign( keyName, // Nome da chave privada 0, // Flags de geração header, // Cabeçalho JWS payload// Payload JWS ); console.log("JWS gerado:", jws.toString());
// Verifica o JWS no HSM usando o certificado como âncora de confiança. // Em caso de assinatura inválida, chave incorreta ou certificado expirado, // uma exceção HsmError é lançada com o código de erro retornado pelo HSM. constchecked = awaitconn.pix.PIXJWSCheck( certName, // Nome do certificado/cadeia de confiança null, // CRL (opcional) jws, // JWS a ser verificado 0// Flags de verificação ); console.log("JWS verificado com sucesso"); console.log("Cabeçalho retornado:", checked.header.toString()); console.log("Payload retornado:", checked.payload.toString());
// Remove os objetos criados for (constnameof [keyName, certName]) { awaitconn.key.delete(name); }
// Desconecta do HSM awaitconn.disconnect(); }
// Executa a função pixJwsSignCheck pixJwsSignCheck();