private utf8decoder = new TextDecoder();
private utf8encoder = new TextEncoder();
private _aesMode = CryptoES.mode.CBC;
private _aesPadding = CryptoES.pad.Pkcs7;
private _aesKeyByte: CryptoES.lib.WordArray = null;
private _ivKeyByte: CryptoES.lib.WordArray = null;
public SetAesKey(aesKey: string) {
let key = this.utf8encoder.encode(aesKey);
this._aesKeyByte = CryptoES.lib.WordArray.create(key);
this._ivKeyByte = CryptoES.lib.WordArray.create(key);
// this._aesKeyByte = CryptoES.enc.Hex.parse(aesKey);
// this._ivKeyByte = CryptoES.enc.Hex.parse(aesKey);
}
public AESEncrypt(buffer: ArrayBuffer): ArrayBuffer {
let encryptedData = CryptoES.AES.encrypt(
CryptoES.lib.WordArray.create(buffer),
this._aesKeyByte,
{
mode: this._aesMode,
padding: this._aesPadding,
iv: this._ivKeyByte
}
);
var strBase64 = encryptedData.ciphertext.toString(CryptoES.enc.Base64);
let buf = Base64Help.Inst.decode(strBase64);
return buf;
}
public AESDecrypt(buffer: ArrayBuffer): ArrayBuffer {
let decryptedData = CryptoES.AES.decrypt(
CryptoES.lib.CipherParams.create({ciphertext: CryptoES.lib.WordArray.create(buffer)}),
this._aesKeyByte,
{
mode: this._aesMode,
padding: this._aesPadding,
iv: this._ivKeyByte
}
);
var strBase64 = decryptedData.toString(CryptoES.enc.Base64);
let buf = Base64Help.Inst.decode(strBase64);
return buf;
}