version 1.28, 2016/06/01 04:19:49 |
version 1.29, 2016/06/08 02:13:01 |
|
|
kex->nbits = nbits; |
kex->nbits = nbits; |
kex->min = min; |
kex->min = min; |
kex->max = max; |
kex->max = max; |
|
min = MAX(DH_GRP_MIN, min); |
|
max = MIN(DH_GRP_MAX, max); |
|
nbits = MAX(DH_GRP_MIN, nbits); |
|
nbits = MIN(DH_GRP_MAX, nbits); |
|
|
if (kex->max < kex->min || kex->nbits < kex->min || |
if (kex->max < kex->min || kex->nbits < kex->min || |
kex->max < kex->nbits || kex->max < DH_GRP_MIN || |
kex->max < kex->nbits || kex->max < DH_GRP_MIN) { |
kex->min > DH_GRP_MAX) { |
|
r = SSH_ERR_DH_GEX_OUT_OF_RANGE; |
r = SSH_ERR_DH_GEX_OUT_OF_RANGE; |
goto out; |
goto out; |
} |
} |
kex->min = MAX(DH_GRP_MIN, kex->min); |
|
kex->max = MIN(DH_GRP_MAX, kex->max); |
|
kex->nbits = MAX(DH_GRP_MIN, kex->nbits); |
|
kex->nbits = MIN(DH_GRP_MAX, kex->nbits); |
|
|
|
/* Contact privileged parent */ |
/* Contact privileged parent */ |
kex->dh = PRIVSEP(choose_dh(kex->min, kex->nbits, kex->max)); |
kex->dh = PRIVSEP(choose_dh(min, nbits, max)); |
if (kex->dh == NULL) { |
if (kex->dh == NULL) { |
sshpkt_disconnect(ssh, "no matching DH group found"); |
sshpkt_disconnect(ssh, "no matching DH grp found"); |
r = SSH_ERR_ALLOC_FAIL; |
r = SSH_ERR_ALLOC_FAIL; |
goto out; |
goto out; |
} |
} |