All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.7.3 - 2023-12-24
- Add support for
musicex
tail tag (QMPC)
0.7.2 - 2023-12-21
- Add
utils::UnHex
method.
0.7.1 - 2023-12-21
- Expose
qtfm::CreateDeviceSecretKey
method.
0.7.0 - 2023-11-28
- Support for QingTingFM (
.qta
) files. - Added CTR mode for AES encryption/decryption.
- Refactored AES code base with templates.
0.6.5 - 2023-11-17
- Remove use of
sprintf
from the code base.
0.6.4 - 2023-11-17
- Expose
base64
andtc_tea
methods.
0.6.3 - 2023-10-11
- Improved
QMC2DecryptionTransformer
allowing user to override with a specific key.
0.6.2 - 2023-07-16
- Fixed QRC decode - it should not report error in the end.
- Removed Crypto++ dependency.
0.6.1 - 2023-06-17
- Fixed
SlicedReadableStream
read/seek behaviour at start boundary. - Fixed kuwo parser to use
uint32_t
forresource_id
.
0.6.0 - 2023-06-17
- Support KWMv2 (via QMCv2) with custom ekey.
0.5.0 - 2023-05-27
- Support for QRC Lyrics decryption.
- Support for Migu3D decryption (key & keyless).
- Documented kuwo's crypto_version field.
- Target CMake 3.22.1 with preset version 3 (was 5)
0.4.1 - 2022-02-20
- QMC2: Fixed a bug in segment key generation.
0.4.0 - 2022-02-13
- QMC2: Expose constant
kEncV2KeyLen
. - QMC2: Added a helper transformer that can handle both QMC2(MAP) & QMC2(RC4).
- XMLY: Added helper function
CreateScrambleKey
. - MISC: Logger that can be disabled using CMAKE options
PARAKEET_CRYPTO_LOGGING_ENABLE_WARN
andPARAKEET_CRYPTO_LOGGING_ENABLE_ERROR
. - MISC: Various helper functions that takes container template.
- KGM: Broken
vpr
implementation (mode selection) - NCM: Check for header and exit early
- KUWO: non-reusable decryption transformer (key initialisation)
- XIAMI: Fixed key derivation
0.3.0 - 2022-02-11
ITransformer
interface for transformation.- Test file for all transformer implemented.
- (breaking) Interface changes
- dropped old
StreamDecryptor
interface, infavour of redesignedITransformer
.
- dropped old
- Reduced C++ standard from C++20 to C++17 for better tooling support.
- Fixed KGM-Type4 implementaion discovered during refactoring.
- Removed
DecryptorManager
. You should implement your own. - Removed audio type detection, use libparakeet-audio instead.
- (breaking)
parakeet_crypto::utils::Unhex
renamed toparakeet_crypto::utils::UnHex
. - Make utils functions to take
std::span<uint8_t>
instead ofstd::vector
/std::string
, with wrappers to provide backward compatibility.
- Fix assertion macro when generating Ximalaya X2M/X3M table using parameters.
- New API -
parakeet_crypto::get_libparakeet_full_version
for full library version, including commit date and hash. - Ximalaya - New API to generate scramble table on-the-fly by using
init
andstep
parameters.
0.2.1 - 2022-11-13
- Improved Kuwo
kwm
support for files with an alternate header magic values.
0.2.0 - 2022-11-13
-
Source import from parakeet-wx
-
Re-implement the support for Kugou
kgm
/vpr
format.- Support for Kugou
kgm
/vpr
files. - Support for KuWo
kwm
files. - Support for Netease
ncm
files. - Support for QMCv1 and partial support for QMCv2 files.
- Support for Xiami
xm
files. - Support for Joox
ofl_en
files. - Support for Ximalaya
x2m
/x3m
files. - Audio type detection via file header.
- Support for Kugou