@cybersource/flex-sdk-node
Version:
Easily create keys for use in a Flex API integration and verifying Flex token contents
22 lines (16 loc) • 597 B
JavaScript
/* Copyright (c) 2018 by CyberSource */
const crypto = require('crypto');
function generateSignature(headers, keyId, sharedSecret) {
const headerKeys = Object.keys(headers);
const signatureString = headerKeys.map(key => `${key}: ${headers[key]}`).join('\n');
const signature = crypto.createHmac('sha256', Buffer.from(sharedSecret, 'base64'))
.update(signatureString)
.digest('base64');
return [
`keyid="${keyId}"`,
'algorithm="HmacSHA256"',
`headers="${headerKeys.join(' ')}"`,
`signature="${signature}"`,
].join(', ');
}
module.exports = generateSignature;