]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
ec0994e4 SW |
2 | #ifndef _FS_CEPH_AUTH_X_H |
3 | #define _FS_CEPH_AUTH_X_H | |
4 | ||
5 | #include <linux/rbtree.h> | |
6 | ||
3d14c5d2 YS |
7 | #include <linux/ceph/auth.h> |
8 | ||
ec0994e4 | 9 | #include "crypto.h" |
ec0994e4 SW |
10 | #include "auth_x_protocol.h" |
11 | ||
12 | /* | |
13 | * Handle ticket for a single service. | |
14 | */ | |
15 | struct ceph_x_ticket_handler { | |
16 | struct rb_node node; | |
95c96174 | 17 | unsigned int service; |
ec0994e4 SW |
18 | |
19 | struct ceph_crypto_key session_key; | |
6abe097d | 20 | bool have_key; |
ec0994e4 SW |
21 | |
22 | u64 secret_id; | |
23 | struct ceph_buffer *ticket_blob; | |
24 | ||
25 | unsigned long renew_after, expires; | |
26 | }; | |
27 | ||
7882a26d | 28 | #define CEPHX_AU_ENC_BUF_LEN 128 /* big enough for encrypted blob */ |
ec0994e4 SW |
29 | |
30 | struct ceph_x_authorizer { | |
6c1ea260 | 31 | struct ceph_authorizer base; |
ae385eaf | 32 | struct ceph_crypto_key session_key; |
ec0994e4 | 33 | struct ceph_buffer *buf; |
95c96174 | 34 | unsigned int service; |
ec0994e4 | 35 | u64 nonce; |
0bed9b5c | 36 | u64 secret_id; |
7882a26d | 37 | char enc_buf[CEPHX_AU_ENC_BUF_LEN] __aligned(8); |
ec0994e4 SW |
38 | }; |
39 | ||
40 | struct ceph_x_info { | |
41 | struct ceph_crypto_key secret; | |
42 | ||
43 | bool starting; | |
44 | u64 server_challenge; | |
45 | ||
95c96174 | 46 | unsigned int have_keys; |
ec0994e4 SW |
47 | struct rb_root ticket_handlers; |
48 | ||
49 | struct ceph_x_authorizer auth_authorizer; | |
50 | }; | |
51 | ||
348662a1 | 52 | int ceph_x_init(struct ceph_auth_client *ac); |
ec0994e4 SW |
53 | |
54 | #endif | |
55 |