Skip to content
Snippets Groups Projects
auth_client.h 1.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • ale's avatar
    ale committed
    #ifndef __libauthclient_authclient_h
    #define __libauthclient_authclient_h 1
    
    #include <curl/curl.h>
    
    struct auth_client;
    typedef struct auth_client* auth_client_t;
    
    #define AC_OK                           0
    #define AC_ERR_AUTHENTICATION_FAILURE  -1
    #define AC_ERR_OTP_REQUIRED            -2
    #define AC_ERR_BAD_RESPONSE            -3
    
    #define AC_ERR_FILE_NOT_FOUND          -4
    
    #define AC_ERR_NO_SERVERS              -5
    
    ale's avatar
    ale committed
    #define AC_ERR_CURL_BASE             -100
    
    #define auth_client_err_to_curl(e)     (-(e)+(AC_ERR_CURL_BASE))
    
    ale's avatar
    ale committed
    #define auth_client_err_from_curl(e)   ((AC_ERR_CURL_BASE)-(e))
    
    
    auth_client_t auth_client_new(const char *service, const char *servers);
    
    ale's avatar
    ale committed
    void auth_client_free(auth_client_t ac);
    const char *auth_client_strerror(int err);
    
    void auth_client_set_verbose(auth_client_t ac, int verbose);
    int auth_client_set_certificate(auth_client_t ac,
                                    const char *ca_file,
                                    const char *crt_file,
                                    const char *key_file);
    
    ale's avatar
    ale committed
    int auth_client_authenticate(auth_client_t ac,
                                 const char *username,
                                 const char *password,
                                 const char *otp_token,
    
                                 const char *source_ip,
    			     const char *shard);
    
    ale's avatar
    ale committed
    
    #endif