Provided by: heimdal-dev_1.6~git20120311.dfsg.1-2_amd64 bug


     krb5_mk_req, krb5_mk_req_exact, krb5_mk_req_extended, krb5_rd_req,
     krb5_rd_req_with_keyblock, krb5_mk_rep, krb5_mk_rep_exact, krb5_mk_rep_extended,
     krb5_rd_rep, krb5_build_ap_req, krb5_verify_ap_req — create and read application
     authentication request


     Kerberos 5 Library (libkrb5, -lkrb5)


     #include <krb5.h>

     krb5_mk_req(krb5_context context, krb5_auth_context *auth_context,
         const krb5_flags ap_req_options, const char *service, const char *hostname,
         krb5_data *in_data, krb5_ccache ccache, krb5_data *outbuf);

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

     krb5_rd_req(krb5_context context, krb5_auth_context *auth_context, const krb5_data *inbuf,
         krb5_const_principal server, krb5_keytab keytab, krb5_flags *ap_req_options,
         krb5_ticket **ticket);

     krb5_build_ap_req(krb5_context context, krb5_enctype enctype, krb5_creds *cred,
         krb5_flags ap_options, krb5_data authenticator, krb5_data *retdata);

     krb5_verify_ap_req(krb5_context context, krb5_auth_context *auth_context,
         krb5_ap_req *ap_req, krb5_const_principal server, krb5_keyblock *keyblock,
         krb5_flags flags, krb5_flags *ap_req_options, krb5_ticket **ticket);


     The functions documented in this manual page document the functions that facilitates the
     exchange between a Kerberos client and server.  They are the core functions used in the
     authentication exchange between the client and the server.

     The krb5_mk_req and krb5_mk_req_extended creates the Kerberos message KRB_AP_REQ that is
     sent from the client to the server as the first packet in a client/server exchange.  The
     result that should be sent to server is stored in outbuf.

     auth_context should be allocated with krb5_auth_con_init() or NULL passed in, in that case,
     it will be allocated and freed internally.

     The input data in_data will have a checksum calculated over it and checksum will be
     transported in the message to the server.

     ap_req_options can be set to one or more of the following flags:

             Use the session key when creating the request, used for user to user authentication.

             Mark the request as mutual authenticate required so that the receiver returns a
             mutual authentication packet.

     The krb5_rd_req read the AP_REQ in inbuf and verify and extract the content.  If server is
     specified, that server will be fetched from the keytab and used unconditionally.  If server
     is NULL, the keytab will be search for a matching principal.

     The keytab argument specifies what keytab to search for receiving principals.  The arguments
     ap_req_options and ticket returns the content.

     When the AS-REQ is a user to user request, neither of keytab or principal are used, instead
     krb5_rd_req() expects the session key to be set in auth_context.

     The krb5_verify_ap_req and krb5_build_ap_req both constructs and verify the AP_REQ message,
     should not be used by external code.


     krb5(3), krb5.conf(5)