#ifndef _OAUTH_H_ #define _OAUTH_H_ #include #include #include #include "auxlib.h" typedef struct { const char *service_account_file; const char *scope; // https://www.googleapis.com/auth/cloud-platform const char *algorithm; // RS256 // fields below here get filled in and are private, // but must be initialised to zero jwt_alg_t _alg; char *_iss; // client_email char *_aud; // token_uri char *_private_key; // PEM mutex_t _lock; char *_token; time_t _expires; } oauth_context_t; char *oauth_init(oauth_context_t *); void oauth_cleanup(oauth_context_t *); void oauth_add_auth(struct curl_slist **headers, oauth_context_t *ctx, char **errp); #endif