tcpdump/rpc_auth.h
guy af0a039080 Have our own headers to declare the format of ONC (Sun) RPC messages on
the wire; the definitions in many systems use u_long, which is 64 bits
long on many platforms - that's OK for in-memory structures, but it
doesn't match what's on the wire.  Use headers based on the Sun ones,
but use u_int32_t for fields, and otherwise make the structures match
what's on the wire, and change some names to avoid collision with
<rpc/rpc.h>, which print-sunrpc.c includes to declare "getrpcbynumber()"
and the structure it returns.

Record whether "getrpcbynumber()" is found, and use it only if it's
found, rather than basing the decisison on whether we're building for
Win32 or not.
2004-12-27 00:41:29 +00:00

85 lines
2.9 KiB
C

/* @(#) $Header: /tcpdump/master/tcpdump/rpc_auth.h,v 1.1 2004-12-27 00:41:32 guy Exp $ (LBL) */
/*
* 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, MERCHANTABILITY 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
*
* from: @(#)auth.h 1.17 88/02/08 SMI
* from: @(#)auth.h 2.3 88/08/07 4.0 RPCSRC
* $FreeBSD: src/include/rpc/auth.h,v 1.14.2.1 1999/08/29 14:39:02 peter Exp $
*/
/*
* auth.h, Authentication interface.
*
* Copyright (C) 1984, Sun Microsystems, Inc.
*
* The data structures are completely opaque to the client. The client
* is required to pass a AUTH * to routines that create rpc
* "sessions".
*/
#ifndef __RPC_AUTH_H_
#define __RPC_AUTH_H_
/*
* Status returned from authentication check
*/
enum sunrpc_auth_stat {
SUNRPC_AUTH_OK=0,
/*
* failed at remote end
*/
SUNRPC_AUTH_BADCRED=1, /* bogus credentials (seal broken) */
SUNRPC_AUTH_REJECTEDCRED=2, /* client should begin new session */
SUNRPC_AUTH_BADVERF=3, /* bogus verifier (seal broken) */
SUNRPC_AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */
SUNRPC_AUTH_TOOWEAK=5, /* rejected due to security reasons */
/*
* failed locally
*/
SUNRPC_AUTH_INVALIDRESP=6, /* bogus response verifier */
SUNRPC_AUTH_FAILED=7 /* some unknown reason */
};
/*
* Authentication info. Opaque to client.
*/
struct sunrpc_opaque_auth {
u_int32_t oa_flavor; /* flavor of auth */
u_int32_t oa_len; /* length of opaque body */
/* zero or more bytes of body */
};
#define SUNRPC_AUTH_NONE 0 /* no authentication */
#define SUNRPC_AUTH_NULL 0 /* backward compatibility */
#define SUNRPC_AUTH_UNIX 1 /* unix style (uid, gids) */
#define SUNRPC_AUTH_SYS 1 /* forward compatibility */
#define SUNRPC_AUTH_SHORT 2 /* short hand unix style */
#define SUNRPC_AUTH_DES 3 /* des style (encrypted timestamps) */
#endif /* !__RPC_AUTH_H_ */