UNPKG

@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
/* 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;