blob: d7a5d8e67274aaee541854b0a0a380f89acd797e [file] [log] [blame]
// 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));
}