gcontini
2020-01-11 84597288d950867922a185b2c5a8231495a5d303
Merge remote-tracking branch 'origin/develop' into
feature/pc_identifiers

Conflicts:
include/licensecc/datatypes.h
src/library/licensecc.cpp
6个文件已修改
58 ■■■■ 已修改文件
include/licensecc/datatypes.h 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
include/licensecc/licensecc.h 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/inspector/inspector.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/licensecc.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/limits/license_verifier.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/pc_identifier/pc-identifiers.h 2 ●●● 补丁 | 查看 | 原始文档 | 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);