Index Index for
Section 3
Index Alphabetical
listing for G
Bottom of page Bottom of
page

gss_acquire_cred(3)

NAME

gss_acquire_cred - Acquire credentials for a specific internal name.

SYNOPSIS

#include <gssapi/gssapi.h> OM_uint32 gss_acquire_cred ( OM_uint32 * minor_status, const gss_name_t desired_name, OM_uint32 time_req, const gss_OID_set desired_mechs, gss_cred_usage_t cred_usage, gss_cred_id_t * output_cred_handle, gss_OID_set * actual_mechs, OM_uint32 * time_rec );

PARAMETERS

minor_status Kerberos 5 error code. desired_name Name of the principal whose credentials are to be acquired. The internal form name must be obtained beforehand using a call such as gss_import_name(). If GSS_C_NO_NAME is specified, the call is interpreted as a request for the credentials of the default principal. Description contains an explanation of how Kerberos 5 handles default principals. time_req Requested number of seconds that credentials remain valid. This parameter is ignored by the HP implementation of the GSS-API because it extracts from the credentials cache based on principal identity, not longevity. Credentials lifetime is determined external to GSS when the credentials are copied into the cache. desired_mechs Object identifier (OID) set of security mechanisms that can be used to acquire user credentials. The HP implementation of the GSS-API supports Kerberos 5. Specify either rfc_krb5_c_OID_set for Kerberos 5 or GSS_C_NO_OID_SET to obtain the default mechanism set that is the same. cred_usage Type of credentials to acquire. Typically, clients initiate and servers accept. Credentials of type GSS_C_BOTH are used by servers that also act as clients by contacting other servers. GSS_C_BOTH Credentials may be used to either initiate or accept security contexts. GSS_C_INITIATE Credentials may be used only to initiate security contexts. GSS_C_ACCEPT Credentials may be used only to accept security contexts. output_cred_handle The credentials that are returned for the principal name. The resources associated with these credentials must be released by the application after use with a call to gss_release_cred(). actual_mechs Security mechanisms for which the credentials are valid. The storage associated with the returned OID set must be released by the application after use with a call to gss_release_oid_set(). time_rec Actual number of seconds the returned credentials remain valid. This parameter is valid only for initiator credentials. The HP implementation of the GSS-API does not support credentials expiration for acceptors. A value of GSS_C_INDEFINITE is always returned for acceptors.

DESCRIPTION

The gss_acquire_cred() function allows an application to acquire credentials by principal name. The credentials must already exist in a credentials cache created by a kinit command, HP Credentials Manager, or a csf_gss_acq_user() function call. The resulting credentials allow a principal to initiate and/or accept security contexts (depending on the type of credential). Before calling this function, the application should call a function such as gss_import_name() to obtain the internal name of the principal. Otherwise, the default principal is used. To avoid memory leaks, the application must release the resources associated with the credentials with a call to gss_release_cred() after it is finished establishing security contexts. The storage associated with mechanisms OID set can be released anytime with a call to gss_release_oid_set(). When a principal name is specified with gss_acquire_cred(), it is used to search the credentials cache for credentials. If valid credentials are not found, the service key table is searched. If no credentials are found, the gss_acquire_cred() function returns GSS_S_NO_CRED. If a principal name is not specified with this function, default Kerberos 5 behavior is invoked: · For cred_usage of GSS_S_INITIATE and a desired_name of GSS_C_NO_NAME: -- The credentials cache or the service key table are searched for a default principal. If a default is found, it is then used to search the credentials cache and service key table for initiator credentials. -- If a default principal name is not found, the user login name is used to search the service key table for credentials. For example, assume that user John Q. Public has the login ID of john and that his UNIX uid is 112 and his realm is COMPANY.COM. The name of John's default credentials cache would be derived from his UNIX uid as /krb5/tmp/cc/krb5cc_112. Assuming John did not specify an alternate principal when he executed the kinit command or when the csf_gss_acq_user() function was called, the cache's default principal would be john@COMPANY.COM. Therefore, when John executes an application that calls gss_acquire_cred(), setting cred_usage as GSS_C_INITIATE and desired_name as GSS_C_NO_NAME, the principal name used is john@COMPANY.COM. If there is no cache, the default name and realm are still used. Assuming COMPANY.COM is the default realm, the principal name used is john@COMPANY.COM. · For cred_usage of GSS_S_ACCEPT or GSS_C_BOTH and a desired_name of GSS_C_NO_NAME: -- The principal name is formed from default values. The resulting form uses host/FQDN@REALM, where FQDN is the host's fully qualified domain name and REALM is the host's default realm. The credentials cache and service key table are then searched for credentials. -- A common error that occurs when acquiring credentials of usage GSS_S_ACCEPT or GSS_C_BOTH is that the service key table file is not readable by the application. This function is optional if default credentials are used. For example, if an initiating application does not call gss_acquire_cred() before a gss_init_sec_context() call is made, credentials with the default name and usage GSS_C_INITIATE are acquired. Similarly, if an accepting application does not call gss_acquire_cred() before a gss_accept_sec_context() call is made, credentials with the default name and usage GSS_C_ACCEPT are acquired.

RETURN VALUES

GSS_S_BAD_MECH xx01xxxx GSS_S_BAD_NAME xx02xxxx GSS_S_BAD_NAMETYPE xx03xxxx GSS_S_CALL_BAD_STRUCTURE 03xxxxxx GSS_S_CALL_INACCESSIBLE_READ 01xxxxxx GSS_S_CALL_INACCESSIBLE_WRITE 02xxxxxx GSS_S_COMPLETE 00000000 GSS_S_FAILURE xx0Dxxxx GSS_S_NO_CRED xx07xxxx

SEE ALSO

Functions: csf_gss_acq_user(3), gss_accept_sec_context(3), gss_add_cred(3), gss_import_name(3), gss_init_sec_context(3), gss_inquire_cred(3), gss_inquire_cred_by_mech(3), gss_release_cred(3), gss_release_oid_set(3)

Index Index for
Section 3
Index Alphabetical
listing for G
Top of page Top of
page