From 8a828db908fa384f0014f4d3c8c27a79e5ef1aef Mon Sep 17 00:00:00 2001 From: neru Date: Sun, 12 Apr 2026 20:57:01 -0300 Subject: [PATCH] fix: push type 2 encryption --- src/unlocker/dbdcrypt.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/unlocker/dbdcrypt.cpp b/src/unlocker/dbdcrypt.cpp index 69726f1..129f0b7 100644 --- a/src/unlocker/dbdcrypt.cpp +++ b/src/unlocker/dbdcrypt.cpp @@ -50,7 +50,27 @@ std::string DBDCrypt::encrypt(const std::string& data, const std::string& access return "DbdDAQEB" + b64Enc(fullPayload); } + if (type == TYPE_2) + { + auto transformedKey = transformCDNKey(CDN_KEY_BASE64); + + std::string shiftedData = data; + for (char& c : shiftedData) + c = (char)((unsigned char)c - 1); + + std::vector padded(shiftedData.begin(), shiftedData.end()); + int padLen = 16 - (padded.size() % 16); + if (padLen < 16) padded.insert(padded.end(), padLen, 0); + + auto encryptedBody = aesECBEncrypt(padded, transformedKey); + if (encryptedBody.empty()) return ""; + + std::vector fullPayload(encryptedBody.begin(), encryptedBody.end()); + return "DbdDAgAC" + b64Enc(fullPayload); + } + if (type == TYPE_3) + { auto decodedKey = b64Dec(accessKey); if (decodedKey.empty()) return "";