| // SwiftShader Software Renderer | |
| // | |
| // Copyright(c) 2005-2013 TransGaming Inc. | |
| // | |
| // All rights reserved. No part of this software may be copied, distributed, transmitted, | |
| // transcribed, stored in a retrieval system, translated into any human or computer | |
| // language by any means, or disclosed to third parties without the explicit written | |
| // agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express | |
| // or implied, including but not limited to any patent rights, are granted to you. | |
| // | |
| #include "Register.hpp" | |
| #if defined(_WIN32) | |
| #ifndef WIN32_LEAN_AND_MEAN | |
| #define WIN32_LEAN_AND_MEAN | |
| #endif | |
| #include <windows.h> | |
| #include <stdlib.h> | |
| #else | |
| #include <unistd.h> | |
| #include <stdio.h> | |
| #include <libgen.h> | |
| #include <string.h> | |
| #endif | |
| #define SERIAL_PREFIX "SS" | |
| #define CHECKSUM_KEY "ShaderCore" | |
| // The App name ***MUST*** be in lowercase! | |
| const char registeredApp[32] = SCRAMBLE31("chrome\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", APPNAME_SCRAMBLE); | |
| char validationKey[32]; // Serial provided by application | |
| char validationApp[32]; // Application name | |
| void InitValidationApp(void) | |
| { | |
| memset(validationApp, '\0', sizeof(validationApp)); | |
| char exePath[4096]; | |
| #if defined(_WIN32) | |
| GetModuleFileName(NULL, exePath, sizeof(exePath)); | |
| char exeName[256]; | |
| _splitpath(exePath, 0, 0, exeName, 0); | |
| _strlwr(exeName); | |
| strncpy(validationApp, exeName, strlen(exeName)); | |
| #else | |
| char linkPath[4096]; | |
| sprintf(linkPath, "/proc/%d/exe", getpid()); | |
| int bytes = readlink(linkPath, exePath, sizeof(exePath)); | |
| exePath[bytes] = '\0'; | |
| const char *exeName = basename(exePath); | |
| strncpy(validationApp, exeName, strlen(exeName)); | |
| #endif | |
| } | |
| void RegisterLicenseKey(const char *licenseKey) | |
| { | |
| InitValidationApp(); | |
| memset(validationKey, '\0', sizeof(validationKey)); | |
| strncpy(validationKey, licenseKey, strlen(licenseKey)); | |
| } |