include/licensecc/datatypes.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
include/licensecc/licensecc.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/inspector/inspector.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/licensecc.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/limits/license_verifier.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/library/pc_identifier/pc-identifiers.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
include/licensecc/datatypes.h
@@ -22,12 +22,17 @@ #define DllExport __declspec(dllexport) #endif // define api structure sizes #define PC_IDENTIFIER_SIZE 19 #define PROPRIETARY_DATA_SIZE 16 #define AUDIT_EVENT_NUM 5 #define API_LICENSE_DATA_LENGTH 1024 * 4 #define API_VERSION_LENGTH 16 // define api structure sizes #define API_PC_IDENTIFIER_SIZE 19 #define API_PROPRIETARY_DATA_SIZE 16 #define API_AUDIT_EVENT_NUM 5 #define API_AUDIT_EVENT_PARAM2 255 #define API_VERSION_LENGTH 15 #define API_PROJECT_NAME_SIZE 15 #define API_EXPIRY_DATE_SIZE 10 #define API_ERROR_BUFFER_SIZE 256 typedef enum { LICENSE_OK = 0, // OK @@ -61,7 +66,7 @@ * License file name or location where the license is stored. */ char license_reference[MAX_PATH]; char param2[256]; char param2[API_AUDIT_EVENT_PARAM2 + 1]; } AuditEvent; typedef enum { @@ -96,8 +101,8 @@ * Informations on the software requiring the license */ typedef struct { char version[API_VERSION_LENGTH]; // software version in format xxxx[.xxxx.xxxx] //TODO char project_name[16]; // name of the project (must correspond to the name in the license) char version[API_VERSION_LENGTH + 1]; // software version in format xxxx[.xxxx.xxxx] //TODO char project_name[API_PROJECT_NAME_SIZE + 1]; // name of the project (must correspond to the name in the license) /** * this number passed in by the application must correspond to the magic number used when compiling the library. * See cmake parameter -DLCC_PROJECT_MAGIC_NUM and licensecc_properties.h macro VERIFY_MAGIC @@ -111,12 +116,12 @@ * multiple (for instance, license expired and signature not verified). * Only the last AUDIT_EVENT_NUM are reported. */ AuditEvent status[AUDIT_EVENT_NUM]; AuditEvent status[API_AUDIT_EVENT_NUM]; /** * Eventual expiration date of the software, * can be '\0' if the software don't expire * */ char expiry_date[11]; char expiry_date[API_EXPIRY_DATE_SIZE + 1]; unsigned int days_left; bool has_expiry; bool linked_to_pc; @@ -124,7 +129,7 @@ /* A string of character inserted into the license understood * by the calling application. * '\0' if the application didn't specify one */ char proprietary_data[PROPRIETARY_DATA_SIZE + 1]; char proprietary_data[API_PROPRIETARY_DATA_SIZE + 1]; int license_version; // license file version } LicenseInfo; include/licensecc/licensecc.h
@@ -12,13 +12,14 @@ /* * Method used to convert the LicenseInfo into a human readable * representation. * representation. //not yet implemented */ void print_error(char out_buffer[256], LicenseInfo* licenseInfo); void print_error(char out_buffer[API_ERROR_BUFFER_SIZE], LicenseInfo* licenseInfo); /** * This method calculate the pc identifier. The string has to be shown * to the user in order to calculate the license. * This method calculates the pc identifier. The string need to be shown to the user and given back to the software * editor when issuing a license. * pc_id_method = STRATEGY_DEFAULT usually works. */ bool identify_pc(IDENTIFICATION_STRATEGY pc_id_method, char* identifier_out, size_t* bufSize); @@ -43,13 +44,11 @@ * Should be called from time to time to confirm we're still using the * license. */ EVENT_TYPE confirm_license(char * featureName, LicenseLocation* licenseLocation); EVENT_TYPE confirm_license(char* featureName, LicenseLocation* licenseLocation); /** * Do nothing for now, useful for network licenses. */ EVENT_TYPE release_license(char * featureName, LicenseLocation licenseLocation); EVENT_TYPE release_license(char* featureName, LicenseLocation licenseLocation); #ifdef __cplusplus } src/inspector/inspector.cpp
@@ -42,8 +42,8 @@ cout << "Virtual machine:" << cpu.cpu_virtual() << endl; cout << "Cpu model : 0x" << std::hex << ((long)cpu.model()) << std::dec << endl; char pc_identifier[PC_IDENTIFIER_SIZE + 1]; size_t bufSize = PC_IDENTIFIER_SIZE + 1; char pc_identifier[API_PC_IDENTIFIER_SIZE + 1]; size_t bufSize = API_PC_IDENTIFIER_SIZE + 1; for (const auto& x : stringByStrategyId) { if (identify_pc(x.first, pc_identifier, &bufSize)) { std::cout << x.second << ':' << pc_identifier << std::endl; src/library/licensecc.cpp
@@ -1,5 +1,5 @@ //============================================================================ // Name : license-manager-cpp.cpp // Name : licensecc.cpp // Author : // Version : // Copyright : BSD @@ -23,10 +23,10 @@ #include "LicenseReader.hpp" using namespace std; void print_error(char out_buffer[256], LicenseInfo* licenseInfo) {} void print_error(char out_buffer[API_ERROR_BUFFER_SIZE], LicenseInfo* licenseInfo) {} bool identify_pc(IDENTIFICATION_STRATEGY pc_id_method, char* chbuffer, size_t* bufSize) { FUNCTION_RETURN result = FUNC_RET_BUFFER_TOO_SMALL; string pc_id = license::PcIdentifierFacade::generate_user_pc_signature(pc_id_method); if (*bufSize >= pc_id.size() + 1) { strncpy(chbuffer, pc_id.c_str(), *bufSize); @@ -109,7 +109,7 @@ #endif if (license_out != nullptr) { er.exportLastEvents(license_out->status, AUDIT_EVENT_NUM); er.exportLastEvents(license_out->status, API_AUDIT_EVENT_NUM); } return result; } src/library/limits/license_verifier.cpp
@@ -89,7 +89,7 @@ const auto proprietary_data = fullLicInfo.m_limits.find(PARAM_EXTRA_DATA); if (proprietary_data != fullLicInfo.m_limits.end()) { strncpy(info.proprietary_data, proprietary_data->second.c_str(), PROPRIETARY_DATA_SIZE); strncpy(info.proprietary_data, proprietary_data->second.c_str(), API_PROPRIETARY_DATA_SIZE); } return info; } src/library/pc_identifier/pc-identifiers.h
@@ -16,7 +16,7 @@ #include "../base/base.h" typedef unsigned char PcIdentifier[6]; typedef char PcSignature[PC_IDENTIFIER_SIZE + 1]; typedef char PcSignature[API_PC_IDENTIFIER_SIZE + 1]; FUNCTION_RETURN generate_pc_id(PcIdentifier * identifiers, unsigned int * array_size, IDENTIFICATION_STRATEGY strategy);