File indexing completed on 2025-03-13 09:28:10
0001
0002
0003
0004
0005
0006 #ifndef _KEY_PROT_H_RPCGEN
0007 #define _KEY_PROT_H_RPCGEN
0008
0009 #include <rpc/rpc.h>
0010
0011
0012 #ifdef __cplusplus
0013 extern "C" {
0014 #endif
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 #if 0
0046 #pragma ident "@(#)key_prot.x 1.7 94/04/29 SMI"
0047 #endif
0048
0049
0050
0051
0052
0053
0054
0055
0056 #define PROOT 3
0057 #define HEXMODULUS "d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b"
0058 #define HEXKEYBYTES 48
0059 #define KEYSIZE 192
0060 #define KEYBYTES 24
0061 #define KEYCHECKSUMSIZE 16
0062
0063 enum keystatus {
0064 KEY_SUCCESS = 0,
0065 KEY_NOSECRET = 1,
0066 KEY_UNKNOWN = 2,
0067 KEY_SYSTEMERR = 3,
0068 };
0069 typedef enum keystatus keystatus;
0070
0071 typedef char keybuf[HEXKEYBYTES];
0072
0073 typedef char *netnamestr;
0074
0075 struct cryptkeyarg {
0076 netnamestr remotename;
0077 des_block deskey;
0078 };
0079 typedef struct cryptkeyarg cryptkeyarg;
0080
0081 struct cryptkeyarg2 {
0082 netnamestr remotename;
0083 netobj remotekey;
0084 des_block deskey;
0085 };
0086 typedef struct cryptkeyarg2 cryptkeyarg2;
0087
0088 struct cryptkeyres {
0089 keystatus status;
0090 union {
0091 des_block deskey;
0092 } cryptkeyres_u;
0093 };
0094 typedef struct cryptkeyres cryptkeyres;
0095 #define MAXGIDS 16
0096
0097 struct unixcred {
0098 u_int uid;
0099 u_int gid;
0100 struct {
0101 u_int gids_len;
0102 u_int *gids_val;
0103 } gids;
0104 };
0105 typedef struct unixcred unixcred;
0106
0107 struct getcredres {
0108 keystatus status;
0109 union {
0110 unixcred cred;
0111 } getcredres_u;
0112 };
0113 typedef struct getcredres getcredres;
0114
0115 struct key_netstarg {
0116 keybuf st_priv_key;
0117 keybuf st_pub_key;
0118 netnamestr st_netname;
0119 };
0120 typedef struct key_netstarg key_netstarg;
0121
0122 struct key_netstres {
0123 keystatus status;
0124 union {
0125 key_netstarg knet;
0126 } key_netstres_u;
0127 };
0128 typedef struct key_netstres key_netstres;
0129
0130 #ifndef opaque
0131 #define opaque char
0132 #endif
0133
0134
0135 #define KEY_PROG 100029
0136 #define KEY_VERS 1
0137
0138 #if defined(__STDC__) || defined(__cplusplus)
0139 #define KEY_SET 1
0140 extern keystatus * key_set_1(char *, CLIENT *);
0141 extern keystatus * key_set_1_svc(char *, struct svc_req *);
0142 #define KEY_ENCRYPT 2
0143 extern cryptkeyres * key_encrypt_1(cryptkeyarg *, CLIENT *);
0144 extern cryptkeyres * key_encrypt_1_svc(cryptkeyarg *, struct svc_req *);
0145 #define KEY_DECRYPT 3
0146 extern cryptkeyres * key_decrypt_1(cryptkeyarg *, CLIENT *);
0147 extern cryptkeyres * key_decrypt_1_svc(cryptkeyarg *, struct svc_req *);
0148 #define KEY_GEN 4
0149 extern des_block * key_gen_1(void *, CLIENT *);
0150 extern des_block * key_gen_1_svc(void *, struct svc_req *);
0151 #define KEY_GETCRED 5
0152 extern getcredres * key_getcred_1(netnamestr *, CLIENT *);
0153 extern getcredres * key_getcred_1_svc(netnamestr *, struct svc_req *);
0154 extern int key_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
0155
0156 #else
0157 #define KEY_SET 1
0158 extern keystatus * key_set_1();
0159 extern keystatus * key_set_1_svc();
0160 #define KEY_ENCRYPT 2
0161 extern cryptkeyres * key_encrypt_1();
0162 extern cryptkeyres * key_encrypt_1_svc();
0163 #define KEY_DECRYPT 3
0164 extern cryptkeyres * key_decrypt_1();
0165 extern cryptkeyres * key_decrypt_1_svc();
0166 #define KEY_GEN 4
0167 extern des_block * key_gen_1();
0168 extern des_block * key_gen_1_svc();
0169 #define KEY_GETCRED 5
0170 extern getcredres * key_getcred_1();
0171 extern getcredres * key_getcred_1_svc();
0172 extern int key_prog_1_freeresult ();
0173 #endif
0174 #define KEY_VERS2 2
0175
0176 #if defined(__STDC__) || defined(__cplusplus)
0177 extern keystatus * key_set_2(char *, CLIENT *);
0178 extern keystatus * key_set_2_svc(char *, struct svc_req *);
0179 extern cryptkeyres * key_encrypt_2(cryptkeyarg *, CLIENT *);
0180 extern cryptkeyres * key_encrypt_2_svc(cryptkeyarg *, struct svc_req *);
0181 extern cryptkeyres * key_decrypt_2(cryptkeyarg *, CLIENT *);
0182 extern cryptkeyres * key_decrypt_2_svc(cryptkeyarg *, struct svc_req *);
0183 extern des_block * key_gen_2(void *, CLIENT *);
0184 extern des_block * key_gen_2_svc(void *, struct svc_req *);
0185 extern getcredres * key_getcred_2(netnamestr *, CLIENT *);
0186 extern getcredres * key_getcred_2_svc(netnamestr *, struct svc_req *);
0187 #define KEY_ENCRYPT_PK 6
0188 extern cryptkeyres * key_encrypt_pk_2(cryptkeyarg2 *, CLIENT *);
0189 extern cryptkeyres * key_encrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
0190 #define KEY_DECRYPT_PK 7
0191 extern cryptkeyres * key_decrypt_pk_2(cryptkeyarg2 *, CLIENT *);
0192 extern cryptkeyres * key_decrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
0193 #define KEY_NET_PUT 8
0194 extern keystatus * key_net_put_2(key_netstarg *, CLIENT *);
0195 extern keystatus * key_net_put_2_svc(key_netstarg *, struct svc_req *);
0196 #define KEY_NET_GET 9
0197 extern key_netstres * key_net_get_2(void *, CLIENT *);
0198 extern key_netstres * key_net_get_2_svc(void *, struct svc_req *);
0199 #define KEY_GET_CONV 10
0200 extern cryptkeyres * key_get_conv_2(char *, CLIENT *);
0201 extern cryptkeyres * key_get_conv_2_svc(char *, struct svc_req *);
0202 extern int key_prog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
0203
0204 #else
0205 extern keystatus * key_set_2();
0206 extern keystatus * key_set_2_svc();
0207 extern cryptkeyres * key_encrypt_2();
0208 extern cryptkeyres * key_encrypt_2_svc();
0209 extern cryptkeyres * key_decrypt_2();
0210 extern cryptkeyres * key_decrypt_2_svc();
0211 extern des_block * key_gen_2();
0212 extern des_block * key_gen_2_svc();
0213 extern getcredres * key_getcred_2();
0214 extern getcredres * key_getcred_2_svc();
0215 #define KEY_ENCRYPT_PK 6
0216 extern cryptkeyres * key_encrypt_pk_2();
0217 extern cryptkeyres * key_encrypt_pk_2_svc();
0218 #define KEY_DECRYPT_PK 7
0219 extern cryptkeyres * key_decrypt_pk_2();
0220 extern cryptkeyres * key_decrypt_pk_2_svc();
0221 #define KEY_NET_PUT 8
0222 extern keystatus * key_net_put_2();
0223 extern keystatus * key_net_put_2_svc();
0224 #define KEY_NET_GET 9
0225 extern key_netstres * key_net_get_2();
0226 extern key_netstres * key_net_get_2_svc();
0227 #define KEY_GET_CONV 10
0228 extern cryptkeyres * key_get_conv_2();
0229 extern cryptkeyres * key_get_conv_2_svc();
0230 extern int key_prog_2_freeresult ();
0231 #endif
0232
0233
0234
0235 #if defined(__STDC__) || defined(__cplusplus)
0236 extern bool_t xdr_keystatus (XDR *, keystatus*);
0237 extern bool_t xdr_keybuf (XDR *, keybuf);
0238 extern bool_t xdr_netnamestr (XDR *, netnamestr*);
0239 extern bool_t xdr_cryptkeyarg (XDR *, cryptkeyarg*);
0240 extern bool_t xdr_cryptkeyarg2 (XDR *, cryptkeyarg2*);
0241 extern bool_t xdr_cryptkeyres (XDR *, cryptkeyres*);
0242 extern bool_t xdr_unixcred (XDR *, unixcred*);
0243 extern bool_t xdr_getcredres (XDR *, getcredres*);
0244 extern bool_t xdr_key_netstarg (XDR *, key_netstarg*);
0245 extern bool_t xdr_key_netstres (XDR *, key_netstres*);
0246
0247 #else
0248 extern bool_t xdr_keystatus ();
0249 extern bool_t xdr_keybuf ();
0250 extern bool_t xdr_netnamestr ();
0251 extern bool_t xdr_cryptkeyarg ();
0252 extern bool_t xdr_cryptkeyarg2 ();
0253 extern bool_t xdr_cryptkeyres ();
0254 extern bool_t xdr_unixcred ();
0255 extern bool_t xdr_getcredres ();
0256 extern bool_t xdr_key_netstarg ();
0257 extern bool_t xdr_key_netstres ();
0258
0259 #endif
0260
0261 #ifdef __cplusplus
0262 }
0263 #endif
0264
0265 #endif