wrapper: Fix size type and loops in crypt_set_algorithms_server()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
39b08af2e8
Коммит
2e7e0ad6c9
@ -376,9 +376,11 @@ int crypt_set_algorithms_client(ssh_session session)
|
|||||||
#ifdef WITH_SERVER
|
#ifdef WITH_SERVER
|
||||||
int crypt_set_algorithms_server(ssh_session session){
|
int crypt_set_algorithms_server(ssh_session session){
|
||||||
const char *method = NULL;
|
const char *method = NULL;
|
||||||
int i = 0;
|
size_t i = 0;
|
||||||
struct ssh_cipher_struct *ssh_ciphertab=ssh_get_ciphertab();
|
struct ssh_cipher_struct *ssh_ciphertab=ssh_get_ciphertab();
|
||||||
struct ssh_hmac_struct *ssh_hmactab=ssh_get_hmactab();
|
struct ssh_hmac_struct *ssh_hmactab=ssh_get_hmactab();
|
||||||
|
int cmp;
|
||||||
|
|
||||||
|
|
||||||
if (session == NULL) {
|
if (session == NULL) {
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
@ -392,8 +394,6 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
method = session->next_crypto->kex_methods[SSH_CRYPT_S_C];
|
method = session->next_crypto->kex_methods[SSH_CRYPT_S_C];
|
||||||
|
|
||||||
for (i = 0; ssh_ciphertab[i].name != NULL; i++) {
|
for (i = 0; ssh_ciphertab[i].name != NULL; i++) {
|
||||||
int cmp;
|
|
||||||
|
|
||||||
cmp = strcmp(method, ssh_ciphertab[i].name);
|
cmp = strcmp(method, ssh_ciphertab[i].name);
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
break;
|
break;
|
||||||
@ -412,7 +412,7 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
ssh_set_error_oom(session);
|
ssh_set_error_oom(session);
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
i=0;
|
|
||||||
if (session->next_crypto->out_cipher->aead_encrypt != NULL){
|
if (session->next_crypto->out_cipher->aead_encrypt != NULL){
|
||||||
/* this cipher has integrated MAC */
|
/* this cipher has integrated MAC */
|
||||||
if (session->next_crypto->out_cipher->ciphertype == SSH_AEAD_CHACHA20_POLY1305) {
|
if (session->next_crypto->out_cipher->ciphertype == SSH_AEAD_CHACHA20_POLY1305) {
|
||||||
@ -427,8 +427,11 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
}
|
}
|
||||||
/* HMAC algorithm selection */
|
/* HMAC algorithm selection */
|
||||||
|
|
||||||
while (ssh_hmactab[i].name && strcmp(method, ssh_hmactab[i].name)) {
|
for (i = 0; ssh_hmactab[i].name != NULL; i++) {
|
||||||
i++;
|
cmp = strcmp(method, ssh_hmactab[i].name);
|
||||||
|
if (cmp == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ssh_hmactab[i].name == NULL) {
|
if (ssh_hmactab[i].name == NULL) {
|
||||||
@ -442,16 +445,13 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
session->next_crypto->out_hmac = ssh_hmactab[i].hmac_type;
|
session->next_crypto->out_hmac = ssh_hmactab[i].hmac_type;
|
||||||
|
|
||||||
/* in */
|
/* in */
|
||||||
i=0;
|
|
||||||
method = session->next_crypto->kex_methods[SSH_CRYPT_C_S];
|
method = session->next_crypto->kex_methods[SSH_CRYPT_C_S];
|
||||||
|
|
||||||
for (i = 0; ssh_ciphertab[i].name; i++) {
|
for (i = 0; ssh_ciphertab[i].name; i++) {
|
||||||
int cmp;
|
cmp = strcmp(method, ssh_ciphertab[i].name);
|
||||||
|
if (cmp == 0) {
|
||||||
cmp = strcmp(method, ssh_ciphertab[i].name);
|
break;
|
||||||
if (cmp == 0) {
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ssh_ciphertab[i].name == NULL) {
|
if (ssh_ciphertab[i].name == NULL) {
|
||||||
@ -466,7 +466,6 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
ssh_set_error_oom(session);
|
ssh_set_error_oom(session);
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
i=0;
|
|
||||||
|
|
||||||
if (session->next_crypto->in_cipher->aead_encrypt != NULL){
|
if (session->next_crypto->in_cipher->aead_encrypt != NULL){
|
||||||
/* this cipher has integrated MAC */
|
/* this cipher has integrated MAC */
|
||||||
@ -481,12 +480,10 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; ssh_hmactab[i].name != NULL; i++) {
|
for (i = 0; ssh_hmactab[i].name != NULL; i++) {
|
||||||
int cmp;
|
cmp = strcmp(method, ssh_hmactab[i].name);
|
||||||
|
if (cmp == 0) {
|
||||||
cmp = strcmp(method, ssh_hmactab[i].name);
|
break;
|
||||||
if (cmp == 0) {
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ssh_hmactab[i].name == NULL) {
|
if (ssh_hmactab[i].name == NULL) {
|
||||||
@ -498,7 +495,6 @@ int crypt_set_algorithms_server(ssh_session session){
|
|||||||
SSH_LOG(SSH_LOG_PACKET, "Set HMAC input algorithm to %s", method);
|
SSH_LOG(SSH_LOG_PACKET, "Set HMAC input algorithm to %s", method);
|
||||||
|
|
||||||
session->next_crypto->in_hmac = ssh_hmactab[i].hmac_type;
|
session->next_crypto->in_hmac = ssh_hmactab[i].hmac_type;
|
||||||
i=0;
|
|
||||||
|
|
||||||
/* compression */
|
/* compression */
|
||||||
method = session->next_crypto->kex_methods[SSH_COMP_C_S];
|
method = session->next_crypto->kex_methods[SSH_COMP_C_S];
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user