netatalk  4.5.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
uams_gss.c File Reference
#include <arpa/inet.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <atalk/afp.h>
#include <atalk/compat.h>
#include <atalk/globals.h>
#include <atalk/logger.h>
#include <atalk/uam.h>
#include <atalk/util.h>

Macros

#define LOG_UAMS(log_level, ...)    LOG(log_level, logtype_uams, __VA_ARGS__)
 
#define LOG_LOGINCONT(log_level, ...)    LOG_UAMS(log_level, "FPLoginCont: " __VA_ARGS__)
 

Functions

static void log_status (char *s, OM_uint32 major_status, OM_uint32 minor_status)
 
static void log_ctx_flags (OM_uint32 flags)
 
static void log_service_name (gss_ctx_id_t context)
 
static int get_client_username (char *username, int ulen, gss_name_t *client_name)
 
static int wrap_sessionkey (gss_ctx_id_t context, struct session_info *sinfo)
 
static int accept_sec_context (gss_ctx_id_t *context, gss_buffer_desc *ticket_buffer, gss_name_t *client_name, gss_buffer_desc *authenticator_buff)
 
static int do_gss_auth (void *obj, char *ibuf, size_t ibuflen, char *rbuf, int *rbuflen, char *username, size_t ulen, struct session_info *sinfo)
 
static int gss_login (void *obj, struct passwd **uam_pwd, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
static int gss_logincont (void *obj, struct passwd **uam_pwd, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
static void gss_logout (void)
 
static int gss_login_ext (void *obj, char *uname, struct passwd **uam_pwd, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
static int set_principal (AFPObj *obj, char *principal)
 
static int gss_create_principal (AFPObj *obj)
 
static int uam_setup (void *handle, const char *path)
 
static void uam_cleanup (void)
 

Variables

UAM_MODULE_EXPORT struct uam_export uams_gss
 

Macro Definition Documentation

◆ LOG_LOGINCONT

#define LOG_LOGINCONT (   log_level,
  ... 
)     LOG_UAMS(log_level, "FPLoginCont: " __VA_ARGS__)

◆ LOG_UAMS

#define LOG_UAMS (   log_level,
  ... 
)     LOG(log_level, logtype_uams, __VA_ARGS__)

Function Documentation

◆ accept_sec_context()

static int accept_sec_context ( gss_ctx_id_t *  context,
gss_buffer_desc *  ticket_buffer,
gss_name_t *  client_name,
gss_buffer_desc *  authenticator_buff 
)
static

◆ do_gss_auth()

static int do_gss_auth ( void *  obj,
char *  ibuf,
size_t  ibuflen,
char *  rbuf,
int *  rbuflen,
char *  username,
size_t  ulen,
struct session_info sinfo 
)
static

◆ get_client_username()

static int get_client_username ( char *  username,
int  ulen,
gss_name_t *  client_name 
)
static

◆ gss_create_principal()

static int gss_create_principal ( AFPObj obj)
static

◆ gss_login()

static int gss_login ( void *  obj,
struct passwd **  uam_pwd,
char *  ibuf,
size_t  ibuflen,
char *  rbuf,
size_t *  rbuflen 
)
static

◆ gss_login_ext()

static int gss_login_ext ( void *  obj,
char *  uname,
struct passwd **  uam_pwd,
char *  ibuf,
size_t  ibuflen,
char *  rbuf,
size_t *  rbuflen 
)
static

◆ gss_logincont()

static int gss_logincont ( void *  obj,
struct passwd **  uam_pwd,
char *  ibuf,
size_t  ibuflen,
char *  rbuf,
size_t *  rbuflen 
)
static

◆ gss_logout()

static void gss_logout ( void  )
static

◆ log_ctx_flags()

static void log_ctx_flags ( OM_uint32  flags)
static

◆ log_service_name()

static void log_service_name ( gss_ctx_id_t  context)
static

◆ log_status()

static void log_status ( char *  s,
OM_uint32  major_status,
OM_uint32  minor_status 
)
static

◆ set_principal()

static int set_principal ( AFPObj obj,
char *  principal 
)
static

◆ uam_cleanup()

static void uam_cleanup ( void  )
static

◆ uam_setup()

static int uam_setup ( void *  handle,
const char *  path 
)
static

◆ wrap_sessionkey()

static int wrap_sessionkey ( gss_ctx_id_t  context,
struct session_info sinfo 
)
static

wrap afpd's sessionkey

Variable Documentation

◆ uams_gss

UAM_MODULE_EXPORT struct uam_export uams_gss
Initial value:
= {
}
#define UAM_MODULE_VERSION
Definition uam.h:21
#define UAM_MODULE_SERVER
Definition uam.h:17
static int uam_setup(void *handle, const char *path)
Definition uams_gss.c:654
static void uam_cleanup(void)
Definition uams_gss.c:666