1/* COPYRIGHT
2 * Copyright (c) 1997-2000 Messaging Direct Ltd.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY MESSAGING DIRECT LTD. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL MESSAGING DIRECT LTD. OR
18 * ITS EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
21 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
23 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
24 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25 * DAMAGE.
26 * END COPYRIGHT */
27
28#ifdef __GNUC__
29#ident "$Id: mechanisms.h,v 1.9 2006/01/24 00:16:04 snsimon Exp $"
30#endif
31
32#ifndef _MECHANISMS_H
33#define _MECHANISMS_H
34
35#include "saslauthd.h"
36
37/* PUBLIC DEPENDENCIES */
38/* Authentication mechanism dispatch table definition */
39typedef struct {
40    char *name;				/* name of the mechanism */
41    int (*initialize)(void);		/* initialization function */
42    char *(*authenticate)(const char *, const char *,
43			  const char *, const char *); /* authentication
44							  function */
45} authmech_t;
46
47extern authmech_t mechanisms[];		/* array of supported auth mechs */
48extern authmech_t *authmech;		/* auth mech daemon is using */
49/* END PUBLIC DEPENDENCIES */
50
51/*
52 * Figure out which optional drivers we support.
53 */
54#ifndef AUTH_KRB5
55# if defined(HAVE_KRB5_H) && defined(HAVE_GSSAPI)
56#  define AUTH_KRB5
57# endif
58#endif
59
60#ifndef AUTH_KRB4
61# if defined(HAVE_KRB)
62#  define AUTH_KRB4
63# endif
64#endif
65
66#ifndef AUTH_DCE
67# if defined(HAVE_USERSEC_H) && defined(HAVE_AUTHENTICATE)
68#  define AUTH_DCE
69# endif
70#endif
71
72#ifndef AUTH_SHADOW
73# if defined(HAVE_GETSPNAM) || defined(HAVE_GETUSERPW)
74#  define AUTH_SHADOW
75# endif
76#endif
77
78#ifndef AUTH_SIA
79# if defined(HAVE_SIA_VALIDATE_USER)
80#  define AUTH_SIA
81# endif
82#endif
83
84#ifndef AUTH_PAM
85# ifdef HAVE_PAM
86#  define AUTH_PAM
87# endif
88#endif
89
90#ifndef AUTH_LDAP
91# ifdef HAVE_LDAP
92#  define AUTH_LDAP
93# endif
94#endif
95
96
97#endif  /* _MECHANISMS_H */
98