key_prot.h
001:
002:
003:
004:
005:
006: #ifndef _KEY_PROT_H_RPCGEN
007: #define _KEY_PROT_H_RPCGEN
008:
009: #include <rpc/rpc.h>
010:
011:
012: #ifdef __cplusplus
013: extern "C" {
014: #endif
015:
016: #if 0
017: #pragma ident "@(#)key_prot.x 1.7 94/04/29 SMI"
018: #endif
019:
020:
021:
022:
023:
024:
025:
026:
027: #define PROOT 3
028: #define HEXMODULUS "d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b"
029: #define HEXKEYBYTES 48
030: #define KEYSIZE 192
031: #define KEYBYTES 24
032: #define KEYCHECKSUMSIZE 16
033:
034: enum keystatus {
035: KEY_SUCCESS = 0,
036: KEY_NOSECRET = 1,
037: KEY_UNKNOWN = 2,
038: KEY_SYSTEMERR = 3,
039: };
040: typedef enum keystatus keystatus;
041:
042: typedef char keybuf[HEXKEYBYTES];
043:
044: typedef char *netnamestr;
045:
046: struct cryptkeyarg {
047: netnamestr remotename;
048: des_block deskey;
049: };
050: typedef struct cryptkeyarg cryptkeyarg;
051:
052: struct cryptkeyarg2 {
053: netnamestr remotename;
054: netobj remotekey;
055: des_block deskey;
056: };
057: typedef struct cryptkeyarg2 cryptkeyarg2;
058:
059: struct cryptkeyres {
060: keystatus status;
061: union {
062: des_block deskey;
063: } cryptkeyres_u;
064: };
065: typedef struct cryptkeyres cryptkeyres;
066: #define MAXGIDS 16
067:
068: struct unixcred {
069: u_int uid;
070: u_int gid;
071: struct {
072: u_int gids_len;
073: u_int *gids_val;
074: } gids;
075: };
076: typedef struct unixcred unixcred;
077:
078: struct getcredres {
079: keystatus status;
080: union {
081: unixcred cred;
082: } getcredres_u;
083: };
084: typedef struct getcredres getcredres;
085:
086: struct key_netstarg {
087: keybuf st_priv_key;
088: keybuf st_pub_key;
089: netnamestr st_netname;
090: };
091: typedef struct key_netstarg key_netstarg;
092:
093: struct key_netstres {
094: keystatus status;
095: union {
096: key_netstarg knet;
097: } key_netstres_u;
098: };
099: typedef struct key_netstres key_netstres;
100:
101: #ifndef opaque
102: #define opaque char
103: #endif
104:
105:
106: #define KEY_PROG 100029
107: #define KEY_VERS 1
108:
109: #if defined(__STDC__) || defined(__cplusplus)
110: #define KEY_SET 1
111: extern keystatus * key_set_1(char *, CLIENT *);
112: extern keystatus * key_set_1_svc(char *, struct svc_req *);
113: #define KEY_ENCRYPT 2
114: extern cryptkeyres * key_encrypt_1(cryptkeyarg *, CLIENT *);
115: extern cryptkeyres * key_encrypt_1_svc(cryptkeyarg *, struct svc_req *);
116: #define KEY_DECRYPT 3
117: extern cryptkeyres * key_decrypt_1(cryptkeyarg *, CLIENT *);
118: extern cryptkeyres * key_decrypt_1_svc(cryptkeyarg *, struct svc_req *);
119: #define KEY_GEN 4
120: extern des_block * key_gen_1(void *, CLIENT *);
121: extern des_block * key_gen_1_svc(void *, struct svc_req *);
122: #define KEY_GETCRED 5
123: extern getcredres * key_getcred_1(netnamestr *, CLIENT *);
124: extern getcredres * key_getcred_1_svc(netnamestr *, struct svc_req *);
125: extern int key_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
126:
127: #else
128: #define KEY_SET 1
129: extern keystatus * key_set_1();
130: extern keystatus * key_set_1_svc();
131: #define KEY_ENCRYPT 2
132: extern cryptkeyres * key_encrypt_1();
133: extern cryptkeyres * key_encrypt_1_svc();
134: #define KEY_DECRYPT 3
135: extern cryptkeyres * key_decrypt_1();
136: extern cryptkeyres * key_decrypt_1_svc();
137: #define KEY_GEN 4
138: extern des_block * key_gen_1();
139: extern des_block * key_gen_1_svc();
140: #define KEY_GETCRED 5
141: extern getcredres * key_getcred_1();
142: extern getcredres * key_getcred_1_svc();
143: extern int key_prog_1_freeresult ();
144: #endif
145: #define KEY_VERS2 2
146:
147: #if defined(__STDC__) || defined(__cplusplus)
148: extern keystatus * key_set_2(char *, CLIENT *);
149: extern keystatus * key_set_2_svc(char *, struct svc_req *);
150: extern cryptkeyres * key_encrypt_2(cryptkeyarg *, CLIENT *);
151: extern cryptkeyres * key_encrypt_2_svc(cryptkeyarg *, struct svc_req *);
152: extern cryptkeyres * key_decrypt_2(cryptkeyarg *, CLIENT *);
153: extern cryptkeyres * key_decrypt_2_svc(cryptkeyarg *, struct svc_req *);
154: extern des_block * key_gen_2(void *, CLIENT *);
155: extern des_block * key_gen_2_svc(void *, struct svc_req *);
156: extern getcredres * key_getcred_2(netnamestr *, CLIENT *);
157: extern getcredres * key_getcred_2_svc(netnamestr *, struct svc_req *);
158: #define KEY_ENCRYPT_PK 6
159: extern cryptkeyres * key_encrypt_pk_2(cryptkeyarg2 *, CLIENT *);
160: extern cryptkeyres * key_encrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
161: #define KEY_DECRYPT_PK 7
162: extern cryptkeyres * key_decrypt_pk_2(cryptkeyarg2 *, CLIENT *);
163: extern cryptkeyres * key_decrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
164: #define KEY_NET_PUT 8
165: extern keystatus * key_net_put_2(key_netstarg *, CLIENT *);
166: extern keystatus * key_net_put_2_svc(key_netstarg *, struct svc_req *);
167: #define KEY_NET_GET 9
168: extern key_netstres * key_net_get_2(void *, CLIENT *);
169: extern key_netstres * key_net_get_2_svc(void *, struct svc_req *);
170: #define KEY_GET_CONV 10
171: extern cryptkeyres * key_get_conv_2(char *, CLIENT *);
172: extern cryptkeyres * key_get_conv_2_svc(char *, struct svc_req *);
173: extern int key_prog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
174:
175: #else
176: extern keystatus * key_set_2();
177: extern keystatus * key_set_2_svc();
178: extern cryptkeyres * key_encrypt_2();
179: extern cryptkeyres * key_encrypt_2_svc();
180: extern cryptkeyres * key_decrypt_2();
181: extern cryptkeyres * key_decrypt_2_svc();
182: extern des_block * key_gen_2();
183: extern des_block * key_gen_2_svc();
184: extern getcredres * key_getcred_2();
185: extern getcredres * key_getcred_2_svc();
186: #define KEY_ENCRYPT_PK 6
187: extern cryptkeyres * key_encrypt_pk_2();
188: extern cryptkeyres * key_encrypt_pk_2_svc();
189: #define KEY_DECRYPT_PK 7
190: extern cryptkeyres * key_decrypt_pk_2();
191: extern cryptkeyres * key_decrypt_pk_2_svc();
192: #define KEY_NET_PUT 8
193: extern keystatus * key_net_put_2();
194: extern keystatus * key_net_put_2_svc();
195: #define KEY_NET_GET 9
196: extern key_netstres * key_net_get_2();
197: extern key_netstres * key_net_get_2_svc();
198: #define KEY_GET_CONV 10
199: extern cryptkeyres * key_get_conv_2();
200: extern cryptkeyres * key_get_conv_2_svc();
201: extern int key_prog_2_freeresult ();
202: #endif
203:
204:
205:
206: #if defined(__STDC__) || defined(__cplusplus)
207: extern bool_t xdr_keystatus (XDR *, keystatus*);
208: extern bool_t xdr_keybuf (XDR *, keybuf);
209: extern bool_t xdr_netnamestr (XDR *, netnamestr*);
210: extern bool_t xdr_cryptkeyarg (XDR *, cryptkeyarg*);
211: extern bool_t xdr_cryptkeyarg2 (XDR *, cryptkeyarg2*);
212: extern bool_t xdr_cryptkeyres (XDR *, cryptkeyres*);
213: extern bool_t xdr_unixcred (XDR *, unixcred*);
214: extern bool_t xdr_getcredres (XDR *, getcredres*);
215: extern bool_t xdr_key_netstarg (XDR *, key_netstarg*);
216: extern bool_t xdr_key_netstres (XDR *, key_netstres*);
217:
218: #else
219: extern bool_t xdr_keystatus ();
220: extern bool_t xdr_keybuf ();
221: extern bool_t xdr_netnamestr ();
222: extern bool_t xdr_cryptkeyarg ();
223: extern bool_t xdr_cryptkeyarg2 ();
224: extern bool_t xdr_cryptkeyres ();
225: extern bool_t xdr_unixcred ();
226: extern bool_t xdr_getcredres ();
227: extern bool_t xdr_key_netstarg ();
228: extern bool_t xdr_key_netstres ();
229:
230: #endif
231:
232: #ifdef __cplusplus
233: }
234: #endif
235:
236: #endif
237:
© Andrew Scott 2006 -
2025,
All Rights Reserved