linux/drivers/target/iscsi/iscsi_target_auth.h
<<
>>
Prefs
   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_SHA1        6
  10#define CHAP_DIGEST_SHA256      7
  11#define CHAP_DIGEST_SHA3_256    8
  12
  13#define MAX_CHAP_CHALLENGE_LEN  32
  14#define CHAP_CHALLENGE_STR_LEN  4096
  15#define MAX_RESPONSE_LENGTH     128     /* sufficient for SHA3 256 */
  16#define MAX_CHAP_N_SIZE         512
  17
  18#define MD5_SIGNATURE_SIZE      16      /* 16 bytes in a MD5 message digest */
  19#define SHA1_SIGNATURE_SIZE     20      /* 20 bytes in a SHA1 message digest */
  20#define SHA256_SIGNATURE_SIZE   32      /* 32 bytes in a SHA256 message digest */
  21#define SHA3_256_SIGNATURE_SIZE 32      /* 32 bytes in a SHA3 256 message digest */
  22
  23#define CHAP_STAGE_CLIENT_A     1
  24#define CHAP_STAGE_SERVER_AIC   2
  25#define CHAP_STAGE_CLIENT_NR    3
  26#define CHAP_STAGE_CLIENT_NRIC  4
  27#define CHAP_STAGE_SERVER_NR    5
  28
  29struct iscsi_node_auth;
  30struct iscsi_conn;
  31
  32extern u32 chap_main_loop(struct iscsi_conn *, struct iscsi_node_auth *, char *, char *,
  33                                int *, int *);
  34
  35struct iscsi_chap {
  36        unsigned char   id;
  37        unsigned char   challenge[MAX_CHAP_CHALLENGE_LEN];
  38        unsigned int    challenge_len;
  39        unsigned char   *digest_name;
  40        unsigned int    digest_size;
  41        unsigned int    authenticate_target;
  42        unsigned int    chap_state;
  43} ____cacheline_aligned;
  44
  45#endif   /*** _ISCSI_CHAP_H_ ***/
  46