2021-05-08 22:41:28 +03:00

35 lines
964 B
JavaScript

const { IGE: aes_ige } = require('@cryptography/aes');
const Helpers = require('../Helpers');
class IGENEW {
constructor(key, iv) {
this.ige = new aes_ige(key, iv);
}
/**
* Decrypts the given text in 16-bytes blocks by using the given key and 32-bytes initialization vector
* @param cipherText {Buffer}
* @returns {Buffer}
*/
decryptIge(cipherText) {
return Helpers.convertToLittle(this.ige.decrypt(cipherText));
}
/**
* Encrypts the given text in 16-bytes blocks by using the given key and 32-bytes initialization vector
* @param plainText {Buffer}
* @returns {Buffer}
*/
encryptIge(plainText) {
const padding = plainText.length % 16;
if (padding) {
plainText = Buffer.concat([plainText, Helpers.generateRandomBytes(16 - padding)]);
}
return Helpers.convertToLittle(this.ige.encrypt(plainText));
}
}
module.exports = IGENEW;