Files
UnlockedByDaylight/src/unlocker/dbdcrypt.h
T
neru 9637931164
Build / build (push) Successful in 3m30s
fix: add missing includes
2026-04-13 01:21:45 -03:00

53 lines
2.0 KiB
C++

#pragma once
#include <string>
#include <vector>
#include <cstdint>
// 9.5.2_live
#define ACCESS_KEY "BGz7nwlRX8QP__fzvqrgpNRVqrlEyuY54vuGVAqDO_g="
#define KEY_ID "9.5.2_live"
/*
hardcoded variables (they have been the same since like 2017)
*/
#define CDN_KEY_BASE64 "lEQWeCt51ET+MIuxdTs7Ig/gzVZP2vdkVZA1BDfz+L0="
#define CDN_UUID "6EF35759-454D-4EBC-8041-9A94CB99FD5D"
class DBDCrypt
{
public:
enum PayloadType
{
NONE = 0,
TYPE_1, // compressed
TYPE_2, // CDN
TYPE_3 // dyn / accesskey
};
static std::string decrypt(const std::string& data, const std::string& accessKey,
PayloadType* outType = nullptr);
static std::string encrypt(const std::string& data, const std::string& accessKey, PayloadType type,
std::string keyId);
private:
static std::string decType1(const std::string& data, const std::string& key, PayloadType* outType);
static std::string decType2(const std::string& data, const std::string& key, PayloadType* outType);
static std::string decType3(const std::string& data, const std::string& key, PayloadType* outType);
static std::string aesECBDecrypt(const std::vector<uint8_t>& cipherText, const std::vector<uint8_t>& key);
static std::string aesECBEncrypt(const std::vector<uint8_t>& plainText, const std::vector<uint8_t>& key);
static std::vector<uint8_t> b64Dec(const std::string& input);
static std::string b64Enc(const std::vector<uint8_t>& input);
static std::string zlibDecompress(const std::vector<uint8_t>& compressed);
static std::vector<uint8_t> zLibCompress(const std::string& data);
static std::vector<uint8_t> transformCDNKey(const std::string& b64CDNKey);
static std::string shiftKeyID(const std::string& id, int shift);
static std::string utf16ToUtf8(const std::string& utf16);
static std::string utf8ToUtf16(const std::string& utf8);
};