1*b636d99dSDavid van Moolenbroek /* 2*b636d99dSDavid van Moolenbroek * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 3*b636d99dSDavid van Moolenbroek * unrestricted use provided that this legend is included on all tape 4*b636d99dSDavid van Moolenbroek * media and as a part of the software program in whole or part. Users 5*b636d99dSDavid van Moolenbroek * may copy or modify Sun RPC without charge, but are not authorized 6*b636d99dSDavid van Moolenbroek * to license or distribute it to anyone else except as part of a product or 7*b636d99dSDavid van Moolenbroek * program developed by the user. 8*b636d99dSDavid van Moolenbroek * 9*b636d99dSDavid van Moolenbroek * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE 10*b636d99dSDavid van Moolenbroek * WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11*b636d99dSDavid van Moolenbroek * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. 12*b636d99dSDavid van Moolenbroek * 13*b636d99dSDavid van Moolenbroek * Sun RPC is provided with no support and without any obligation on the 14*b636d99dSDavid van Moolenbroek * part of Sun Microsystems, Inc. to assist in its use, correction, 15*b636d99dSDavid van Moolenbroek * modification or enhancement. 16*b636d99dSDavid van Moolenbroek * 17*b636d99dSDavid van Moolenbroek * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE 18*b636d99dSDavid van Moolenbroek * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC 19*b636d99dSDavid van Moolenbroek * OR ANY PART THEREOF. 20*b636d99dSDavid van Moolenbroek * 21*b636d99dSDavid van Moolenbroek * In no event will Sun Microsystems, Inc. be liable for any lost revenue 22*b636d99dSDavid van Moolenbroek * or profits or other special, indirect and consequential damages, even if 23*b636d99dSDavid van Moolenbroek * Sun has been advised of the possibility of such damages. 24*b636d99dSDavid van Moolenbroek * 25*b636d99dSDavid van Moolenbroek * Sun Microsystems, Inc. 26*b636d99dSDavid van Moolenbroek * 2550 Garcia Avenue 27*b636d99dSDavid van Moolenbroek * Mountain View, California 94043 28*b636d99dSDavid van Moolenbroek * 29*b636d99dSDavid van Moolenbroek * from: @(#)auth.h 1.17 88/02/08 SMI 30*b636d99dSDavid van Moolenbroek * from: @(#)auth.h 2.3 88/08/07 4.0 RPCSRC 31*b636d99dSDavid van Moolenbroek * $FreeBSD: src/include/rpc/auth.h,v 1.14.2.1 1999/08/29 14:39:02 peter Exp $ 32*b636d99dSDavid van Moolenbroek */ 33*b636d99dSDavid van Moolenbroek 34*b636d99dSDavid van Moolenbroek /* 35*b636d99dSDavid van Moolenbroek * auth.h, Authentication interface. 36*b636d99dSDavid van Moolenbroek * 37*b636d99dSDavid van Moolenbroek * Copyright (C) 1984, Sun Microsystems, Inc. 38*b636d99dSDavid van Moolenbroek * 39*b636d99dSDavid van Moolenbroek * The data structures are completely opaque to the client. The client 40*b636d99dSDavid van Moolenbroek * is required to pass a AUTH * to routines that create rpc 41*b636d99dSDavid van Moolenbroek * "sessions". 42*b636d99dSDavid van Moolenbroek */ 43*b636d99dSDavid van Moolenbroek 44*b636d99dSDavid van Moolenbroek /* 45*b636d99dSDavid van Moolenbroek * Status returned from authentication check 46*b636d99dSDavid van Moolenbroek */ 47*b636d99dSDavid van Moolenbroek enum sunrpc_auth_stat { 48*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_OK=0, 49*b636d99dSDavid van Moolenbroek /* 50*b636d99dSDavid van Moolenbroek * failed at remote end 51*b636d99dSDavid van Moolenbroek */ 52*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_BADCRED=1, /* bogus credentials (seal broken) */ 53*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_REJECTEDCRED=2, /* client should begin new session */ 54*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_BADVERF=3, /* bogus verifier (seal broken) */ 55*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */ 56*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_TOOWEAK=5, /* rejected due to security reasons */ 57*b636d99dSDavid van Moolenbroek /* 58*b636d99dSDavid van Moolenbroek * failed locally 59*b636d99dSDavid van Moolenbroek */ 60*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_INVALIDRESP=6, /* bogus response verifier */ 61*b636d99dSDavid van Moolenbroek SUNRPC_AUTH_FAILED=7 /* some unknown reason */ 62*b636d99dSDavid van Moolenbroek }; 63*b636d99dSDavid van Moolenbroek 64*b636d99dSDavid van Moolenbroek /* 65*b636d99dSDavid van Moolenbroek * Authentication info. Opaque to client. 66*b636d99dSDavid van Moolenbroek */ 67*b636d99dSDavid van Moolenbroek struct sunrpc_opaque_auth { 68*b636d99dSDavid van Moolenbroek uint32_t oa_flavor; /* flavor of auth */ 69*b636d99dSDavid van Moolenbroek uint32_t oa_len; /* length of opaque body */ 70*b636d99dSDavid van Moolenbroek /* zero or more bytes of body */ 71*b636d99dSDavid van Moolenbroek }; 72*b636d99dSDavid van Moolenbroek 73*b636d99dSDavid van Moolenbroek #define SUNRPC_AUTH_NONE 0 /* no authentication */ 74*b636d99dSDavid van Moolenbroek #define SUNRPC_AUTH_NULL 0 /* backward compatibility */ 75*b636d99dSDavid van Moolenbroek #define SUNRPC_AUTH_UNIX 1 /* unix style (uid, gids) */ 76*b636d99dSDavid van Moolenbroek #define SUNRPC_AUTH_SYS 1 /* forward compatibility */ 77*b636d99dSDavid van Moolenbroek #define SUNRPC_AUTH_SHORT 2 /* short hand unix style */ 78*b636d99dSDavid van Moolenbroek #define SUNRPC_AUTH_DES 3 /* des style (encrypted timestamps) */ 79