UNPKG

quantique-converter

Version:
86 lines (76 loc) 2.15 kB
// AES Encryption const Crypto = require('crypto-js'); const convertTob64 = require('./convertTob64'); const convertAes256 = (value, parameters = {}) => { try { const defaultParameters = { purpose: 'enc', isParsed: true, skey: '', ...parameters, }; if (defaultParameters?.purpose === 'enc') { const monkeyStr = JSON.stringify(value); const monkenc = Crypto.AES.encrypt( monkeyStr || '', defaultParameters?.skey ).toString(); const monkeyb64 = convertTob64(monkenc)?.isValid ? convertTob64(monkenc)?.convertedValue : null; return monkeyb64 ? { isValid: true, error: '', convertedValue: monkeyb64, } : { isValid: false, error: 'Unable to Encrypt', convertedValue: null, }; } if (defaultParameters?.purpose === 'dec') { const monkeydec = convertTob64(value, { purpose: 'dec' })?.isValid ? convertTob64(value, { purpose: 'dec' })?.convertedValue : null; if (monkeydec) { if (defaultParameters?.isParsed) { const monkeyorg = JSON.parse( Crypto.AES.decrypt(monkeydec, defaultParameters?.skey).toString( Crypto.enc.Utf8 ) ); return { isValid: true, error: '', convertedValue: monkeyorg, }; } else { const monkeyorg = Crypto.AES.decrypt( monkeydec, defaultParameters?.skey ).toString(Crypto.enc.Utf8); return { isValid: true, error: '', convertedValue: monkeyorg, }; } } else { return { isValid: false, error: 'Unable to Decrypt', convertedValue: null, }; } } } catch (e) { return { isValid: false, error: 'Unable to Decrypt', convertedValue: null, }; } }; module.exports = convertAes256;