|    
     gss_init_sec_context(3sec)
Establishes a security context between the context initiator and a context acceptor 
Synopsis 
#include <dce/gssapi.h> 
 OM_uint32 gss_init_sec_context (
 OM_uint32 *minor_status,
 gss_cred_id_t claimant_cred_handle,
 gss_ctx_id_t *context_handle
 gss_name_t target_name,
 gss_OID mech_type,
 int req_flags,
 int time_req,
 gss_channel_bindings_t 
input_channel_bindings,
 
     gss_buffeR_t input_token, gss_OID *actual_mech_types,
 gss_buffer_t output_token,
 int *ret_flags,
 OM_int32 *time_rec)
 
Parameters 
Input 
claimant_cred_handle Specifies an optional handle for the credential.  To use the default credential, supply GSS_C_NO_CREDENTIAL.  The credential handle created refers 
to the DCE default login context.  The credential must be either an INITIATE or BOTH type credential.
 
target_name Specifies the name of the context acceptor.
 
mech_type Specifies the security mechanism.  To use DCE Security, specify either of the following:
 
· 	GSSDCE_C_OID_DCE_KRBV5_DES 
· 	GSS_C_NULL_OID 
 To use Kerberos, specify GSS_C_OID_KRBV5_DES.
 
req_flags Specifies four independent flags, each of which requests that the context support a service option.  The following symbolic names are provided to correspond to each 
flag.  The symbolic names should be logically ORed to form a bit-mask value.
 
 	GSS_C_DELEG_FLAG The TRUE/FALSE values for GSS_C_DELEG_FLAG are:
 
 
| TRUE | Credentials were delegated to the context acceptor. |  | FALSE | No credentials were delegated. |  GSS_C_MUTUAL_FLAG
 The TRUE/FALSE values for GSS_C_MUTUAL_FLAG are:
 
 
| TRUE | The context acceptor has been asked to authenticate itself. |  | FALSE | The context initiator has not been asked to authenticates itself. |  GSS_C_REPLAY_FLAG
 The TRUE/FALSE values for GSS_C_REPLAY_FLAG are:
 
 
| TRUE | Replayed signed or sealed messages will be detected. |  | FALSE | Replayed messages will not be detected. |  GSS_C_SEQUENCE_FLAG
 The TRUE/FALSE values for GSS_C_SEQUENCE_FLAG are:
 
 
time_req| TRUE | Out-of-sequence signed or sealed messages will be detected. |  | FALSE | Out-of-sequence signed or sealed messages will not be detected. |  Specifies the desired number of seconds for which the context should remain valid.  To specify the default validity period, use 0 (zero).
 
input_chan_bindings Specifies the bindings set by the context initiator.  Allows the context initiator to bind the channel identification information securely to the security 
context.
 
input_token Specifies the token received from the context acceptor.
 
 	The first time the application calls the routine, you specify GSS_NO_BUFFER.  Subsequent calls require a token from the context acceptor. 
Input/Output 
context_handle Specifies the context handle for the new context.
 
 	The first time the application calls the routine, you specify GSS_C_NO_CONTEXT.  Subsequent calls use the value returned by the first call. 
Output 
actual_mech_type Returns one of the following values indicating the security mechanism:
 
· 	GSSDCE_C_OID_DCE_KRBV5_DES for DCE Security 
· 	GSS_C_OID_KRBV5_DES for Kerberos 
output_token Returns the token to send to the context acceptor.
 
 	If the length field of the returned buffer is 0 (zero), no token is sent. 
ret_flags Returns six independent flags, each of which indicates that the context supports a service option.  The following symbolic names are provided to correspond to each 
flag:
 
 	GSS_C_DELEG_FLAG The TRUE/FALSE values for GSS_C_DELEG_FLAG are:
 
 
| TRUE | Credentials were delegated to the context acceptor. |  | FALSE | No credentials were delegated. |  GSS_C_MUTUAL_FLAG
 The TRUE/FALSE values for GSS_C_MUTUAL_FLAG are:
 
 
| TRUE | The context acceptor has been asked to authenticate itself. |  | FALSE | The context acceptor has not been asked to authenticate itself. |  GSS_C_REPLAY_FLAG
 The TRUE/FALSE values for GSS_C_REPLAY_FLAG are:
 
 
