aes-pkcs
Version:
AES 128/256, CBC mode, PKCS #5/7 Paddiong, Base64 encoding
65 lines • 2.27 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AesPkcs5 = void 0;
var crypto = __importStar(require("crypto"));
/**
* Utility class for AES Encryption.
*
* - AES-128/256
* - CBC mode
* - PKCS#5 Padding
* - Base64 Encoding
*
* @author Jeongho Nam - https://github.com/samchon
*/
var AesPkcs5;
(function (AesPkcs5) {
/**
* Encode data
*
* @param data Target data
* @param key Key value of the encryption.
* @param iv Initializer Vector for the encryption
* @return Encoded data
*/
function encode(data, key, iv) {
var bytes = key.length * 8;
var cipher = crypto.createCipheriv("AES-" + bytes + "-CBC", key, iv);
return cipher.update(data, "utf8", "base64") + cipher.final("base64");
}
AesPkcs5.encode = encode;
/**
* Decode data.
*
* @param data Target data
* @param key Key value of the decryption.
* @param iv Initializer Vector for the decryption
* @return Decoded data.
*/
function decode(data, key, iv) {
var bytes = key.length * 8;
var decipher = crypto.createDecipheriv("AES-" + bytes + "-CBC", key, iv);
return decipher.update(data, "base64", "utf8") + decipher.final("utf8");
}
AesPkcs5.decode = decode;
})(AesPkcs5 = exports.AesPkcs5 || (exports.AesPkcs5 = {}));
//# sourceMappingURL=AesPkcs5.js.map