#include <crypto/hash.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/err.h>
#include <linux/random.h>
#include <linux/scatterlist.h>
#include <target/iscsi/iscsi_target_core.h>
#include "iscsi_target_nego.h"
#include "iscsi_target_auth.h"
static char *chap_get_digest_name(const int digest_type)
{ … }
static int chap_gen_challenge(
struct iscsit_conn *conn,
int caller,
char *c_str,
unsigned int *c_len)
{ … }
static int chap_test_algorithm(const char *name)
{ … }
static int chap_check_algorithm(const char *a_str)
{ … }
static void chap_close(struct iscsit_conn *conn)
{ … }
static struct iscsi_chap *chap_server_open(
struct iscsit_conn *conn,
struct iscsi_node_auth *auth,
const char *a_str,
char *aic_str,
unsigned int *aic_len)
{ … }
static const char base64_lookup_table[] = …;
static int chap_base64_decode(u8 *dst, const char *src, size_t len)
{ … }
static int chap_server_compute_hash(
struct iscsit_conn *conn,
struct iscsi_node_auth *auth,
char *nr_in_ptr,
char *nr_out_ptr,
unsigned int *nr_out_len)
{ … }
u32 chap_main_loop(
struct iscsit_conn *conn,
struct iscsi_node_auth *auth,
char *in_text,
char *out_text,
int *in_len,
int *out_len)
{ … }