Lines Matching refs:chap
45 struct iscsi_chap *chap = conn->auth_protocol; in chap_gen_challenge() local
47 challenge_asciihex = kzalloc(chap->challenge_len * 2 + 1, GFP_KERNEL); in chap_gen_challenge()
51 memset(chap->challenge, 0, MAX_CHAP_CHALLENGE_LEN); in chap_gen_challenge()
53 ret = get_random_bytes_wait(chap->challenge, chap->challenge_len); in chap_gen_challenge()
57 bin2hex(challenge_asciihex, chap->challenge, in chap_gen_challenge()
58 chap->challenge_len); in chap_gen_challenge()
145 struct iscsi_chap *chap; in chap_server_open() local
158 chap = conn->auth_protocol; in chap_server_open()
162 chap->digest_size = MD5_SIGNATURE_SIZE; in chap_server_open()
165 chap->digest_size = SHA1_SIGNATURE_SIZE; in chap_server_open()
168 chap->digest_size = SHA256_SIGNATURE_SIZE; in chap_server_open()
171 chap->digest_size = SHA3_256_SIGNATURE_SIZE; in chap_server_open()
180 chap->digest_name = chap_get_digest_name(digest_type); in chap_server_open()
183 chap->challenge_len = chap->digest_size; in chap_server_open()
193 chap->id = conn->tpg->tpg_chap_id++; in chap_server_open()
194 *aic_len += sprintf(aic_str + *aic_len, "CHAP_I=%d", chap->id); in chap_server_open()
196 pr_debug("[server] Sending CHAP_I=%d\n", chap->id); in chap_server_open()
205 return chap; in chap_server_open()
258 struct iscsi_chap *chap = conn->auth_protocol; in chap_server_compute_hash() local
263 digest = kzalloc(chap->digest_size, GFP_KERNEL); in chap_server_compute_hash()
269 response = kzalloc(chap->digest_size * 2 + 2, GFP_KERNEL); in chap_server_compute_hash()
275 client_digest = kzalloc(chap->digest_size, GFP_KERNEL); in chap_server_compute_hash()
281 server_digest = kzalloc(chap->digest_size, GFP_KERNEL); in chap_server_compute_hash()
333 if (strlen(chap_r) != chap->digest_size * 2) { in chap_server_compute_hash()
337 if (hex2bin(client_digest, chap_r, chap->digest_size) < 0) { in chap_server_compute_hash()
344 chap->digest_size) { in chap_server_compute_hash()
356 tfm = crypto_alloc_shash(chap->digest_name, 0, 0); in chap_server_compute_hash()
377 ret = crypto_shash_update(desc, &chap->id, 1); in chap_server_compute_hash()
390 ret = crypto_shash_finup(desc, chap->challenge, in chap_server_compute_hash()
391 chap->challenge_len, server_digest); in chap_server_compute_hash()
397 bin2hex(response, server_digest, chap->digest_size); in chap_server_compute_hash()
399 chap->digest_name, response); in chap_server_compute_hash()
401 if (memcmp(server_digest, client_digest, chap->digest_size) != 0) { in chap_server_compute_hash()
403 chap->digest_name); in chap_server_compute_hash()
407 " successful.\n\n", chap->digest_name); in chap_server_compute_hash()
502 if (initiatorchg_len == chap->challenge_len && in chap_server_compute_hash()
503 !memcmp(initiatorchg_binhex, chap->challenge, in chap_server_compute_hash()
552 bin2hex(response, digest, chap->digest_size); in chap_server_compute_hash()
579 struct iscsi_chap *chap = conn->auth_protocol; in chap_main_loop() local
581 if (!chap) { in chap_main_loop()
582 chap = chap_server_open(conn, auth, in_text, out_text, out_len); in chap_main_loop()
583 if (!chap) in chap_main_loop()
585 chap->chap_state = CHAP_STAGE_SERVER_AIC; in chap_main_loop()
587 } else if (chap->chap_state == CHAP_STAGE_SERVER_AIC) { in chap_main_loop()
595 chap->chap_state = CHAP_STAGE_SERVER_NR; in chap_main_loop()