Compare commits

..

No commits in common. "75f22215b1fd3a346e830f68caead4655255e247" and "d378c6499eb3a22641b3c39b9d0feb1e50fd122e" have entirely different histories.

6 changed files with 30 additions and 41 deletions

View File

@ -52,11 +52,11 @@ jobs:
exit 1 exit 1
} }
- name: Download And Install 32-bit OpenSSL 3.1.5 - name: Download And Install 32-bit OpenSSL 3.1.4
run: | run: |
$installDir = "$Env:ProgramFiles\OpenSSL" $installDir = "$Env:ProgramFiles\OpenSSL"
$installerURL = "https://slproweb.com/download/Win32OpenSSL-3_1_5.exe" $installerURL = "https://slproweb.com/download/Win32OpenSSL-3_1_4.exe"
$installerName = "Win32OpenSSL-3_1_5.exe" $installerName = "Win32OpenSSL-3_1_4.exe"
$installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName" $installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName"
(New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath) (New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath)
@ -112,11 +112,11 @@ jobs:
exit 1 exit 1
} }
- name: Download And Install 64-bit OpenSSL 3.1.5 - name: Download And Install 64-bit OpenSSL 3.1.4
run: | run: |
$installDir = "$Env:ProgramFiles\OpenSSL" $installDir = "$Env:ProgramFiles\OpenSSL"
$installerURL = "https://slproweb.com/download/Win64OpenSSL-3_1_5.exe" $installerURL = "https://slproweb.com/download/Win64OpenSSL-3_1_4.exe"
$installerName = "Win64OpenSSL-3_1_5.exe" $installerName = "Win64OpenSSL-3_1_4.exe"
$installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName" $installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName"
(New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath) (New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath)

View File

