Main Page | Data Structures | File List | Data Fields | Globals

voms_apic.h

Go to the documentation of this file.
00001 /*********************************************************************
00002  *
00003  * Authors: Vincenzo Ciaschini - Vincenzo.Ciaschini@cnaf.infn.it 
00004  *
00005  * Copyright (c) 2002-2009 INFN-CNAF on behalf of the EU DataGrid
00006  * and EGEE I, II and III
00007  * For license conditions see LICENSE file or
00008  * http://www.apache.org/licenses/LICENSE-2.0.txt
00009  *
00010  * Parts of this code may be based upon or even include verbatim pieces,
00011  * originally written by other people, in which case the original header
00012  * follows.
00013  *
00014  *********************************************************************/
00015 
00016 #ifndef VOMS_APIC_H
00017 #define VOMS_APIC_H
00018 
00019 #ifndef GSSAPI_H_
00020 typedef void * gss_cred_id_t;
00021 typedef void * gss_ctx_id_t;
00022 #endif
00023 
00024 #include <openssl/x509.h>
00025 #include <time.h>
00026 
00027 #include "newformat.h"
00028 
00029 /*#include "voms_api.h"*/
00030 
00033 struct data {
00034   char *group; 
00035   char *role;  
00036   char *cap;   
00037 };
00038 
00039 struct attribute {
00040   const char *name;
00041   const char *value;
00042   const char *qualifier;
00043 };
00044 
00045 struct contactdata { 
00048   char *nick;     
00049   char *host;     
00050   char *contact;  
00051   char *vo;       
00052   int   port;     
00053   char *reserved; 
00054   int   version;  
00055 };
00056 
00060 #define  TYPE_NODATA 0  
00061 #define  TYPE_STD    1  
00062 #define  TYPE_CUSTOM 2  
00065 struct voms {
00066   int siglen;        
00067   char *signature;   
00068   char *user;        
00069   char *userca;      
00070   char *server;      
00071   char *serverca;    
00072   char *voname;      
00073   char *uri;         
00074   char *date1;       
00075   char *date2;       
00076   int   type;        
00077   struct data **std; 
00078   char *custom;      
00079   int datalen;
00080   int version;
00081   char **fqan;    
00082   char *serial;      
00084   /* Fields below this line are reserved. */
00085   AC *ac;
00086   X509 *holder;
00087 };
00088 
00089 
00090 #define RECURSE_CHAIN 0
00091 #define RECURSE_NONE  1
00092 
00093 #define VERIFY_FULL      0xffffffff
00094 #define VERIFY_NONE      0x00000000
00095 #define VERIFY_DATE      0x00000001
00096 #define VERIFY_NOTARGET  0x00000002
00097 #define VERIFY_KEY       0x00000004
00098 #define VERIFY_SIGN      0x00000008
00099 #define VERIFY_ORDER     0x00000010
00100 #define VERIFY_ID        0x00000020
00101 #define VERIFY_CERTLIST  0x00000040
00102 
00105 #define VERR_NONE       0
00106 #define VERR_NOSOCKET   1  
00107 #define VERR_NOIDENT    2  
00108 #define VERR_COMM       3  
00109 #define VERR_PARAM      4  
00110 #define VERR_NOEXT      5  
00111 #define VERR_NOINIT     6  
00112 #define VERR_TIME       7  
00113 #define VERR_IDCHECK    8  
00115 #define VERR_EXTRAINFO  9  
00116 #define VERR_FORMAT     10 
00117 #define VERR_NODATA     11 
00118 #define VERR_PARSE      12 
00119 #define VERR_DIR        13 
00120 #define VERR_SIGN       14 
00121 #define VERR_SERVER     15 
00122 #define VERR_MEM        16 
00123 #define VERR_VERIFY     17 
00124 #define VERR_TYPE       18 
00125 #define VERR_ORDER      19 
00126 #define VERR_SERVERCODE 20 
00127 #define VERR_NOTAVAIL   21 
00129 struct vomsdata {
00130   char *cdir;
00131   char *vdir;
00132   struct voms **data; 
00135   char *workvo;     
00137   char *extra_data; 
00146   int volen;
00147   int extralen;
00148   /* Fields below this line are reserved. */
00149   struct vomsdata *real;
00150 };
00151 
00152 extern struct contactdata **VOMS_FindByAlias(struct vomsdata *vd, char *alias, 
00153                                              char *system, char *user, 
00154                                              int *error); 
00172 extern struct contactdata **VOMS_FindByVO(struct vomsdata *vd, char *vo, 
00173                                           char *system, char *user, 
00174                                           int *error);  
00192 extern void VOMS_DeleteContacts(struct contactdata **list); 
00196 extern struct vomsdata *VOMS_Init(char *voms, char *cert); 
00210 extern struct voms *VOMS_Copy(struct voms *v, int *error); 
00218 extern struct vomsdata *VOMS_CopyAll(struct vomsdata *vd, int *error); 
00226 extern void VOMS_Delete(struct voms *v); 
00229 extern int VOMS_AddTarget(struct vomsdata *vd, char *target, int *error); 
00234 extern void VOMS_FreeTargets(struct vomsdata *vd, int *error);            
00238 extern char *VOMS_ListTargets(struct vomsdata *vd, int *error);          /*< Gets the list of targets for the AC.
00239                                                                             \param vd The vomsdata structure.
00240                                                                             \param error RETURN PARAMETER: qualifies the error message. */
00241 
00242 extern int VOMS_SetVerificationType(int type, struct vomsdata *vd, int *error); /* Sets the verification type.
00243                                                                                    \param type. The verification type.
00244                                                                                    \param vd The vomsdata structure.
00245                                                                                    \param error RETURN PARAMETER: qualifies the error message. */
00246 
00247 extern int VOMS_SetLifetime(int length, struct vomsdata *vd,
00248                             int *error); 
00255 extern void VOMS_Destroy(struct vomsdata *vd); 
00258 extern int VOMS_ResetOrder(struct vomsdata *vd, int *error); 
00264 extern int VOMS_Ordering(char *order, struct vomsdata *vd, int *error); 
00274 extern int VOMS_Contact(char *hostname, int port, char *servsubject,
00275                         char *command, struct vomsdata *vd, int *error);  
00288 extern int VOMS_ContactRaw(char *hostname, int port, char *servsubject,
00289                            char *command, void **data, int *datalen, int *version,
00290                            struct vomsdata *vd, int *error); 
00305 extern int VOMS_Retrieve(X509 *cert, STACK_OF(X509) *chain, int how,
00306                          struct vomsdata *vd, int *error);  
00318 extern int VOMS_Import(char *buffer, int buflen, struct vomsdata *vd, int *error); 
00329 extern int VOMS_Export(char **buffer, int *buflen, struct vomsdata *vd, int *error); 
00336 extern struct voms *VOMS_DefaultData(struct vomsdata *vd, int *error); 
00344 extern char *VOMS_ErrorMessage(struct vomsdata *vd, int error, char *buffer, int len); 
00354 extern int VOMS_RetrieveEXT(X509_EXTENSION *ext, struct vomsdata *vd, int *error); 
00360 extern int VOMS_RetrieveFromCred(gss_cred_id_t cred, int how, struct vomsdata *vd, int *error); 
00367 extern int VOMS_RetrieveFromFile(FILE *file, int how, struct vomsdata *vd, int *error); 
00374 extern int VOMS_RetrieveFromCtx(gss_ctx_id_t ctx, int how, struct vomsdata *vd, int *error); 
00381 extern int VOMS_RetrieveFromProxy(int how, struct vomsdata *vd, int *error); 
00387 extern int VOMS_GetAttributeSourcesNumber(struct voms *v, struct vomsdata *vd, int *error);
00388 extern int VOMS_GetAttributeSourceHandle(struct voms *v, int num, struct vomsdata *vd, int *error);
00389 extern const char *VOMS_GetAttributeGrantor(struct voms *v, int handle, struct vomsdata *vd, int *error);
00390 extern int VOMS_GetAttributesNumber(struct voms *v, int handle, struct vomsdata *vd, int *error);
00391 extern int VOMS_GetAttribute(struct voms *v, int handle, int num, struct attribute *at, struct vomsdata *vd, int *error);
00392 
00393 extern struct vomsdata *VOMS_Duplicate(struct vomsdata *vd);
00394 extern AC *VOMS_GetAC(struct voms *v);
00395 
00396 extern int getMajorVersionNumber(void);
00397 extern int getMinorVersionNumber(void);
00398 extern int getPatchVersionNumber(void);
00399 
00400 extern int VOMS_SetVerificationTime(time_t verificationtime, struct vomsdata *vd, int *error);
00401 extern char **VOMS_GetTargetsList(struct voms *v, struct vomsdata *vd, int *error);
00402 extern void VOMS_FreeTargetsList(char **);
00403 
00404 extern int VOMS_SetTimeout(int t, struct vomsdata *vd, int *error);
00405 #endif
00406 
00407 

Generated on Tue Oct 20 07:24:40 2009 for VOMS C API by doxygen 1.3.5