Flags indicating additional services or parameters requested for this context. ret_flags flags should be logically AND'd to test the returned bit-mask value, as in: if (ret_flags & GSS_C_CONF_FLAG)
confidentiality = TRUE;
|
GSS_C_DELEG_FLAG
If true, indicates that the initiator's credentials can be delegated. See Delegation.
GSS_C_MUTUAL_FLAG
If true, indicates that mutual authentication is allowed. See Mutual Authentication.
GSS_C_REPLAY_FLAG
If true, indicates that detection of repeated messages is in effect. See Out-of-Sequence Detection and Replay Detection.
GSS_C_SEQUENCE_FLAG
If true, indicates that detection of out-of-sequence messages is in effect. See Out-of-Sequence Detection and Replay Detection.
GSS_C_CONF_FLAG
If true, confidentiality service is allowed for transferred messages; that is, that messages can be encrypted. If confidentiality is not allowed, then only data-origin authentication, and integrity services can be applied (this last only if GSS_C_INTEG_FLAG is not returned
as false).
GSS_C_INTEG_FLAG
If true, the integrity service can be applied to messages; that is, that messages can be stamped with a MIC to ensure their validity.
GSS_C_ANON_FLAG
If true, indicates that the context initiator will remain anonymous. See Anonymous Authentication.
GSS_C_PROT_READY_FLAG
Sometimes context establishment can take several passes, and sometimes the client might have to wait before it's complete. Even though a context is not fully established, gss_init_sec_context() can indicate what protection services, if any, will be available after the context
is complete. An application can therefore buffer its data, sending it when the context is eventually fully established.
If ret_flags indicates GSS_C_PROT_READY_FLAG, the protection services indicated by the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG flags are available even if the context has not been fully established
(that is, if gss_init_sec_context() returns GSS_S_CONTINUE_NEEDED). An application can then call the appropriate wrapping functions, gss_wrap() or gss_get_mic(), with the preferred protection services, and buffer the output
for transfer when the context is complete.
If GSS_C_PROT_READY_FLAG is false, then the application cannot make any assumptions about data protection, and must wait until the context is complete (that is, when gss_init_sec_context() returns GSS_S_COMPLETE).
Note - Earlier versions of the GSS-API did not support the GSS_C_PROT_READY_FLAG argument, so developers wanting to maximize portability should determine which per-message services are available by looking at the GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG flags after a context has been successfully established.
GSS_C_TRANS_FLAG
This flag indicates whether this context can be exported. For more information on importing and exporting contexts, see Context Export and Import.
|