| 517 |
*ccp = NULL; |
*ccp = NULL; |
| 518 |
if ((cc = calloc(sizeof(*cc), 1)) == NULL) { |
if ((cc = calloc(sizeof(*cc), 1)) == NULL) { |
| 519 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 520 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 1); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 1); |
| 521 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 522 |
return SSH_ERR_ALLOC_FAIL; |
return SSH_ERR_ALLOC_FAIL; |
| 523 |
} |
} |
| 524 |
|
|
| 525 |
if (keylen < cipher->key_len) { |
if (keylen < cipher->key_len) { |
| 526 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 527 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 2); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 2); |
| 528 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 529 |
ret = SSH_ERR_INVALID_ARGUMENT; |
ret = SSH_ERR_INVALID_ARGUMENT; |
| 530 |
goto out; |
goto out; |
| 531 |
} |
} |
| 532 |
if (iv != NULL && ivlen < get_cipher_iv_len(cipher)) { |
if (iv != NULL && ivlen < get_cipher_iv_len(cipher)) { |
| 533 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 534 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 3); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 3); |
| 535 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 536 |
ret = SSH_ERR_INVALID_ARGUMENT; |
ret = SSH_ERR_INVALID_ARGUMENT; |
| 537 |
goto out; |
goto out; |
| 543 |
ret = cc->cp_ctx != NULL ? 0 : SSH_ERR_INVALID_ARGUMENT; |
ret = cc->cp_ctx != NULL ? 0 : SSH_ERR_INVALID_ARGUMENT; |
| 544 |
if (ret == SSH_ERR_INVALID_ARGUMENT) { |
if (ret == SSH_ERR_INVALID_ARGUMENT) { |
| 545 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 546 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 4); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 4); |
| 547 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 548 |
} |
} |
| 549 |
goto out; |
goto out; |
| 551 |
type = (*cipher->func)(); |
type = (*cipher->func)(); |
| 552 |
if ((cc->evp = EVP_CIPHER_CTX_new()) == NULL) { |
if ((cc->evp = EVP_CIPHER_CTX_new()) == NULL) { |
| 553 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 554 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 5); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 5); |
| 555 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 556 |
ret = SSH_ERR_ALLOC_FAIL; |
ret = SSH_ERR_ALLOC_FAIL; |
| 557 |
goto out; |
goto out; |
| 558 |
} |
} |
| 559 |
if (EVP_CipherInit(cc->evp, type, NULL, (u_char *)iv, (do_encrypt == CIPHER_ENCRYPT)) == 0) { |
if (EVP_CipherInit(cc->evp, type, NULL, (u_char *)iv, (do_encrypt == CIPHER_ENCRYPT)) == 0) { |
| 560 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 561 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 6); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 6); |
| 562 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 563 |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
| 564 |
goto out; |
goto out; |
| 566 |
if (get_cipher_auth_len(cipher) && |
if (get_cipher_auth_len(cipher) && |
| 567 |
!EVP_CIPHER_CTX_ctrl(cc->evp, EVP_CTRL_GCM_SET_IV_FIXED, -1, (u_char *)iv)) { |
!EVP_CIPHER_CTX_ctrl(cc->evp, EVP_CTRL_GCM_SET_IV_FIXED, -1, (u_char *)iv)) { |
| 568 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 569 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 7); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 7); |
| 570 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 571 |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
| 572 |
goto out; |
goto out; |
| 575 |
if (klen > 0 && keylen != (u_int)klen) { |
if (klen > 0 && keylen != (u_int)klen) { |
| 576 |
if (EVP_CIPHER_CTX_set_key_length(cc->evp, keylen) == 0) { |
if (EVP_CIPHER_CTX_set_key_length(cc->evp, keylen) == 0) { |
| 577 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 578 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 8); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 8); |
| 579 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 580 |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
| 581 |
goto out; |
goto out; |
| 583 |
} |
} |
| 584 |
if (EVP_CipherInit(cc->evp, NULL, (u_char *)key, NULL, -1) == 0) { |
if (EVP_CipherInit(cc->evp, NULL, (u_char *)key, NULL, -1) == 0) { |
| 585 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 586 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 9); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 9); |
| 587 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 588 |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
ret = SSH_ERR_LIBCRYPTO_ERROR; |
| 589 |
goto out; |
goto out; |
| 595 |
if (junk == NULL || discard == NULL || |
if (junk == NULL || discard == NULL || |
| 596 |
EVP_Cipher(cc->evp, discard, junk, cipher->discard_len) == 0) { |
EVP_Cipher(cc->evp, discard, junk, cipher->discard_len) == 0) { |
| 597 |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
UTIL_get_lang_msg("MSG_CIPHER_INIT_ERROR", pvar, "Cipher initialize error(%d)"); |
| 598 |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 10); |
_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->UIMsg, 10); |
| 599 |
notify_fatal_error(pvar, tmp, TRUE); |
notify_fatal_error(pvar, tmp, TRUE); |
| 600 |
} |
} |
| 601 |
else { |
else { |