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()
226 struct iscsi_chap *chap = conn->auth_protocol; in chap_server_compute_hash() local
231 digest = kzalloc(chap->digest_size, GFP_KERNEL); in chap_server_compute_hash()
237 response = kzalloc(chap->digest_size * 2 + 2, GFP_KERNEL); in chap_server_compute_hash()
243 client_digest = kzalloc(chap->digest_size, GFP_KERNEL); in chap_server_compute_hash()
249 server_digest = kzalloc(chap->digest_size, GFP_KERNEL); in chap_server_compute_hash()
302 if (strlen(chap_r) != chap->digest_size * 2) { in chap_server_compute_hash()
306 if (hex2bin(client_digest, chap_r, chap->digest_size) < 0) { in chap_server_compute_hash()
313 tfm = crypto_alloc_shash(chap->digest_name, 0, 0); in chap_server_compute_hash()
334 ret = crypto_shash_update(desc, &chap->id, 1); in chap_server_compute_hash()
347 ret = crypto_shash_finup(desc, chap->challenge, in chap_server_compute_hash()
348 chap->challenge_len, server_digest); in chap_server_compute_hash()
354 bin2hex(response, server_digest, chap->digest_size); in chap_server_compute_hash()
356 chap->digest_name, response); in chap_server_compute_hash()
358 if (memcmp(server_digest, client_digest, chap->digest_size) != 0) { in chap_server_compute_hash()
360 chap->digest_name); in chap_server_compute_hash()
364 " successful.\n\n", chap->digest_name); in chap_server_compute_hash()
430 if (initiatorchg_len == chap->challenge_len && in chap_server_compute_hash()
431 !memcmp(initiatorchg_binhex, chap->challenge, in chap_server_compute_hash()
480 bin2hex(response, digest, chap->digest_size); in chap_server_compute_hash()
507 struct iscsi_chap *chap = conn->auth_protocol; in chap_main_loop() local
509 if (!chap) { in chap_main_loop()
510 chap = chap_server_open(conn, auth, in_text, out_text, out_len); in chap_main_loop()
511 if (!chap) in chap_main_loop()
513 chap->chap_state = CHAP_STAGE_SERVER_AIC; in chap_main_loop()
515 } else if (chap->chap_state == CHAP_STAGE_SERVER_AIC) { in chap_main_loop()
523 chap->chap_state = CHAP_STAGE_SERVER_NR; in chap_main_loop()