2 * Protocol descriptions for core RXGK structures and RPCs.
8 /* constants for RXGK RPC numbers */
9 #define RXGK_GSSNEGOTIATE 1
10 #define RXGK_COMBINETOKENS 2
11 #define RXGK_AFSCOMBINETOKENS 3
13 /* RPC-L from draft-wilkinson-afs3-rxgk */
17 typedef afs_int64 rxgkTime;
19 /* key usage values */
20 const RXGK_CLIENT_ENC_PACKET = 1026;
21 const RXGK_CLIENT_MIC_PACKET = 1027;
22 const RXGK_SERVER_ENC_PACKET = 1028;
23 const RXGK_SERVER_MIC_PACKET = 1029;
24 const RXGK_CLIENT_ENC_RESPONSE = 1030;
25 const RXGK_SERVER_ENC_TOKEN = 1036;
34 /* limits for variable-length arrays */
35 const RXGK_MAXENCTYPES = 255;
36 const RXGK_MAXLEVELS = 255;
37 const RXGK_MAXMIC = 1024;
38 const RXGK_MAXNONCE = 1024;
39 const RXGK_MAXDATA = 1048576;
41 typedef afs_int32 RXGK_Enctypes<RXGK_MAXENCTYPES>;
42 typedef opaque RXGK_Data<RXGK_MAXDATA>;
44 /* Begin definitions for RXGK_GSSNegotiate. */
46 struct RXGK_StartParams {
47 RXGK_Enctypes enctypes;
48 RXGK_Level levels<RXGK_MAXLEVELS>;
51 opaque client_nonce<RXGK_MAXNONCE>;
54 struct RXGK_ClientInfo {
61 opaque mic<RXGK_MAXMIC>;
63 opaque server_nonce<RXGK_MAXNONCE>;
66 GSSNegotiate(IN RXGK_StartParams *client_start,
67 IN RXGK_Data *input_token_buffer,
68 IN RXGK_Data *opaque_in,
69 OUT RXGK_Data *output_token_buffer,
70 OUT RXGK_Data *opaque_out,
71 OUT afs_uint32 *gss_major_status,
72 OUT afs_uint32 *gss_minor_status,
73 OUT RXGK_Data *rxgk_info) = RXGK_GSSNEGOTIATE;
75 /* Begin definitions for RXGK_CombineTokens. */
77 struct RXGK_CombineOptions {
78 RXGK_Enctypes enctypes;
79 RXGK_Level levels<RXGK_MAXLEVELS>;
82 struct RXGK_TokenInfo {
90 CombineTokens(IN RXGK_Data *token0, IN RXGK_Data *token1,
91 IN RXGK_CombineOptions *options,
92 OUT RXGK_Data *new_token,
93 OUT RXGK_TokenInfo *info) = RXGK_COMBINETOKENS;
95 /* Begin definitions for security class operation. */
97 /* RX challenge and response structures */
98 struct RXGK_Challenge {
101 const RXGK_MAXAUTHENTICATOR = 1416; /* better fit in a packet! */
102 struct RXGK_Response {
105 opaque authenticator<RXGK_MAXAUTHENTICATOR>;
108 struct RXGK_Authenticator {
114 afs_uint32 call_numbers<>;
117 /* RPC-L from draft-brashear-afs3-pts-extended-names-09 (final). */
119 #define AUTHDATAMAX 2048
120 #define AUTHPRINTABLEMAX 2048
123 opaque data<AUTHDATAMAX>;
124 opaque display<AUTHPRINTABLEMAX>;
127 /* RPC-L from draft-wilkinson-afs3-rxgk-afs. */
129 /* Begin authenticator appdata definition. */
131 struct RXGK_Authenticator_AFSAppData {
139 /* Begin token definitions. */
141 struct RXGK_TokenContainer {
144 opaque encrypted_token<>;
152 rxgkTime expirationtime;
153 struct PrAuthName identities<>;
156 /* Begin definitions for AFSCombineTokens. */
158 AFSCombineTokens(IN RXGK_Data *user_tok,
159 IN RXGK_Data *cm_tok,
160 IN RXGK_CombineOptions *options,
161 IN afsUUID destination,
162 OUT RXGK_Data *new_token,
163 OUT RXGK_TokenInfo *token_info) = RXGK_AFSCOMBINETOKENS;