@ -71,7 +71,6 @@ void CLI::showHelp(char *argv[]) {
fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n"); fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n");
fmt::print("\t-V --validate\tproduct key to validate signature\n"); fmt::print("\t-V --validate\tproduct key to validate signature\n");
fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n"); fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n");
fmt::print("\t-o --override\tDisables version check for confirmation ID's, if you need this send an issue on GitHub");
fmt::print("\n"); fmt::print("\n");
} }
@ -93,7 +92,6 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) {
false, false,
false, false,
false, false,
false,
MODE_BINK1998_GENERATE, MODE_BINK1998_GENERATE,
WINDOWS WINDOWS
}; };
@ -212,8 +210,6 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) {
} else if (arg == "-N" || arg == "--nonewlines") { } else if (arg == "-N" || arg == "--nonewlines") {
options->nonewlines = true; options->nonewlines = true;
} else if (arg == "-o" || arg == "--override") {
options->overrideVersion = true;
} else { } else {
options->error = true; options->error = true;
} }
@ -563,7 +559,7 @@ int CLI::BINK2002Validate() {
int CLI::ConfirmationID() { int CLI::ConfirmationID() {
char confirmation_id[49]; char confirmation_id[49];
int err = ConfirmationID::Generate(this->options.instid.c_str(), confirmation_id, options.activationMode, options.productid, options.overrideVersion); int err = ConfirmationID::Generate(this->options.instid.c_str(), confirmation_id, options.activationMode, options.productid);
switch (err) { switch (err) {
case ERR_TOO_SHORT: case ERR_TOO_SHORT:

View File

@ -68,7 +68,6 @@ struct Options {
bool error; bool error;
bool list; bool list;
bool nonewlines; bool nonewlines;
bool overrideVersion;
MODE applicationMode; MODE applicationMode;
ACTIVATION_ALGORITHM activationMode; ACTIVATION_ALGORITHM activationMode;

View File

@ -773,7 +773,7 @@ void ConfirmationID::Unmix(unsigned char* buffer, size_t bufSize, const unsigned
} }
} }
int ConfirmationID::Generate(const char* installation_id_str, char confirmation_id[49], int mode, std::string productid, bool overrideVersion) int ConfirmationID::Generate(const char* installation_id_str, char confirmation_id[49], int mode, std::string productid)
{ {
int version; int version;
unsigned char hardwareID[8]; unsigned char hardwareID[8];
@ -870,7 +870,7 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
iid_key[3] = 0xF3; iid_key[3] = 0xF3;
} }
Unmix(installation_id, totalCount == 41 ? 17 : 19, iid_key, 4); Unmix(installation_id, totalCount == 41 ? 17 : 19, iid_key, 4);
if (installation_id[18] >= 0x10 && overrideVersion == false) if (installation_id[18] >= 0x10)
return ERR_UNKNOWN_VERSION; return ERR_UNKNOWN_VERSION;
#pragma pack(push, 1) #pragma pack(push, 1)
@ -891,37 +891,31 @@ int ConfirmationID::Generate(const char* installation_id_str, char confirmation_
productID[2] = (parsed.ProductIDLow >> 27) & ((1 << 24) - 1); productID[2] = (parsed.ProductIDLow >> 27) & ((1 << 24) - 1);
version = (parsed.ProductIDLow >> 51) & 15; version = (parsed.ProductIDLow >> 51) & 15;
productID[3] = (parsed.ProductIDLow >> 55) | (parsed.ProductIDHigh << 9); productID[3] = (parsed.ProductIDLow >> 55) | (parsed.ProductIDHigh << 9);
if (overrideVersion == false) { switch (activationMode) {
switch (activationMode) { case 0:
case 0: if (version != (totalCount == 41 ? 9 : 10))
if (version != (totalCount == 41 ? 9 : 10)) return ERR_UNKNOWN_VERSION;
return ERR_UNKNOWN_VERSION; break;
break; case 1:
case 1: if (version != 1)
if (version != 1) return ERR_UNKNOWN_VERSION;
return ERR_UNKNOWN_VERSION; break;
break; case 3:
case 3: if (version != 4)
if (version != 4) return ERR_UNKNOWN_VERSION;
return ERR_UNKNOWN_VERSION;
}
} }
break; break;
case 2: case 2:
case 3: case 3:
decode_iid_new_version(installation_id, hardwareID, &version); decode_iid_new_version(installation_id, hardwareID, &version);
if (overrideVersion == false) { switch (activationMode) {
switch (activationMode) { case 2:
case 2: if (version != 3)
if (version != 3) return ERR_UNKNOWN_VERSION;
return ERR_UNKNOWN_VERSION; break;
break; case 3:
case 3:
if (version != 4) if (version != 4)
return ERR_UNKNOWN_VERSION; return ERR_UNKNOWN_VERSION;
break;
}
} }
memcpy(&parsed, hardwareID, 8); memcpy(&parsed, hardwareID, 8);
productID[0] = stoi(productid.substr(0,5)); productID[0] = stoi(productid.substr(0,5));

View File

@ -66,7 +66,7 @@ EXPORT class ConfirmationID {
static void Unmix(unsigned char* buffer, size_t bufSize, const unsigned char* key, size_t keySize); static void Unmix(unsigned char* buffer, size_t bufSize, const unsigned char* key, size_t keySize);
public: public:
static int Generate(const char* installation_id_str, char confirmation_id[49], int mode, std::string productid, bool overrideVersion); static int Generate(const char* installation_id_str, char confirmation_id[49], int mode, std::string productid);
//EXPORT static int CLIRun(); //EXPORT static int CLIRun();
}; };

View File

@ -27,8 +27,8 @@
#include "pidgen3/BINK2002.h" #include "pidgen3/BINK2002.h"
#include "pidgen2/PIDGEN2.h" #include "pidgen2/PIDGEN2.h"
FNEXPORT int ConfirmationID_Generate(const char* installation_id_str, char confirmation_id[49], int mode, std::string productid, bool bypassVersion) { FNEXPORT int ConfirmationID_Generate(const char* installation_id_str, char confirmation_id[49], int mode, std::string productid) {
return ConfirmationID::Generate(installation_id_str, confirmation_id, mode, productid, bypassVersion); return ConfirmationID::Generate(installation_id_str, confirmation_id, mode, productid);
} }
FNEXPORT EC_GROUP* PIDGEN3_initializeEllipticCurve(char* pSel, char* aSel, char* bSel, char* generatorXSel, char* generatorYSel, char* publicKeyXSel, char* publicKeyYSel, EC_POINT *&genPoint, EC_POINT *&pubPoint) { FNEXPORT EC_GROUP* PIDGEN3_initializeEllipticCurve(char* pSel, char* aSel, char* bSel, char* generatorXSel, char* generatorYSel, char* publicKeyXSel, char* publicKeyYSel, EC_POINT *&genPoint, EC_POINT *&pubPoint) {