My Project
Data Structures | Typedefs | Functions | Variables
gridsite.h File Reference

Go to the source code of this file.

Data Structures

struct  GRSTgaclCred
 
struct  GRSTgaclEntry
 
struct  GRSTgaclAcl
 
struct  GRSTgaclUser
 
struct  GRSTasn1TagList
 
struct  GRSTx509Cert
 
struct  GRSTx509Chain
 
struct  GRSThtcpCountstr
 
struct  GRSThtcpMessage
 
struct  GRSThttpCharsList
 
struct  GRSThttpBody
 

Typedefs

typedef int GRSTgaclAction
 
typedef unsigned int GRSTgaclPerm
 

Functions

 __attribute__ ((deprecated)) typedef struct
 
int GRSTx509CertLoad (GRSTx509Cert *, X509 *)
 
int GRSTx509ChainLoad (GRSTx509Chain **chain, STACK_OF(X509) *certstack, X509 *lastcert, char *capath, char *vomsdir)
 
int GRSTx509ChainLoadCheck (GRSTx509Chain **, STACK_OF(X509) *, X509 *, char *, char *)
 Check certificate chain for GSI proxy acceptability. More...
 
int GRSTx509ChainFree (GRSTx509Chain *)
 
int GRSTgaclInit (void)
 
GRSTgaclCredGRSTgaclCredCreate (char *, char *)
 
int GRSTgaclCredFree (GRSTgaclCred *)
 
int GRSTgaclEntryAddCred (GRSTgaclEntry *, GRSTgaclCred *)
 
int GRSTgaclEntryDelCred (GRSTgaclEntry *, GRSTgaclCred *)
 
int GRSTgaclCredCredPrint (GRSTgaclCred *, FILE *)
 
int GRSTgaclCredCmpAuri (GRSTgaclCred *, GRSTgaclCred *)
 
GRSTgaclEntryGRSTgaclEntryNew (void)
 
int GRSTgaclEntryFree (GRSTgaclEntry *)
 
int GRSTgaclAclAddEntry (GRSTgaclAcl *, GRSTgaclEntry *)
 
int GRSTgaclEntryPrint (GRSTgaclEntry *, FILE *)
 
int GRSTgaclPermPrint (GRSTgaclPerm, FILE *)
 
int GRSTgaclEntryAllowPerm (GRSTgaclEntry *, GRSTgaclPerm)
 
int GRSTgaclEntryUnallowPerm (GRSTgaclEntry *, GRSTgaclPerm)
 
int GRSTgaclEntryDenyPerm (GRSTgaclEntry *, GRSTgaclPerm)
 
int GRSTgaclEntryUndenyPerm (GRSTgaclEntry *, GRSTgaclPerm)
 
char * GRSTgaclPermToChar (GRSTgaclPerm)
 
GRSTgaclPerm GRSTgaclPermFromChar (char *)
 
GRSTgaclAclGRSTgaclAclNew (void)
 
int GRSTgaclAclFree (GRSTgaclAcl *)
 
int GRSTgaclAclPrint (GRSTgaclAcl *, FILE *)
 
int GRSTgaclAclSave (GRSTgaclAcl *, char *)
 
GRSTgaclAclGRSTgaclAclLoadFile (char *)
 
char * GRSTgaclFileFindAclname (char *)
 
GRSTgaclAclGRSTgaclAclLoadforFile (char *)
 
int GRSTgaclFileIsAcl (char *)
 
GRSTgaclUserGRSTgaclUserNew (GRSTgaclCred *)
 
int GRSTgaclUserFree (GRSTgaclUser *)
 
int GRSTgaclUserAddCred (GRSTgaclUser *, GRSTgaclCred *)
 
int GRSTgaclUserHasCred (GRSTgaclUser *, GRSTgaclCred *)
 
char *int GRSTgaclUserLoadDNlists (GRSTgaclUser *, char *)
 
GRSTgaclCredGRSTgaclUserFindCredtype (GRSTgaclUser *, char *)
 
GRSTgaclUser *int GRSTgaclUserHasAURI (GRSTgaclUser *, char *)
 
GRSTgaclPerm GRSTgaclAclTestUser (GRSTgaclAcl *, GRSTgaclUser *)
 
GRSTgaclPerm GRSTgaclAclTestexclUser (GRSTgaclAcl *, GRSTgaclUser *)
 
char * GRSThttpUrlDecode (char *)
 
char * GRSThttpUrlEncode (char *)
 
char * GRSThttpUrlMildencode (char *)
 
int GRSTx509NameCmp (char *, char *)
 Compare X509 Distinguished Name strings. More...
 
int GRSTx509KnownCriticalExts (X509 *)
 Check critical extensions. More...
 
int GRSTx509IsCA (X509 *)
 Check if certificate can be used as a CA to sign standard X509 certs. More...
 
int GRSTx509CheckChain (int *, X509_STORE_CTX *)
 
int GRSTx509VerifyCallback (int, X509_STORE_CTX *)
 Example VerifyCallback routine. More...
 
char X509 STACK_OF (X509) *
 
char char X509 *char * GRSTx509CachedProxyFind (char *, char *, char *)
 Find a proxy file in the proxy cache. More...
 
char * GRSTx509FindProxyFileName (void)
 Find proxy file name of the current user. More...
 
int GRSTx509MakeProxyCert (char **, FILE *, char *, char *, char *, int)
 Make a GSI Proxy chain from a request, certificate and private key. More...
 
char * GRSTx509CachedProxyKeyFind (char *, char *, char *, STACK_OF(X509) *)
 Find a temporary proxy private key file in the proxy cache. More...
 
int GRSTx509ProxyDestroy (char *, char *, char *)
 Destroy stored GSI proxy files. More...
 
int GRSTx509ProxyGetTimes (char *, char *, char *, time_t *, time_t *)
 Get start and finish validity times of stored GSI proxy file. More...
 
int GRSTx509CreateProxyRequest (char **, char **, char *)
 Create a X.509 request for a GSI proxy and its private key. More...
 
int GRSTx509CreateProxyRequestKS (char **reqtxt, char **keytxt, char *ocspurl, int keysize)
 
int GRSTx509MakeProxyRequest (char **, char *, char *, char *)
 Create a X.509 request for a GSI proxy and its private key. More...
 
int GRSTx509MakeProxyRequestKS (char **reqtxt, char *proxydir, char *delegation_id, char *user_dn, int keysize)
 
char * GRSTx509MakeDelegationID (void)
 Returns a Delegation ID based on hash of GRST_CRED_0, ... More...
 
int GRSTx509StringToChain (STACK_OF(X509) **, char *)
 Create a stack of X509 certificate from a PEM-encoded string. More...
 
char * GRSTx509MakeProxyFileName (char *, STACK_OF(X509) *)
 Return the short file name for the given delegation_id and user_dn. More...
 
int GRSTx509CacheProxy (char *, char *, char *, char *)
 Store a GSI proxy chain in the proxy cache, along with the private key. More...
 
int GRST_is_id_safe (const char *)
 
void GRSThttpBodyInit (GRSThttpBody *)
 
void GRSThttpPrintf (GRSThttpBody *, char *,...)
 
int GRSThttpCopy (GRSThttpBody *, char *)
 
void GRSThttpWriteOut (GRSThttpBody *)
 
int GRSThttpPrintHeaderFooter (GRSThttpBody *, char *, char *)
 
int GRSThttpPrintHeader (GRSThttpBody *, char *)
 
int GRSThttpPrintFooter (GRSThttpBody *, char *)
 
char * GRSThttpGetCGI (char *)
 
time_t GRSTasn1TimeToTimeT (char *, size_t)
 ASN1 time string (in a char *) to time_t. More...
 
int GRSTasn1SearchTaglist (struct GRSTasn1TagList taglist[], int, char *)
 
int GRSTasn1ParseDump (BIO *, unsigned char *, long, struct GRSTasn1TagList taglist[], int, int *)
 
int GRSTasn1GetX509Name (char *, int, char *, char *, struct GRSTasn1TagList taglist[], int)
 
int GRSThtcpNOPrequestMake (char **, int *, unsigned int)
 
int GRSThtcpNOPresponseMake (char **, int *, unsigned int)
 
int GRSThtcpTSTrequestMake (char **, int *, unsigned int, char *, char *, char *)
 
int GRSThtcpTSTresponseMake (char **, int *, unsigned int, char *, char *, char *)
 
