download
raw
870 Bytes
import { DecrypterAesMode } from './decrypter-aes-mode';
export default class FastAESKey {
private subtle: SubtleCrypto;
private key: ArrayBuffer;
private aesMode: DecrypterAesMode;
constructor(
subtle: SubtleCrypto,
key: ArrayBuffer,
aesMode: DecrypterAesMode,
) {
this.subtle = subtle;
this.key = key;
this.aesMode = aesMode;
}
expandKey() {
const subtleAlgoName = getSubtleAlgoName(this.aesMode);
return this.subtle.importKey(
'raw',
this.key,
{ name: subtleAlgoName },
false,
['encrypt', 'decrypt'],
);
}
}
function getSubtleAlgoName(aesMode: DecrypterAesMode) {
switch (aesMode) {
case DecrypterAesMode.cbc:
return 'AES-CBC';
case DecrypterAesMode.ctr:
return 'AES-CTR';
default:
throw new Error(`[FastAESKey] invalid aes mode ${aesMode}`);
}
}

Xet Storage Details

Size:
870 Bytes
·
Xet hash:
8b89cabfa426e53731c8da5ed53c168eaf7242537c64f290a3f6e3ef47118a11

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.