X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Frpc%2Fsvc_auth.c;fp=support%2Frpc%2Fsvc_auth.c;h=0000000000000000000000000000000000000000;hp=4a11be36f205b12273a8ddd8223bddf902e6a898;hb=a1b7c0da9e73a607f4bc70ffe3b44b00f5d39938;hpb=1d0397894463e507e9f5d92442ac3b09e29310a3 diff --git a/support/rpc/svc_auth.c b/support/rpc/svc_auth.c deleted file mode 100644 index 4a11be3..0000000 --- a/support/rpc/svc_auth.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: svc_auth.c,v 1.4 1998/03/19 00:27:22 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* - * svc_auth_nodes.c, Server-side rpc authenticator interface, - * *WITHOUT* DES authentication. - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - -#include - -/* - * svcauthsw is the bdevsw of server side authentication. - * - * Server side authenticators are called from authenticate by - * using the client auth struct flavor field to index into svcauthsw. - * The server auth flavors must implement a routine that looks - * like: - * - * enum auth_stat - * flavorx_auth(rqst, msg) - * register struct svc_req *rqst; - * register struct rpc_msg *msg; - * - */ - -enum auth_stat _svcauth_none(); /* no authentication */ -enum auth_stat _svcauth_unix(); /* unix style (uid, gids) */ -enum auth_stat _svcauth_short(); /* short hand unix style */ -enum auth_stat _svcauth_gss(); /* RPCSEC_GSS */ - -static struct { - enum auth_stat (*authenticator)(); -} svcauthsw[] = { - { _svcauth_none }, /* AUTH_NONE */ - { _svcauth_unix }, /* AUTH_UNIX */ - { _svcauth_short }, /* AUTH_SHORT */ - { _svcauth_none }, /* AUTH_DES - does not exist */ - { _svcauth_none }, - { _svcauth_none }, - { _svcauth_gss } /* RPCSEC_GSS */ -}; -#define AUTH_MAX 6 /* HIGHEST AUTH NUMBER */ - -/* - * The call rpc message, msg has been obtained from the wire. The msg contains - * the raw form of credentials and verifiers. authenticate returns AUTH_OK - * if the msg is successfully authenticated. If AUTH_OK then the routine also - * does the following things: - * set rqst->rq_xprt->verf to the appropriate response verifier; - * sets rqst->rq_clntcred to the "cooked" form of the credentials. - * - * NB: rqst->rq_xprt->verf must be pre-alloctaed; - * its length is set appropriately. - * - * The caller still owns and is responsible for msg->u.cmb.cred and - * msg->u.cmb.verf. The authentication system retains ownership of - * rqst->rq_clntcred, the cooked credentials. - * - * There is an assumption that any flavour less than AUTH_NONE is - * invalid. - */ -enum auth_stat -_authenticate(rqst, msg, no_dispatch) - register struct svc_req *rqst; - struct rpc_msg *msg; - bool_t *no_dispatch; -{ - register int cred_flavor; - - rqst->rq_cred = msg->rm_call.cb_cred; - rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor; - rqst->rq_xprt->xp_verf.oa_length = 0; - cred_flavor = rqst->rq_cred.oa_flavor; - *no_dispatch = FALSE; - - if ((cred_flavor <= AUTH_MAX) && (cred_flavor >= AUTH_NONE)) { - return ((*(svcauthsw[cred_flavor].authenticator))(rqst, msg, no_dispatch)); - } - - return (AUTH_REJECTEDCRED); -}