mirror of
https://github.com/anidl/multi-downloader-nx.git
synced 2026-04-21 08:21:56 +00:00
69 lines
1.5 KiB
TypeScript
69 lines
1.5 KiB
TypeScript
enum KeyType {
|
|
Invalid = 0x0000,
|
|
AES128CTR = 0x0001,
|
|
RC4 = 0x0002,
|
|
AES128ECB = 0x0003,
|
|
Cocktail = 0x0004,
|
|
AESCBC = 0x0005,
|
|
UNKNOWN = 0xffff,
|
|
}
|
|
|
|
function getKeyType(value: number): KeyType {
|
|
switch (value) {
|
|
case KeyType.Invalid:
|
|
case KeyType.AES128CTR:
|
|
case KeyType.RC4:
|
|
case KeyType.AES128ECB:
|
|
case KeyType.Cocktail:
|
|
case KeyType.AESCBC:
|
|
return value;
|
|
default:
|
|
return KeyType.UNKNOWN;
|
|
}
|
|
}
|
|
|
|
enum CipherType {
|
|
Invalid = 0x0000,
|
|
RSA128 = 0x0001,
|
|
ChainedLicense = 0x0002,
|
|
ECC256 = 0x0003,
|
|
ECCforScalableLicenses = 0x0004,
|
|
Scalable = 0x0005,
|
|
UNKNOWN = 0xffff,
|
|
}
|
|
|
|
function getCipherType(value: number): CipherType {
|
|
switch (value) {
|
|
case CipherType.Invalid:
|
|
case CipherType.RSA128:
|
|
case CipherType.ChainedLicense:
|
|
case CipherType.ECC256:
|
|
case CipherType.ECCforScalableLicenses:
|
|
case CipherType.Scalable:
|
|
return value;
|
|
default:
|
|
return CipherType.UNKNOWN;
|
|
}
|
|
}
|
|
|
|
export class Key {
|
|
key_id: string;
|
|
key_type: KeyType;
|
|
cipher_type: CipherType;
|
|
key_length: number;
|
|
key: string;
|
|
|
|
constructor(
|
|
key_id: string,
|
|
key_type: number,
|
|
cipher_type: number,
|
|
key_length: number,
|
|
key: Buffer
|
|
) {
|
|
this.key_id = key_id;
|
|
this.key_type = getKeyType(key_type);
|
|
this.cipher_type = getCipherType(cipher_type);
|
|
this.key_length = key_length;
|
|
this.key = key.toString('hex');
|
|
}
|
|
}
|