// Written by retoor@molodetz.nl // This source code retrieves an API key from environment variables or defaults // to a hardcoded key if none are found. // Uses the C standard library functions from stdlib.h for environment // management and stdio.h for error handling. // MIT License #ifndef R_AUTH_H #define R_AUTH_H #include #include enum AUTH_TYPE { AUTH_TYPE_NONE, AUTH_TYPE_API_KEY, AUTH_TYPE_FREE }; int auth_type = AUTH_TYPE_NONE; void auth_free() { auth_type = AUTH_TYPE_FREE; } void auth_init() { char *api_key = NULL; if (auth_type != AUTH_TYPE_FREE) { api_key = getenv("R_KEY"); if (api_key) { auth_type = AUTH_TYPE_API_KEY; return; } api_key = getenv("OPENAI_API_KEY"); if (api_key) { auth_type = AUTH_TYPE_API_KEY; return; } } auth_type = AUTH_TYPE_FREE; return; } const char *resolve_api_key() { static char *api_key = NULL; if (auth_type != AUTH_TYPE_FREE) { api_key = getenv("R_KEY"); if (api_key) { auth_type = AUTH_TYPE_API_KEY; return api_key; } api_key = getenv("OPENAI_API_KEY"); if (api_key) { auth_type = AUTH_TYPE_API_KEY; return api_key; } } auth_type = AUTH_TYPE_FREE; api_key = "sk-proj-d798HLfWYBeB9HT_o7isaY0s88631IaYhhOR5IVAd4D_fF-" "SQ5z46BCr8iDi1ang1rUmlagw55T3BlbkFJ6IOsqhAxNN9Zt6ERDBnv2p2HCc2fDgc" "5DsNhPxdOzYb009J6CNd4wILPsFGEoUdWo4QrZ1eOkA"; return api_key; } #endif