Skip to content

Instantly share code, notes, and snippets.

@iamucil
Created April 2, 2021 23:24
Show Gist options
  • Save iamucil/c828b61cd7b34daed3e9bf47d9439e32 to your computer and use it in GitHub Desktop.
Save iamucil/c828b61cd7b34daed3e9bf47d9439e32 to your computer and use it in GitHub Desktop.
hmac signature sha256
clientID = pm.variables.get("CLIENT_ID");
clientSecret = pm.variables.get("CLIENT_SECRET");
authStr = btoa(clientID +":"+ clientSecret);
pm.environment.set("BASIC_AUTHORIZATION_REQUEST",authStr);
apiKey = pm.variables.get("API-Key");
var ts = (new Date()).toISOString();
pm.environment.set("Timestamp", ts);

var jsonReq = JSON.parse(pm.request.body);
var jsonBody = JSON.stringify(jsonReq, null, 0);
jsonBody = jsonBody.trim().replace(/\s/g,'');
var md5checksum = CryptoJS.MD5(jsonBody);
base64ChecksumValue = CryptoJS.enc.Base64.stringify(md5checksum);

var signatureRawData = ts+":" + clientID + ":"+pm.request.method.toUpperCase()+":"+ base64ChecksumValue
var signatureBytes = CryptoJS.HmacSHA256(signatureRawData, clientSecret);
base64Signature = CryptoJS.enc.Base64.stringify(signatureBytes);
var digestSignatureRaw = apiKey+":"+base64Signature;
digestSignature = btoa(digestSignatureRaw);
pm.environment.set("SIGNATURE", digestSignature);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment