Grid Community Toolkit  6.2.1653033972 (tag: v6.2.20220524)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Functions for Win32 platforms

Functions for Win32 platforms. More...

Functions

globus_result_t globus_gsi_sysconfig_set_key_permissions_win32 (char *filename)
 Win32 - Set Key Permissions. More...
 
globus_result_t globus_gsi_sysconfig_file_exists_win32 (const char *filename)
 Win32 - File Exists. More...
 
globus_result_t globus_gsi_sysconfig_dir_exists_win32 (const char *filename)
 Win32 - Directory Exists. More...
 
globus_result_t globus_gsi_sysconfig_get_current_working_dir_win32 (char **working_dir)
 Win32 - Get Current Working Directory. More...
 
globus_result_t globus_gsi_sysconfig_make_absolute_path_for_filename_win32 (char *filename, char **absolute_path)
 Win32 - Make Absolute Path. More...
 
globus_result_t globus_gsi_sysconfig_split_dir_and_filename_win32 (char *full_filename, char **dir_string, char **filename_string)
 Win32 - Split Directory and Filename. More...
 
globus_result_t globus_gsi_sysconfig_get_cert_dir_win32 (char **cert_dir)
 Win32 - Get Trusted CA Cert Dir. More...
 
globus_result_t globus_gsi_sysconfig_get_user_cert_filename_win32 (char **user_cert, char **user_key)
 Win32 - Get User Certificate Filename. More...
 
globus_result_t globus_gsi_sysconfig_get_host_cert_filename_win32 (char **host_cert, char **host_key)
 Win32 - Get Host Certificate and Key Filenames. More...
 
globus_result_t globus_gsi_sysconfig_get_service_cert_filename_win32 (char *service_name, char **service_cert, char **service_key)
 Win32 - Get Service Certificate and Key Filenames. More...
 
globus_result_t globus_gsi_sysconfig_get_proxy_filename_win32 (char **user_proxy, globus_gsi_proxy_file_type_t proxy_file_type)
 Win32 - Get Proxy Filename. More...
 
globus_result_t globus_gsi_sysconfig_get_ca_cert_files_win32 (char *ca_cert_dir, globus_fifo_t *ca_cert_list)
 Win32 - Get CA Cert Filenames. More...
 
globus_result_t globus_gsi_sysconfig_remove_all_owned_files_win32 (char *default_filename)
 Win32 - Remove all proxies owned by current uid. More...
 
globus_result_t globus_gsi_sysconfig_get_gridmap_filename_win32 (char **filename)
 Win32 - Get the path and file name of the grid map file. More...
 
globus_result_t globus_gsi_sysconfig_get_authz_conf_filename_win32 (char **filename)
 Win32 - Get the path and file name of the grid map file. More...
 
globus_result_t globus_gsi_sysconfig_get_authz_lib_conf_filename_win32 (char **filename)
 Win32 - Get authorization configuration filename. More...
 
globus_result_t globus_gsi_sysconfig_get_gaa_conf_filename_win32 (char **filename)
 Win32 - Get the path and file name of the gaa config file. More...
 
globus_result_t globus_gsi_sysconfig_is_superuser_win32 (int *is_superuser)
 Win32 - Check if the current user is root. More...
 
globus_result_t globus_gsi_sysconfig_get_signing_policy_filename_win32 (X509_NAME *ca_name, char *cert_dir, char **signing_policy_filename)
 Win32 - Get Signing Policy Filename. More...
 

Detailed Description

Functions for Win32 platforms.

These functions implement the Win32 version of the Globus GSI System Configuration API. They should never be called directly, please use the provided platform independent defines.

Function Documentation

globus_result_t globus_gsi_sysconfig_dir_exists_win32 ( const char *  filename)

Win32 - Directory Exists.

Check that the directory exists

Parameters
filenamethe file to check
Returns
GLOBUS_SUCCESS if the directory exists, otherwise an error object identifier.
globus_result_t globus_gsi_sysconfig_file_exists_win32 ( const char *  filename)

Win32 - File Exists.

Check that the file exists

Parameters
filenamethe file to check
Returns
GLOBUS_SUCCESS (even if the file doesn't exist) - in some abortive cases an error object identifier is returned
globus_result_t globus_gsi_sysconfig_get_authz_conf_filename_win32 ( char **  filename)

Win32 - Get the path and file name of the grid map file.

Get the path and file name of the authorization callback configuration file

Parameters
filenameContains the location of the authorization callback configuration file upon successful return
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_get_authz_lib_conf_filename_win32 ( char **  filename)

Win32 - Get authorization configuration filename.

Get the path and file name of the authorization callback library configuration file

Parameters
filenameContains the location of the authorization callback library configuration file upon successful return
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_get_ca_cert_files_win32 ( char *  ca_cert_dir,
globus_fifo_t ca_cert_list 
)

Win32 - Get CA Cert Filenames.

Gets a list of trusted CA certificate filenames in a trusted CA certificate directory.

Parameters
ca_cert_dirThe trusted CA certificate directory to get the filenames from
ca_cert_listThe resulting list of CA certificate filenames. This is a globus list structure.
See Also
globus_fifo_t
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_get_cert_dir_win32 ( char **  cert_dir)

Win32 - Get Trusted CA Cert Dir.

Get the Trusted Certificate Directory containing the trusted Certificate Authority certificates. This directory is determined in the order shown below. Failure in one method results in attempting the next.

  1. X509_CERT_DIR environment variable - if this is set, the trusted certificates will be searched for in that directory. This variable allows the end user to specify the location of trusted certificates.
  2. x509_cert_dir registry key - If this registry key is set on windows, the directory it points to should contain the trusted certificates. The path to the registry key is software\Globus\GSI
  3. \<user home directory>\.globus\certificates - If this directory exists, and the previous methods of determining the trusted certs directory failed, this directory will be used.
  4. Host Trusted Cert Dir - This location is intended to be independent of the globus installation ($GLOBUS_LOCATION), and is generally only writeable by the host system administrator.
  5. Globus Install Trusted Cert Dir - this is $GLOBUS_LOCATION\share\certificates.
Parameters
cert_dirThe trusted certificates directory
Returns
GLOBUS_SUCCESS if no error occurred, and a sufficient trusted certificates directory was found. Otherwise, an error object identifier returned.
globus_result_t globus_gsi_sysconfig_get_current_working_dir_win32 ( char **  working_dir)

Win32 - Get Current Working Directory.

Get the current working directory on a windows system

Parameters
working_dirThe working directory to get
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_get_gaa_conf_filename_win32 ( char **  filename)

Win32 - Get the path and file name of the gaa config file.

Get the path and file name of the gaa config configuration file .

Parameters
filenameContains the location of the authorization callback configuration file upon successful return
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_get_gridmap_filename_win32 ( char **  filename)

Win32 - Get the path and file name of the grid map file.

Get the path and file name of the grid map file.

Parameters
filenameContains the location of the grid map file upon successful return
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_get_host_cert_filename_win32 ( char **  host_cert,
char **  host_key 
)

Win32 - Get Host Certificate and Key Filenames.

Get the Host Certificate and Key Filenames based on the current user's environment. The host cert and key are searched for in the following locations (in order):

  1. X509_USER_CERT and X509_USER_KEY environment variables
  2. registry keys x509_user_cert and x509_user_key in software\Globus\GSI
  3. <GLOBUS_LOCATION>\etc\host[cert|key].pem
  4. <users home directory>\.globus\host[cert|key].pem
Parameters
host_certpointer to the host certificate filename
host_keypointer to the host key filename
Returns
GLOBUS_SUCCESS if the host cert and key were found, otherwise an error object identifier is returned
globus_result_t globus_gsi_sysconfig_get_proxy_filename_win32 ( char **  user_proxy,
globus_gsi_proxy_file_type_t  proxy_file_type 
)

Win32 - Get Proxy Filename.

Get the proxy cert filename based on the following search order:

  1. X509_USER_PROXY environment variable - This environment variable is set by the at run time for the specific application. If the proxy_file_type variable is set to GLOBUS_PROXY_OUTPUT (a proxy filename for writing is requested), and the X509_USER_PROXY is set, this will be the resulting value of the user_proxy filename string passed in. If the proxy_file_type is set to GLOBUS_PROXY_INPUT and X509_USER_PROXY is set, but the file it points to does not exist, or has some other readability issues, the function will continue checking using the other methods available.

  2. check the registry key: x509_user_proxy. Just as with the environment variable, if the registry key is set, and proxy_file_type is GLOBUS_PROXY_OUTPUT, the string set to be the proxy filename will be this registry key's value. If proxy_file_type is GLOBUS_PROXY_INPUT, and the file doesn't exist, the function will check the next method for the proxy's filename.

  3. Check the default location for the proxy file. The default location should be set to reside in the temp directory on that host, with the filename taking the format: x509_u<user id> where <user id> is some unique string for that user on the host
Parameters
user_proxythe proxy filename of the user
proxy_file_typeSwitch for determining whether to return a existing proxy filename or if a filename suitable for creating a proxy should be returned
Returns
GLOBUS_SUCCESS or an error object identifier
globus_result_t globus_gsi_sysconfig_get_service_cert_filename_win32 ( char *  service_name,
char **  service_cert,
char **  service_key 
)

Win32 - Get Service Certificate and Key Filenames.

Get the Service Certificate Filename based on the current user's environment. The host cert and key are searched for in the following locations (in order):

  1. X509_USER_CERT and X509_USER_KEY environment variables
  2. registry keys x509_user_cert and x509_user_key in software\Globus\GSI
  3. GLOBUS_LOCATION\etc\{service_name}\{service_name}[cert|key].pem So for example, if my service was named: myservice, the location of the certificate would be: <GLOBUS_LOCATION>\etc\myservice\myservicecert.pem
  4. <users home>\.globus\{service_name}\{service_name}[cert|key].pem
Parameters
service_nameThe name of the service which allows us to determine the locations of cert and key files to look for
service_certpointer to the host certificate filename
service_keypointer to the host key filename
Returns
GLOBUS_SUCCESS if the service cert and key were found, otherwise an error object identifier
globus_result_t globus_gsi_sysconfig_get_signing_policy_filename_win32 ( X509_NAME *  ca_name,
char *  cert_dir,
char **  signing_policy_filename 
)

Win32 - Get Signing Policy Filename.

Get the Signing Policy Filename on the current system, based on the CA's subject name, and the trusted certificates directory

Parameters
ca_nameThe X.509 subject name of the CA to get the signing policy of. The hash of the CA is generated from this
cert_dirThe trusted CA certificates directory, containing the singing_policy files of the trusted CAs.
signing_policy_filenameThe resulting singing_policy filename
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID
globus_result_t globus_gsi_sysconfig_get_user_cert_filename_win32 ( char **  user_cert,
char **  user_key 
)

Win32 - Get User Certificate Filename.

Get the User Certificate Filename based on the current user's environment. The following locations are searched for cert and key files in order:

  1. environment variables X509_USER_CERT and X509_USER_KEY
  2. registry keys x509_user_cert and x509_user_key in software\Globus\GSI
  3. <users home directory>\.globus\usercert.pem and <users home directory>\.globus\userkey.pem
  4. <users home directory>\.globus\usercred.p12 - this is a PKCS12 credential
Parameters
user_certpointer the filename of the user certificate
user_keypointer to the filename of the user key
Returns
GLOBUS_SUCCESS if the cert and key files were found in one of the possible locations, otherwise an error object identifier is returned
globus_result_t globus_gsi_sysconfig_is_superuser_win32 ( int *  is_superuser)

Win32 - Check if the current user is root.

Checks whether the current user is root.

Parameters
is_superuser1 if the user is the superuser 0 if not
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_make_absolute_path_for_filename_win32 ( char *  filename,
char **  absolute_path 
)

Win32 - Make Absolute Path.

Make the filename into an absolute path string based on the current working directory.

Parameters
filenamethe filename to get the absolute path of.
absolute_pathThe resulting absolute path
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_remove_all_owned_files_win32 ( char *  default_filename)

Win32 - Remove all proxies owned by current uid.

Removes all proxies (all delegated and grid-proxy-init generated proxies) found in the secure temp directory that are owned by the current user.

Parameters
default_filenameThe filename of the default proxy
Returns
GLOBUS_SUCCESS if no error occurred, otherwise an error object ID is returned
globus_result_t globus_gsi_sysconfig_set_key_permissions_win32 ( char *  filename)

Win32 - Set Key Permissions.

Set the file permissions of a file to read only by the user which are the permissions that should be set for all private keys.

Parameters
filename
Returns
GLOBUS_SUCCESS or an error object id
globus_result_t globus_gsi_sysconfig_split_dir_and_filename_win32 ( char *  full_filename,
char **  dir_string,
char **  filename_string 
)

Win32 - Split Directory and Filename.

Split the directory and filename portions of a filename string into two separate strings

Parameters
full_filename
dir_string
filename_string
Returns