Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
sunrpc
auth_gss.h
Go to the documentation of this file.
1
/*
2
* linux/include/linux/sunrpc/auth_gss.h
3
*
4
* Declarations for RPCSEC_GSS
5
*
6
* Dug Song <
[email protected]
>
7
* Andy Adamson <
[email protected]
>
8
* Bruce Fields <
[email protected]
>
9
* Copyright (c) 2000 The Regents of the University of Michigan
10
*/
11
12
#ifndef _LINUX_SUNRPC_AUTH_GSS_H
13
#define _LINUX_SUNRPC_AUTH_GSS_H
14
15
#ifdef __KERNEL__
16
#include <
linux/sunrpc/auth.h
>
17
#include <
linux/sunrpc/svc.h
>
18
#include <
linux/sunrpc/gss_api.h
>
19
20
#define RPC_GSS_VERSION 1
21
22
#define MAXSEQ 0x80000000
/* maximum legal sequence number, from rfc 2203 */
23
24
enum
rpc_gss_proc {
25
RPC_GSS_PROC_DATA = 0,
26
RPC_GSS_PROC_INIT = 1,
27
RPC_GSS_PROC_CONTINUE_INIT = 2,
28
RPC_GSS_PROC_DESTROY = 3
29
};
30
31
enum
rpc_gss_svc {
32
RPC_GSS_SVC_NONE = 1,
33
RPC_GSS_SVC_INTEGRITY = 2,
34
RPC_GSS_SVC_PRIVACY = 3
35
};
36
37
/* on-the-wire gss cred: */
38
struct
rpc_gss_wire_cred {
39
u32
gc_v;
/* version */
40
u32
gc_proc;
/* control procedure */
41
u32
gc_seq;
/* sequence number */
42
u32
gc_svc;
/* service */
43
struct
xdr_netobj gc_ctx;
/* context handle */
44
};
45
46
/* on-the-wire gss verifier: */
47
struct
rpc_gss_wire_verf {
48
u32
gv_flavor;
49
struct
xdr_netobj gv_verf;
50
};
51
52
/* return from gss NULL PROC init sec context */
53
struct
rpc_gss_init_res {
54
struct
xdr_netobj gr_ctx;
/* context handle */
55
u32
gr_major;
/* major status */
56
u32
gr_minor;
/* minor status */
57
u32
gr_win;
/* sequence window */
58
struct
xdr_netobj gr_token;
/* token */
59
};
60
61
/* The gss_cl_ctx struct holds all the information the rpcsec_gss client
62
* code needs to know about a single security context. In particular,
63
* gc_gss_ctx is the context handle that is used to do gss-api calls, while
64
* gc_wire_ctx is the context handle that is used to identify the context on
65
* the wire when communicating with a server. */
66
67
struct
gss_cl_ctx {
68
atomic_t
count
;
69
enum
rpc_gss_proc gc_proc;
70
u32
gc_seq;
71
spinlock_t
gc_seq_lock;
72
struct
gss_ctx
__rcu
*gc_gss_ctx;
73
struct
xdr_netobj gc_wire_ctx;
74
u32
gc_win;
75
unsigned
long
gc_expiry;
76
struct
rcu_head
gc_rcu;
77
};
78
79
struct
gss_upcall_msg
;
80
struct
gss_cred {
81
struct
rpc_cred gc_base;
82
enum
rpc_gss_svc gc_service;
83
struct
gss_cl_ctx
__rcu
*gc_ctx;
84
struct
gss_upcall_msg
*gc_upcall;
85
const
char
*gc_principal;
86
unsigned
long
gc_upcall_timestamp;
87
};
88
89
#endif
/* __KERNEL__ */
90
#endif
/* _LINUX_SUNRPC_AUTH_GSS_H */
91
Generated on Thu Jan 10 2013 14:52:38 for Linux Kernel by
1.8.2