#ifndef REGISTRATION_API_H #define REGISTRATION_API_H #ifdef REGISTRATION_EXPORTS #define REGISTRATION_API __declspec(dllexport) #else #define REGISTRATION_API __declspec(dllimport) #endif #include #ifdef __cplusplus extern "C" { #endif // --- Core Functions --- // Gets the raw machine code. REGISTRATION_API const char* GetMachineCode(); // Validates the license file. // @return: 0=success, 1=failure, 2=expired. REGISTRATION_API int ValidateLicenseFile(); // Generates a license file from a provided machine code. // @param machine_code: The machine code to use. // @param expiration_date: A date string in "YYYY-MM-DD" format. // @return: 0=success, 1=failure. REGISTRATION_API int GenerateLicenseFileFromCode(const char* machine_code, const char* expiration_date); // --- New Encryption/Decryption API --- // Generates a dynamic, 32-character encrypted code from the machine code. // The returned string is managed by the DLL and should not be freed by the caller. REGISTRATION_API const char* GenerateEncryptedCode(); // Decrypts a 32-character code to get the original machine code. // @param encrypted_code: The 32-character hex string to decrypt. // @param decrypted_machine_code: A buffer to store the null-terminated result. // @param buffer_size: The size of the provided buffer. // @return: 0 on success, 1 on failure (e.g., invalid format, bad length). REGISTRATION_API int DecryptCodeAndGetMachineCode(const char* encrypted_code, char* decrypted_machine_code, int buffer_size); #ifdef __cplusplus } #endif #endif // REGISTRATION_API_H