| | |
| | | #include "base/base64.h" |
| | | #include <valgrind/memcheck.h> |
| | | |
| | | FUNCTION_RETURN generate_ethernet_pc_id(PcIdentifier * identifiers, |
| | | unsigned int * num_identifiers, bool use_mac); |
| | | static void encodeStrategy(PcIdentifier * identifier, |
| | | IDENTIFICATION_STRATEGY strategy); |
| | | static FUNCTION_RETURN generate_platform_specific_pc_id( |
| | | PcIdentifier * identifiers, unsigned int * num_identifiers); |
| | | |
| | | |
| | | static FUNCTION_RETURN generate_default_pc_id(PcIdentifier * identifiers, |
| | | unsigned int * num_identifiers) { |
| | | size_t adapter_num, disk_num, plat_spec_id; |
| | |
| | | identifiers[current_identifier][k] = diskInfos[i].disk_sn[k |
| | | + 2] ^ adapterInfos[j].mac_address[k + 2]; |
| | | } |
| | | encodeStrategy(identifiers[current_identifier], DEFAULT); |
| | | encodeStrategy(&identifiers[current_identifier], DEFAULT); |
| | | current_identifier++; |
| | | } |
| | | } |
| | | free(diskInfos); |
| | | free(adapterInfos); |
| | | } else if (result_adapterInfos == OK) { |
| | | i=defined_identifiers-current_identifier; |
| | | return generate_ethernet_pc_id(&identifiers[current_identifier], |
| | | defined_identifiers-current_identifier, true); |
| | | &i, true); |
| | | } else if (result_diskinfos == OK) { |
| | | i=defined_identifiers-current_identifier; |
| | | return generate_disk_pc_id(&identifiers[current_identifier], |
| | | defined_identifiers-current_identifier, false); |
| | | &i, false); |
| | | } |
| | | |
| | | return OK; |
| | |
| | | static void encodeStrategy(PcIdentifier * identifier, |
| | | IDENTIFICATION_STRATEGY strategy) { |
| | | unsigned char strategy_num = strategy << 5; |
| | | identifier[0] = (identifier[0] & 15) | strategy_num; |
| | | identifier[0][0] = (identifier[0][0] & 15) |
| | | |
| | | ++ | strategy_num; |
| | | |
| | | } |
| | | |
| | | static FUNCTION_RETURN generate_platform_specific_pc_id( |
| | | PcIdentifier * identifiers, unsigned int * num_identifiers) { |
| | | * identifiers, unsigned int * num_identifiers) { |
| | | |
| | | } |
| | | |