4 * Copyright (c) 1997-2000 Messaging Direct Ltd.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * THIS SOFTWARE IS PROVIDED BY MESSAGING DIRECT LTD. ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MESSAGING DIRECT LTD. OR
20 * ITS EMPLOYEES OR AGENTS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
23 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
26 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
31 * Authenticate against DCE.
35 #ident "$Id: auth_dce.c,v 1.3 2001/12/04 02:06:54 rjs3 Exp $"
38 /* PUBLIC DEPENDENCIES */
41 #include "mechanisms.h"
45 /* END PUBLIC DEPENDENCIES */
47 # define RETURN(x) {return strdup(x);}
49 /* FUNCTION: auth_dce */
53 char * /* R: allocated response string */
56 const char *login, /* I: plaintext authenticator */
57 const char *password, /* I: plaintext password */
58 const char *service __attribute__((unused)),
59 const char *realm __attribute__((unused))
63 int reenter = 0; /* internal to authenticate() */
64 int rc; /* return code holder */
65 char *msg; /* response from authenticate() */
66 static char *reply; /* our reply string */
68 int authenticate(char *, char *, int *, char **); /* DCE authenticator */
70 rc = authenticate(login, password, &reenter, &msg);
73 * Failed. authenticate() has allocated storage for msg. We have
74 * to copy the message text into a static buffer and free the
75 * space allocated inside of authenticate().
83 reply = malloc(strlen(msg) + sizeof("NO "));
87 RETURN("NO (auth_dce malloc failure)");
100 #else /* !AUTH_DCE */
104 const char *login __attribute__((unused)),
105 const char *password __attribute__((unused)),
106 const char *service __attribute__((unused)),
107 const char *realm __attribute__((unused))
113 #endif /* !AUTH_DCE */
115 /* END FUNCTION: auth_dce */
117 /* END MODULE: auth_dce */