GNU Linux-libre 4.14.262-gnu1
[releases.git] / drivers / target / iscsi / iscsi_target_auth.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ISCSI_CHAP_H_
3 #define _ISCSI_CHAP_H_
4
5 #include <linux/types.h>
6
7 #define CHAP_DIGEST_UNKNOWN     0
8 #define CHAP_DIGEST_MD5         5
9 #define CHAP_DIGEST_SHA         6
10
11 #define CHAP_CHALLENGE_LENGTH   16
12 #define CHAP_CHALLENGE_STR_LEN  4096
13 #define MAX_RESPONSE_LENGTH     64      /* sufficient for MD5 */
14 #define MAX_CHAP_N_SIZE         512
15
16 #define MD5_SIGNATURE_SIZE      16      /* 16 bytes in a MD5 message digest */
17
18 #define CHAP_STAGE_CLIENT_A     1
19 #define CHAP_STAGE_SERVER_AIC   2
20 #define CHAP_STAGE_CLIENT_NR    3
21 #define CHAP_STAGE_CLIENT_NRIC  4
22 #define CHAP_STAGE_SERVER_NR    5
23
24 struct iscsi_node_auth;
25 struct iscsi_conn;
26
27 extern u32 chap_main_loop(struct iscsi_conn *, struct iscsi_node_auth *, char *, char *,
28                                 int *, int *);
29
30 struct iscsi_chap {
31         unsigned char   digest_type;
32         unsigned char   id;
33         unsigned char   challenge[CHAP_CHALLENGE_LENGTH];
34         unsigned int    authenticate_target;
35         unsigned int    chap_state;
36 } ____cacheline_aligned;
37
38 #endif   /*** _ISCSI_CHAP_H_ ***/