| | |
| | | #include "public-key.h" |
| | | #include <build_properties.h> |
| | | |
| | | #include "os/os-cpp.h" |
| | | |
| | | namespace license { |
| | | |
| | | const char *FullLicenseInfo::UNUSED_TIME = "0000-00-00"; |
| | |
| | | EventRegistry FullLicenseInfo::validate(int sw_version) { |
| | | EventRegistry er; |
| | | os_initialize(); |
| | | bool sigVerified = OsFunctions::verifySignature(printForSign().c_str(), |
| | | FUNCTION_RETURN sigVer = verifySignature(printForSign().c_str(), |
| | | license_signature.c_str()); |
| | | bool sigVerified = sigVer == FUNC_RET_OK; |
| | | if (sigVerified) { |
| | | er.addEvent(LICENSE_VERIFIED, SVRT_INFO); |
| | | } else { |
| | |
| | | } |
| | | if (has_client_sig) { |
| | | PcSignature str_code; |
| | | strncpy(str_code, client_signature.c_str(), sizeof(str_code)); |
| | | strncpy(str_code, client_signature.c_str(), sizeof(str_code)-1); |
| | | EVENT_TYPE event = validate_pc_signature(str_code); |
| | | if (event != LICENSE_OK) { |
| | | er.addEvent(event, SVRT_ERROR); |
| | |
| | | license->expiry_date[0] = '\0'; |
| | | license->days_left = 999999; |
| | | } else { |
| | | strncpy(license->expiry_date, to_date.c_str(), 11); |
| | | double secs = difftime(time(NULL), |
| | | seconds_from_epoch(to_date.c_str())); |
| | | strncpy(license->expiry_date, to_date.c_str(), 11-1); |
| | | double secs = difftime( |
| | | seconds_from_epoch(to_date.c_str()), |
| | | time(NULL)); |
| | | license->days_left = (int) secs / 60 * 60 * 24; |
| | | } |
| | | } |