Grid Community Toolkit  6.2.1705709074 (tag: v6.2.20240202)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
myproxy_extensions.h
1 /*
2  * myproxy_extensions.h - set extensions in issued proxy certificates
3  */
4 #ifndef __MYPROXY_EXTENSIONS_H
5 #define __MYPROXY_EXTENSIONS_H
6 
7 /* We need a simple way to define a set of extensions for proxy
8  * certificates using the myproxy-server context, and then add them
9  * when we actually sign the proxy certificates. Since the proxy
10  * certificate signing happens in a low-level API, and we don't want
11  * to change the APIs to push the extensions down to this level, we
12  * stash them here, relying on the fact that the myproxy-server is
13  * multi-process and not multi-threaded, so we're only dealing with
14  * one proxy certificate request in the lifetime of the active
15  * process. It's not pretty and NOT THREAD SAFE but it minimizes
16  * disruptions to the MyProxy APIs.
17  */
18 
19 /* The following all return 0 on success, -1 on error (setting verror). */
20 
21 int myproxy_set_extensions_from_file(const char filename[]);
22 int myproxy_set_extensions_from_callout(const char path[],
23  const char username[],
24  const char location[]);
25 int myproxy_add_extension(X509_EXTENSION *extension);
26 int myproxy_get_extensions(STACK_OF(X509_EXTENSION) **extensions);
27 int myproxy_free_extensions(); /* Call this to cleanup! */
28 
29 #endif