mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 08:02:07 +00:00
scsi: target: iscsi: Do not require target authentication
RFC7143 states that Initiator decides what type of authentication to use: The initiator MUST continue with: CHAP_N=<N> CHAP_R=<R> or, if it requires target authentication, with: CHAP_N=<N> CHAP_R=<R> CHAP_I=<I> CHAP_C=<C> Allow one way authentication if mutual authentication is configured. That passes some tests from Windows HLK for Mutual CHAP with iSNS. Link: https://lore.kernel.org/r/20220718152555.17084-5-d.bogdanov@yadro.com Reviewed-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
e52b904b49
commit
292cef5e62
@ -416,7 +416,13 @@ static int chap_server_compute_hash(
|
||||
/*
|
||||
* Get CHAP_I.
|
||||
*/
|
||||
if (extract_param(nr_in_ptr, "CHAP_I", 10, identifier, &type) < 0) {
|
||||
ret = extract_param(nr_in_ptr, "CHAP_I", 10, identifier, &type);
|
||||
if (ret == -ENOENT) {
|
||||
pr_debug("Could not find CHAP_I. Initiator uses One way authentication.\n");
|
||||
auth_ret = 0;
|
||||
goto out;
|
||||
}
|
||||
if (ret < 0) {
|
||||
pr_err("Could not find CHAP_I.\n");
|
||||
goto out;
|
||||
}
|
||||
|
@ -62,15 +62,15 @@ int extract_param(
|
||||
int len;
|
||||
|
||||
if (!in_buf || !pattern || !out_buf || !type)
|
||||
return -1;
|
||||
return -EINVAL;
|
||||
|
||||
ptr = strstr(in_buf, pattern);
|
||||
if (!ptr)
|
||||
return -1;
|
||||
return -ENOENT;
|
||||
|
||||
ptr = strstr(ptr, "=");
|
||||
if (!ptr)
|
||||
return -1;
|
||||
return -EINVAL;
|
||||
|
||||
ptr += 1;
|
||||
if (*ptr == '0' && (*(ptr+1) == 'x' || *(ptr+1) == 'X')) {
|
||||
@ -84,12 +84,12 @@ int extract_param(
|
||||
|
||||
len = strlen_semi(ptr);
|
||||
if (len < 0)
|
||||
return -1;
|
||||
return -EINVAL;
|
||||
|
||||
if (len >= max_length) {
|
||||
pr_err("Length of input: %d exceeds max_length:"
|
||||
" %d\n", len, max_length);
|
||||
return -1;
|
||||
return -EINVAL;
|
||||
}
|
||||
memcpy(out_buf, ptr, len);
|
||||
out_buf[len] = '\0';
|
||||
|
Loading…
Reference in New Issue
Block a user