74 lines
2.0 KiB
C
74 lines
2.0 KiB
C
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <ctype.h>
|
|
#include "OpenidAPI.h"
|
|
|
|
#define MAX_NUMBER_LENGTH 16
|
|
#define MAX_BUFFER_LENGTH 4096
|
|
#define intToStr(dst, src) \
|
|
do {\
|
|
char dst[256];\
|
|
snprintf(dst, 256, "%ld", (long int)(src));\
|
|
}while(0)
|
|
|
|
|
|
// get service account issuer OpenID JSON Web Key Set (contains public token verification keys)
|
|
//
|
|
char*
|
|
OpenidAPI_getServiceAccountIssuerOpenIDKeyset(apiClient_t *apiClient)
|
|
{
|
|
list_t *localVarQueryParameters = NULL;
|
|
list_t *localVarHeaderParameters = NULL;
|
|
list_t *localVarFormParameters = NULL;
|
|
list_t *localVarHeaderType = list_createList();
|
|
list_t *localVarContentType = NULL;
|
|
char *localVarBodyParameters = NULL;
|
|
|
|
// create the path
|
|
long sizeOfPath = strlen("/openid/v1/jwks/")+1;
|
|
char *localVarPath = malloc(sizeOfPath);
|
|
snprintf(localVarPath, sizeOfPath, "/openid/v1/jwks/");
|
|
|
|
|
|
|
|
list_addElement(localVarHeaderType,"application/jwk-set+json"); //produces
|
|
apiClient_invoke(apiClient,
|
|
localVarPath,
|
|
localVarQueryParameters,
|
|
localVarHeaderParameters,
|
|
localVarFormParameters,
|
|
localVarHeaderType,
|
|
localVarContentType,
|
|
localVarBodyParameters,
|
|
"GET");
|
|
|
|
// uncomment below to debug the error response
|
|
//if (apiClient->response_code == 200) {
|
|
// printf("%s\n","OK");
|
|
//}
|
|
// uncomment below to debug the error response
|
|
//if (apiClient->response_code == 401) {
|
|
// printf("%s\n","Unauthorized");
|
|
//}
|
|
//primitive return type simple
|
|
char* elementToReturn = strdup((char*)apiClient->dataReceived);
|
|
|
|
if (apiClient->dataReceived) {
|
|
free(apiClient->dataReceived);
|
|
apiClient->dataReceived = NULL;
|
|
apiClient->dataReceivedLen = 0;
|
|
}
|
|
|
|
|
|
|
|
list_freeList(localVarHeaderType);
|
|
|
|
free(localVarPath);
|
|
return elementToReturn;
|
|
end:
|
|
free(localVarPath);
|
|
return NULL;
|
|
|
|
}
|
|
|