@unchainedshop/plugins
Version:
Because of a Typescript issue with upstream "postfinancecheckout", the Postfinance plugin has been disabled from transpilation, import the source ts files from src and enable node_module tsc or copy over the src/payment/postfinance-checkout to your projec
22 lines • 995 B
JavaScript
export const Security = {
NONE: '',
STATIC_SIGN: 'static-sign',
DYNAMIC_SIGN: 'dynamic-sign',
};
const generateSignature = ({ security, signKey }) => async (...parts) => {
// https://docs.datatrans.ch/docs/security-sign
if (security.toLowerCase() === Security.STATIC_SIGN)
return signKey;
if (security.toLowerCase() === Security.NONE)
return '';
const resultString = parts.filter(Boolean).join('');
const signKeyInBytes = Buffer.from(signKey, 'hex');
const key = await crypto.subtle.importKey('raw', Uint8Array.from(signKeyInBytes), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
const signatureBinary = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(resultString));
const hmacSubtle = Array.from(new Uint8Array(signatureBinary))
.map((byte) => byte.toString(16).padStart(2, '0'))
.join('');
return hmacSubtle;
};
export default generateSignature;
//# sourceMappingURL=generateSignature.js.map