Necesito crear una firma usando un algoritmo HMAC sha256 para mi solicitud de API. El mensaje que se va a cifrar es una concatenación de marca de tiempo, método http en mayúsculas, URI sin nombre de host + cuerpo de solicitud, si lo hay.
He probado lo siguiente:
const endpoint = pm.request.url.toString().split("{{BASE_URL}}").pop() var ts = Math.floor(Date.now() / 1000) var message = ts + pm.request.method.toUpperCase() + endpoint + pm.request.body var hmac = CryptoJs.algo.HMAC.create(CryptoJs.algo.SHA256, "{{SECRET_KEY}}") hmac.update(message) var hash = hmac.finalize()Sin embargo, la API se niega diciendo que la firma no coincide con la solicitud. En mi implementación análoga usando criptografía, no tengo ningún problema. ¿Qué estoy haciendo mal?
Editar:
La pregunta Cómo implementar hmacSHA256 con Javascipt usando CryptoJS sugerido en los comentarios es cómo implementar hmac desde cero usando cryptojs. Estoy tratando de entender por qué mi uso de la función inbuild cryptojs hmac no funciona.