[kgm] refactor: convert to enum for dispatch

This commit is contained in:
鲁树人
2024-09-16 20:59:05 +01:00
parent e011f75d36
commit e45d09cf8e
5 changed files with 48 additions and 36 deletions

View File

@@ -4,6 +4,7 @@ use std::fs::File;
use std::io::{Read, Seek, SeekFrom, Write};
use std::path::PathBuf;
use umc_kgm::header::Header;
use umc_kgm::Decipher;
/// Decrypt a KGM/VPR file (Kugou Music)
#[derive(Args)]
@@ -23,7 +24,7 @@ impl ArgsKGM {
let mut header = [0u8; 0x40];
file_input.read_exact(&mut header)?;
let kgm_header = Header::from_buffer(&mut header)?;
let decipher = kgm_header.make_decipher()?;
let decipher = Decipher::new(&kgm_header)?;
file_input.seek(SeekFrom::Start(kgm_header.offset_to_data as u64))?;
let mut offset = 0usize;