Path: blob/main/crypto/krb5/src/include/gssrpc/auth_gssapi.h
34907 views
/* include/gssrpc/auth_gssapi.h - GSS-API style auth parameters for RPC */1/*2* Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved.3*/45#ifndef GSSRPC_AUTH_GSSAPI_H6#define GSSRPC_AUTH_GSSAPI_H78GSSRPC__BEGIN_DECLS910#define AUTH_GSSAPI_EXIT 011#define AUTH_GSSAPI_INIT 112#define AUTH_GSSAPI_CONTINUE_INIT 213#define AUTH_GSSAPI_MSG 314#define AUTH_GSSAPI_DESTROY 41516/*17* Yuck. Some sys/types.h files leak symbols18*/19#ifdef major20#undef major21#endif22#ifdef minor23#undef minor24#endif2526typedef struct _auth_gssapi_name {27char *name;28gss_OID type;29} auth_gssapi_name;3031typedef struct _auth_gssapi_creds {32uint32_t version;33bool_t auth_msg;34gss_buffer_desc client_handle;35} auth_gssapi_creds;3637typedef struct _auth_gssapi_init_arg {38uint32_t version;39gss_buffer_desc token;40} auth_gssapi_init_arg;4142typedef struct _auth_gssapi_init_res {43uint32_t version;44gss_buffer_desc client_handle;45OM_uint32 gss_major, gss_minor;46gss_buffer_desc token;47gss_buffer_desc signed_isn;48} auth_gssapi_init_res;4950typedef void (*auth_gssapi_log_badauth_func)51(OM_uint32 major,52OM_uint32 minor,53struct sockaddr_in *raddr,54caddr_t data);5556/* auth_gssapi_log_badauth_func is IPv4-specific; this version gives the57* transport handle so the fd can be used to get the address. */58typedef void (*auth_gssapi_log_badauth2_func)59(OM_uint32 major,60OM_uint32 minor,61SVCXPRT *xprt,62caddr_t data);6364typedef void (*auth_gssapi_log_badverf_func)65(gss_name_t client,66gss_name_t server,67struct svc_req *rqst,68struct rpc_msg *msg,69caddr_t data);7071typedef void (*auth_gssapi_log_miscerr_func)72(struct svc_req *rqst,73struct rpc_msg *msg,74char *error,75caddr_t data);7677bool_t xdr_gss_buf(XDR *, gss_buffer_t);78bool_t xdr_authgssapi_creds(XDR *, auth_gssapi_creds *);79bool_t xdr_authgssapi_init_arg(XDR *, auth_gssapi_init_arg *);80bool_t xdr_authgssapi_init_res(XDR *, auth_gssapi_init_res *);8182bool_t auth_gssapi_wrap_data83(OM_uint32 *major, OM_uint32 *minor,84gss_ctx_id_t context, uint32_t seq_num,85XDR *out_xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr);86bool_t auth_gssapi_unwrap_data87(OM_uint32 *major, OM_uint32 *minor,88gss_ctx_id_t context, uint32_t seq_num,89XDR *in_xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr);9091AUTH *auth_gssapi_create92(CLIENT *clnt,93OM_uint32 *major_status,94OM_uint32 *minor_status,95gss_cred_id_t claimant_cred_handle,96gss_name_t target_name,97gss_OID mech_type,98OM_uint32 req_flags,99OM_uint32 time_req,100gss_OID *actual_mech_type,101OM_uint32 *ret_flags,102OM_uint32 *time_rec);103104AUTH *auth_gssapi_create_default105(CLIENT *clnt, char *service_name);106107void auth_gssapi_display_status108(char *msg, OM_uint32 major,109OM_uint32 minor);110111bool_t auth_gssapi_seal_seq112(gss_ctx_id_t context, uint32_t seq_num, gss_buffer_t out_buf);113114bool_t auth_gssapi_unseal_seq115(gss_ctx_id_t context, gss_buffer_t in_buf, uint32_t *seq_num);116117bool_t svcauth_gssapi_set_names118(auth_gssapi_name *names, int num);119void svcauth_gssapi_unset_names120(void);121122void svcauth_gssapi_set_log_badauth_func123(auth_gssapi_log_badauth_func func,124caddr_t data);125void svcauth_gssapi_set_log_badauth2_func126(auth_gssapi_log_badauth2_func func,127caddr_t data);128void svcauth_gssapi_set_log_badverf_func129(auth_gssapi_log_badverf_func func,130caddr_t data);131void svcauth_gssapi_set_log_miscerr_func132(auth_gssapi_log_miscerr_func func,133caddr_t data);134135void svcauth_gss_set_log_badauth_func(auth_gssapi_log_badauth_func,136caddr_t);137void svcauth_gss_set_log_badauth2_func(auth_gssapi_log_badauth2_func,138caddr_t);139void svcauth_gss_set_log_badverf_func(auth_gssapi_log_badverf_func,140caddr_t);141void svcauth_gss_set_log_miscerr_func(auth_gssapi_log_miscerr_func,142caddr_t data);143144#define GSS_COPY_BUFFER(dest, src) { \145(dest).length = (src).length; \146(dest).value = (src).value; }147148#define GSS_DUP_BUFFER(dest, src) { \149(dest).length = (src).length; \150(dest).value = (void *) malloc((dest).length); \151memcpy((dest).value, (src).value, (dest).length); }152153#define GSS_BUFFERS_EQUAL(b1, b2) (((b1).length == (b2).length) && \154!memcmp((b1).value,(b2).value,(b1.length)))155156157GSSRPC__END_DECLS158159#endif /* !defined(GSSRPC_AUTH_GSSAPI_H) */160161162