Merge pull request 'fix(kwm): allow new magic header on unlock-music web edition' (#22) from Yuki1536/um-web:master into master
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #22
Reviewed-by: um-dev <dev@unlock-music.dev>
This commit is contained in:
Unlock Music Dev 2022-12-05 03:12:36 +00:00
commit 47b7273dbc

View File

@ -15,12 +15,16 @@ import { DecryptResult } from '@/decrypt/entity';
const MagicHeader = [ const MagicHeader = [
0x79, 0x65, 0x65, 0x6C, 0x69, 0x6F, 0x6E, 0x2D, 0x79, 0x65, 0x65, 0x6C, 0x69, 0x6F, 0x6E, 0x2D,
0x6B, 0x75, 0x77, 0x6F, 0x2D, 0x74, 0x6D, 0x65, 0x6B, 0x75, 0x77, 0x6F, 0x2D, 0x74, 0x6D, 0x65,
] ];
const MagicHeader2 = [
0x79, 0x65, 0x65, 0x6C, 0x69, 0x6F, 0x6E, 0x2D,
0x6B, 0x75, 0x77, 0x6F, 0x00, 0x00, 0x00, 0x00,
];
const PreDefinedKey = 'MoOtOiTvINGwd2E6n0E1i7L5t2IoOoNk'; const PreDefinedKey = 'MoOtOiTvINGwd2E6n0E1i7L5t2IoOoNk';
export async function Decrypt(file: File, raw_filename: string, _: string): Promise<DecryptResult> { export async function Decrypt(file: File, raw_filename: string, _: string): Promise<DecryptResult> {
const oriData = new Uint8Array(await GetArrayBuffer(file)); const oriData = new Uint8Array(await GetArrayBuffer(file));
if (!BytesHasPrefix(oriData, MagicHeader)) { if (!BytesHasPrefix(oriData, MagicHeader) && !BytesHasPrefix(oriData, MagicHeader2)) {
if (SniffAudioExt(oriData) === 'aac') { if (SniffAudioExt(oriData) === 'aac') {
return await RawDecrypt(file, raw_filename, 'aac', false); return await RawDecrypt(file, raw_filename, 'aac', false);
} }