int GRSThtcpMessageParse (GRSThtcpMessage *, char *, int)
 

Variables

int(* GRSTerrorLogFunc )(char *, int, int, char *,...)
 
 GRSTgaclNamevalue
 
 int
 
 size_t
 

Typedef Documentation

◆ GRSTgaclAction

◆ GRSTgaclPerm

typedef unsigned int GRSTgaclPerm

Function Documentation

◆ __attribute__()

__attribute__ ( (deprecated)  )

◆ GRST_is_id_safe()

int GRST_is_id_safe ( const char *  str)

◆ GRSTasn1GetX509Name()

int GRSTasn1GetX509Name ( char *  x509name,
int  maxlength,
char *  coords,
char *  asn1string,
struct GRSTasn1TagList  taglist[],
int  lasttag 
)

◆ GRSTasn1ParseDump()

int GRSTasn1ParseDump ( BIO *  bp,
unsigned char *  pp,
long  len,
struct GRSTasn1TagList  taglist[],
int  maxtag,
int lasttag 
)

◆ GRSTasn1SearchTaglist()

int GRSTasn1SearchTaglist ( struct GRSTasn1TagList  taglist[],
int  lasttag,
char *  treecoords 
)

◆ GRSTasn1TimeToTimeT()

time_t GRSTasn1TimeToTimeT ( char *  asn1time,
size_t  len 
)

ASN1 time string (in a char *) to time_t.

(Use ASN1_STRING_data() to convert ASN1_GENERALIZEDTIME to char * if necessary)

◆ GRSTgaclAclAddEntry()

int GRSTgaclAclAddEntry ( GRSTgaclAcl acl,
GRSTgaclEntry entry 
)

◆ GRSTgaclAclFree()

int GRSTgaclAclFree ( GRSTgaclAcl acl)

◆ GRSTgaclAclLoadFile()

GRSTgaclAcl * GRSTgaclAclLoadFile ( char *  filename)

◆ GRSTgaclAclLoadforFile()

GRSTgaclAcl * GRSTgaclAclLoadforFile ( char *  pathandfile)

◆ GRSTgaclAclNew()

GRSTgaclAcl * GRSTgaclAclNew ( void  )

◆ GRSTgaclAclPrint()

int GRSTgaclAclPrint ( GRSTgaclAcl acl,
FILE *  fp 
)

◆ GRSTgaclAclSave()

int GRSTgaclAclSave ( GRSTgaclAcl acl,
char *  filename 
)

◆ GRSTgaclAclTestexclUser()

GRSTgaclPerm GRSTgaclAclTestexclUser ( GRSTgaclAcl acl,
GRSTgaclUser user 
)

◆ GRSTgaclAclTestUser()

GRSTgaclPerm GRSTgaclAclTestUser ( GRSTgaclAcl acl,
GRSTgaclUser user 
)

◆ GRSTgaclCredCmpAuri()

int GRSTgaclCredCmpAuri ( GRSTgaclCred cred1,
GRSTgaclCred cred2 
)

◆ GRSTgaclCredCreate()

GRSTgaclCred * GRSTgaclCredCreate ( char *  auri_prefix,
char *  auri_suffix 
)

◆ GRSTgaclCredCredPrint()

int GRSTgaclCredCredPrint ( GRSTgaclCred ,
FILE *   
)

◆ GRSTgaclCredFree()

int GRSTgaclCredFree ( GRSTgaclCred cred)

◆ GRSTgaclEntryAddCred()

int GRSTgaclEntryAddCred ( GRSTgaclEntry entry,
GRSTgaclCred cred 
)

◆ GRSTgaclEntryAllowPerm()

int GRSTgaclEntryAllowPerm ( GRSTgaclEntry entry,
GRSTgaclPerm  perm 
)

◆ GRSTgaclEntryDelCred()

int GRSTgaclEntryDelCred ( GRSTgaclEntry entry,
GRSTgaclCred cred 
)

◆ GRSTgaclEntryDenyPerm()

int GRSTgaclEntryDenyPerm ( GRSTgaclEntry entry,
GRSTgaclPerm  perm 
)

◆ GRSTgaclEntryFree()

int GRSTgaclEntryFree ( GRSTgaclEntry entry)

◆ GRSTgaclEntryNew()

GRSTgaclEntry * GRSTgaclEntryNew ( void  )

◆ GRSTgaclEntryPrint()

int GRSTgaclEntryPrint ( GRSTgaclEntry entry,
FILE *  fp 
)

◆ GRSTgaclEntryUnallowPerm()

int GRSTgaclEntryUnallowPerm ( GRSTgaclEntry entry,
GRSTgaclPerm  perm 
)

◆ GRSTgaclEntryUndenyPerm()

int GRSTgaclEntryUndenyPerm ( GRSTgaclEntry entry,
GRSTgaclPerm  perm 
)

◆ GRSTgaclFileFindAclname()

char * GRSTgaclFileFindAclname ( char *  pathandfile)

◆ GRSTgaclFileIsAcl()

int GRSTgaclFileIsAcl ( char *  pathandfile)

◆ GRSTgaclInit()

int GRSTgaclInit ( void  )

◆ GRSTgaclPermFromChar()

GRSTgaclPerm GRSTgaclPermFromChar ( char *  s)

◆ GRSTgaclPermPrint()

int GRSTgaclPermPrint ( GRSTgaclPerm  perm,
FILE *  fp 
)

◆ GRSTgaclPermToChar()

char * GRSTgaclPermToChar ( GRSTgaclPerm  perm)

◆ GRSTgaclUserAddCred()

int GRSTgaclUserAddCred ( GRSTgaclUser user,
GRSTgaclCred cred 
)

◆ GRSTgaclUserFindCredtype()

GRSTgaclCred * GRSTgaclUserFindCredtype ( GRSTgaclUser user,
char *  type 
)

◆ GRSTgaclUserFree()

int GRSTgaclUserFree ( GRSTgaclUser user)

◆ GRSTgaclUserHasAURI()

GRSTgaclUser *int GRSTgaclUserHasAURI ( GRSTgaclUser user,
char *  auri 
)

◆ GRSTgaclUserHasCred()

int GRSTgaclUserHasCred ( GRSTgaclUser user,
GRSTgaclCred cred 
)

◆ GRSTgaclUserLoadDNlists()

char *int GRSTgaclUserLoadDNlists ( GRSTgaclUser user,
char *  dnlists 
)

◆ GRSTgaclUserNew()

GRSTgaclUser * GRSTgaclUserNew ( GRSTgaclCred cred)

◆ GRSThtcpMessageParse()

int GRSThtcpMessageParse ( GRSThtcpMessage parsed,
char *  raw,
int  length 
)

◆ GRSThtcpNOPrequestMake()

int GRSThtcpNOPrequestMake ( char **  request,
int request_length,
unsigned int  trans_id 
)

◆ GRSThtcpNOPresponseMake()

int GRSThtcpNOPresponseMake ( char **  message,
int message_length,
unsigned int  trans_id 
)

◆ GRSThtcpTSTrequestMake()

int GRSThtcpTSTrequestMake ( char **  request,
int request_length,
unsigned int  trans_id,
char *  method,
char *  uri,
char *  req_hdrs 
)

◆ GRSThtcpTSTresponseMake()

int GRSThtcpTSTresponseMake ( char **  message,
int message_length,
unsigned int  trans_id,
char *  resp_hdrs,
char *  entity_hdrs,
char *  cache_hdrs 
)

◆ GRSThttpBodyInit()

void GRSThttpBodyInit ( GRSThttpBody thisbody)

◆ GRSThttpCopy()

int GRSThttpCopy ( GRSThttpBody thisbody,
char *  file 
)

◆ GRSThttpGetCGI()

char * GRSThttpGetCGI ( char *  name)

◆ GRSThttpPrintf()

void GRSThttpPrintf ( GRSThttpBody thisbody,
char *  fmt,
  ... 
)

◆ GRSThttpPrintFooter()

int GRSThttpPrintFooter ( GRSThttpBody bp,
char *  file 
)

◆ GRSThttpPrintHeader()

int GRSThttpPrintHeader ( GRSThttpBody bp,
char *  file 
)

◆ GRSThttpPrintHeaderFooter()

int GRSThttpPrintHeaderFooter ( GRSThttpBody bp,
char *  file,
char *  headfootname 
)

◆ GRSThttpUrlDecode()

char * GRSThttpUrlDecode ( char *  in)

◆ GRSThttpUrlEncode()

char * GRSThttpUrlEncode ( char *  in)

◆ GRSThttpUrlMildencode()

char * GRSThttpUrlMildencode ( char *  in)

◆ GRSThttpWriteOut()

void GRSThttpWriteOut ( GRSThttpBody thisbody)

◆ GRSTx509CachedProxyFind()

char char X509 *char * GRSTx509CachedProxyFind ( char *  proxydir,
char *  delegation_id,
char *  user_dn 
)

Find a proxy file in the proxy cache.

Returns the full path and file name of proxy file associated with given delegation ID and user DN.

Return a pointer to a malloc'd string with the full path of the proxy file corresponding to the given delegation_id, or NULL if not found.

◆ GRSTx509CachedProxyKeyFind()

char * GRSTx509CachedProxyKeyFind ( char *  proxydir,
char *  delegation_id,
char *  user_dn,
STACK_OF(X509) *  certstack 
)

Find a temporary proxy private key file in the proxy cache.

Returns the full path and file name of the private key file associated with given delegation ID and user DN.

Return a pointer to a malloc'd string with the full path of the private proxy key corresponding to the given delegation_id, or NULL if not found.

◆ GRSTx509CacheProxy()

int GRSTx509CacheProxy ( char *  proxydir,
char *  delegation_id,
char *  user_dn,
char *  proxychain 
)

Store a GSI proxy chain in the proxy cache, along with the private key.

Returns GRST_RET_OK on success, non-zero otherwise. The existing private key with the same delegation ID and user DN is moved out of the temporary cache.

◆ GRSTx509CertLoad()

int GRSTx509CertLoad ( GRSTx509Cert ,
X509 *   
)

◆ GRSTx509ChainFree()

int GRSTx509ChainFree ( GRSTx509Chain chain)

◆ GRSTx509ChainLoad()

int GRSTx509ChainLoad ( GRSTx509Chain **  chain,
STACK_OF(X509) *  certstack,
X509 *  lastcert,
char *  capath,
char *  vomsdir 
)

◆ GRSTx509ChainLoadCheck()

int GRSTx509ChainLoadCheck ( GRSTx509Chain **  chain,
STACK_OF(X509) *  certstack,
X509 *  lastcert,
char *  capath,
char *  vomsdir 
)

Check certificate chain for GSI proxy acceptability.

Returns GRST_RET_OK if valid; caNl errors otherwise.

The GridSite version handles old and new style Globus proxies, and proxies derived from user certificates issued with "X509v3 Basic Constraints: CA:FALSE" (eg UK e-Science CA)

TODO: we do not yet check ProxyCertInfo and ProxyCertPolicy extensions (although via GRSTx509KnownCriticalExts() we can accept them.)

◆ GRSTx509CheckChain()

int GRSTx509CheckChain ( int first_non_ca,
X509_STORE_CTX *  store_ctx 
)

◆ GRSTx509CreateProxyRequest()

int GRSTx509CreateProxyRequest ( char **  reqtxt,
char **  keytxt,
char *  ocspurl 
)

Create a X.509 request for a GSI proxy and its private key.

Returns GRST_RET_OK on success, non-zero otherwise. Request string and private key are PEM encoded strings

◆ GRSTx509CreateProxyRequestKS()

int GRSTx509CreateProxyRequestKS ( char **  reqtxt,
char **  keytxt,
char *  ocspurl,
int  keysize 
)

◆ GRSTx509FindProxyFileName()

char * GRSTx509FindProxyFileName ( void  )

Find proxy file name of the current user.

Return a string with the proxy file name or NULL if not present. This function does not check if the proxy has expired.

◆ GRSTx509IsCA()

int GRSTx509IsCA ( X509 *  cert)

Check if certificate can be used as a CA to sign standard X509 certs.

Return GRST_RET_OK if true; GRST_RET_FAILED if not.

◆ GRSTx509KnownCriticalExts()

int GRSTx509KnownCriticalExts ( X509 *  cert)

Check critical extensions.

Returning GRST_RET_OK if all of extensions are known to us or OpenSSL; GRST_REF_FAILED otherwise.

Since this function relies on functionality (X509_supported_extension) introduced in 0.9.7, then we do nothing and report an error (GRST_RET_FAILED) if one of the associated defines (X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION) is absent.

◆ GRSTx509MakeDelegationID()

char * GRSTx509MakeDelegationID ( void  )

Returns a Delegation ID based on hash of GRST_CRED_0, ...

Returns a malloc'd string with Delegation ID made by SHA1-hashing the values of the compact credentials exported by mod_gridsite

◆ GRSTx509MakeProxyCert()

int GRSTx509MakeProxyCert ( char **  proxychain,
FILE *  debugfp,
char *  reqtxt,
char *  cert,
char *  key,
int  minutes 
)

Make a GSI Proxy chain from a request, certificate and private key.

The proxy chain is returned in *proxychain. If debugfp is non-NULL, errors are output to that file pointer. The proxy will expired in the given number of minutes starting from the current time.

◆ GRSTx509MakeProxyFileName()

char * GRSTx509MakeProxyFileName ( char *  delegation_id,
STACK_OF(X509) *  certstack 
)

Return the short file name for the given delegation_id and user_dn.

Returns a malloc'd string with the short file name (no paths) that derived from the hashed delegation_id and user_dn

File name is SHA1_HASH(DelegationID)+"-"+SHA1_HASH(DN) where DN is DER encoded version of user_dn with any trailing CN=proxy removed Hashes are the most significant 8 bytes, in lowercase hexadecimal.

◆ GRSTx509MakeProxyRequest()

int GRSTx509MakeProxyRequest ( char **  reqtxt,
char *  proxydir,
char *  delegation_id,
char *  user_dn 
)

Create a X.509 request for a GSI proxy and its private key.

Returns GRST_RET_OK on success, non-zero otherwise. Request string and private key are PEM encoded strings

◆ GRSTx509MakeProxyRequestKS()

int GRSTx509MakeProxyRequestKS ( char **  reqtxt,
char *  proxydir,
char *  delegation_id,
char *  user_dn,
int  keysize 
)

◆ GRSTx509NameCmp()

int GRSTx509NameCmp ( char *  a,
char *  b 
)

Compare X509 Distinguished Name strings.

This function attempts to do with string representations what would ideally be done with OIDs/values. In particular, we equate "/Email=" == "/emailAddress=" to deal with this important change between OpenSSL 0.9.6 and 0.9.7. Other than that, it is currently the same as ordinary strcasecmp(3) (for consistency with EDG/LCG/EGEE gridmapdir case insensitivity.)

◆ GRSTx509ProxyDestroy()

int GRSTx509ProxyDestroy ( char *  proxydir,
char *  delegation_id,
char *  user_dn 
)

Destroy stored GSI proxy files.

Returns GRST_RET_OK on success, non-zero otherwise. (Including GRST_RET_NO_SUCH_FILE if the private key or cert chain were not found.)

◆ GRSTx509ProxyGetTimes()

int GRSTx509ProxyGetTimes ( char *  proxydir,
char *  delegation_id,
char *  user_dn,
time_t *  start,
time_t *  finish 
)

Get start and finish validity times of stored GSI proxy file.

Returns GRST_RET_OK on success, non-zero otherwise. (Including GRST_RET_NO_SUCH_FILE if the cert chain was not found.)

◆ GRSTx509StringToChain()

int GRSTx509StringToChain ( STACK_OF(X509) **  certstack,
char *  certstring 
)

Create a stack of X509 certificate from a PEM-encoded string.

Creates a dynamically allocated stack of X509 certificate objects by walking through the PEM-encoded X509 certificates.

Returns GRST_RET_OK on success, non-zero otherwise.

◆ GRSTx509VerifyCallback()

int GRSTx509VerifyCallback ( int  ok,
X509_STORE_CTX *  ctx 
)

Example VerifyCallback routine.

◆ STACK_OF()

char STACK_OF ( X509  )

Variable Documentation

◆ GRSTerrorLogFunc

int(* GRSTerrorLogFunc) (char *, int, int, char *,...) ( char *  ,
int  ,
int  ,
char *  ,
  ... 
)
extern

◆ GRSTgaclNamevalue

GRSTgaclNamevalue

◆ int

int

◆ size_t

size_t