| TRUE | Replayed signed or sealed messages will be detected. |  | FALSE | Replayed messages will not be detected. |  GSS_C_SEQUENCE_FLAG
 The TRUE/FALSE values for GSS_C_SEQUENCE_FLAG are:
 
 
| TRUE | Out-of-sequence signed or sealed messages will be detected. |  | FALSE | Out-of-sequence signed or sealed messages will not be detected. |  GSS_C_CONF_FLAG
 The TRUE/FALSE values for GSS_C_CONF_FLAG are:
 
 
| TRUE | Confidentiality service can be invoked by calling the gss_seal( ) routine. |  | FALSE | No confidentiality service is available.  (Confidentiality can be provided using the gss_seal( ) routine, which provides only message encapsulation, data-origin authentication, and 
integrity services.) |  GSS_C_INTEG_FLAG
 The TRUE/FALSE values for GSS_C_INTEG_FLAG are:
 
 
time_rec| TRUE | Integrity service can be invoked by calling either the gss_sign( ) or gss_seal( ) routine. |  | FALSE | Integrity service for individual messages is unavailable. |  Returns the number of seconds for which the context will be valid.  If the mechanism does not support credential expiration, the routine returns the value 
GSS_C_INDEFINITE.  If the credential expiration time is not required, specify NULL.
 
minor_status Returns a status code from the security mechanism.
 
Description The gss_init_sec_context( ) routine is the first step in the establishment of a security context between the context initiator and the context acceptor.  To 
ensure the portability of the application, use its default credential by supplying GSS_C_NO_CREDENTIAL to the claimant_cred_handle parameter.  Specify an explicit credential when 
the application needs an additional credential; for example, to use delegation.
 
The first time the application calls the gss_init_sec_context( ) routine, specify the input_token parameter as GSS_NO_BUFFER.  Calls to the routine can return an 
output_token for transfer to the context acceptor.  The context acceptor presents the token to the gss_accept_sec_context( ) routine. 
 
If the context initiator does not require a token, gss_init_sec_context( ) sets the length field of the output_token argument to 0 (zero). 
To complete establishing the context, the calling application can require one or more reply tokens from the context acceptor.  If the application requires reply tokens, the 
gss_init_sec_context( ) routine returns a status value of GSS_S_CONTINUE_NEEDED.  The application calls the routine again when the reply token is received from the context acceptor 
and passes the token to the gss_init_sec_context( ) routine via the input_token parameter. 
 
The values returned by the ret_flags and time_rec parameters are not defined unless the routine returns the status GSS_S_COMPLETE. 
Errors 
The following describes a partial list of errors that might be returned.  Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages. 
 
Related Information| GSS_S_COMPLETE | The routine was completed successfully. |  | GSS_S_BAD_BINDINGS | The input_token parameter contains different channel bindings from those specified with the input_chan_bindings parameter. |  | GSS_S_BAD_NAMETYPE | The target_name parameter contains an invalid or unsupported name type. |  | GSS_S_BAD_NAME | The target_name parameter was incorrectly formed. |  | GSS_S_BAD_SIG | Indicates either that the input_token parameter contains an invalid signature or that the input_token parameter contains a signature that could not be verified. |  | GSS_S_CONTINUE_NEEDED | To complete the context, the gss_init_sec_context( ) routine must be called again with a token required from the context acceptor. |  | GSS_S_CREDENTIALS_EXPIRED | The referenced credentials have expired. |  | GSS_S_DEFECTIVE_CREDENTIAL | Consistency checks performed on the credential failed. |  | GSS_S_DEFECTIVE_TOKEN | Consistency checks performed on the input_token parameter failed. |  | GSS_S_DUPLICATE_TOKEN | The input_token parameter was already processed.  This is a fatal error that occurs during context establishment. |  | GSS_S_FAILURE | The routine failed.  See the minor_status parameter return value for more information. |  | GSS_S_NO_CONTEXT | The supplied context handle did not refer to a valid context. |  | GSS_S_OLD_TOKEN | The input_token parameter was too old.  This is a fatal error that occurs during context establishment. |  Functions:
 
gss_accept_sec_context(3sec) 
gss_delete_sec_context(3sec) 
 
 
 |