# MIT Kerberos Documentation

Contents | previous | next | index | Search | feedback

# krb5_mk_req_extended - Create a KRB_AP_REQ message using supplied credentials.

krb5_error_code krb5_mk_req_extended(krb5_context context, krb5_auth_context *auth_context, krb5_flags ap_req_options, krb5_data *in_data, krb5_creds *in_creds, krb5_data *outbuf)

param

  [in] context - Library context

  [inout] auth_context - Pre-existing or newly created auth context

  [in] ap_req_options - `AP_OPTS` options

  [in] in_data - Application data to be checksummed in the authenticator, or NULL

  [in] in_creds - Credentials for the service with valid ticket and key

  [out] outbuf - AP-REQ message

retval

  - 0 Success; otherwise - Kerberos error codes

Valid ap_req_options are:

> > - `AP_OPTS_USE_SESSION_KEY` - Use the session key when creating the request used for user to user authentication.

> > - `AP_OPTS_MUTUAL_REQUIRED` - Request a mutual authentication packet from the receiver.

> > - `AP_OPTS_USE_SUBKEY` - Generate a subsession key from the current session key obtained from the credentials.

> This function creates a KRB_AP_REQ message using supplied credentials in_creds . auth_context may point to an existing auth context or to NULL, in which case a new one will be created. If in_data is non-null, a checksum of it will be included in the authenticator contained in the KRB_AP_REQ message. Use `krb5_free_data_contents()` to free outbuf when it is no longer needed.

On successful return, the authenticator is stored in auth_context with the client and checksum fields nulled out. (This is to prevent pointer-sharing problems; the caller should not need these fields anyway, since the caller supplied them.)

See also

`krb5_mk_req()`