Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/crypt.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 9208 by nmaya, Sat Apr 17 06:15:51 2021 UTC revision 9209 by nmaya, Sat Apr 17 06:32:42 2021 UTC
# Line 489  static BIGNUM *get_bignum(unsigned char Line 489  static BIGNUM *get_bignum(unsigned char
489    
490  // make_key()を fingerprint 生成でも利用するので、staticを削除。(2006.3.27 yutaka)  // make_key()を fingerprint 生成でも利用するので、staticを削除。(2006.3.27 yutaka)
491  RSA *make_key(PTInstVar pvar,  RSA *make_key(PTInstVar pvar,
492                    int bits, unsigned char *exp,                int bits, unsigned char *exp,
493                    unsigned char *mod)                unsigned char *mod)
494  {  {
495          RSA *key = RSA_new();          RSA *key = RSA_new();
496          BIGNUM *e = NULL, *n = NULL;          BIGNUM *e = NULL, *n = NULL;
# Line 665  unsigned int CRYPT_get_receiver_MAC_size Line 665  unsigned int CRYPT_get_receiver_MAC_size
665  // ※本関数は SSH2 でのみ使用される。  // ※本関数は SSH2 でのみ使用される。
666  // (2004.12.17 yutaka)  // (2004.12.17 yutaka)
667  BOOL CRYPT_verify_receiver_MAC(PTInstVar pvar, uint32 sequence_number,  BOOL CRYPT_verify_receiver_MAC(PTInstVar pvar, uint32 sequence_number,
668          char *data, int len, char *MAC)                                 char *data, int len, char *MAC)
669  {  {
670          HMAC_CTX *c = NULL;          HMAC_CTX *c = NULL;
671          unsigned char m[EVP_MAX_MD_SIZE];          unsigned char m[EVP_MAX_MD_SIZE];
# Line 685  BOOL CRYPT_verify_receiver_MAC(PTInstVar Line 685  BOOL CRYPT_verify_receiver_MAC(PTInstVar
685    
686          if ((u_int)mac->mac_len > sizeof(m)) {          if ((u_int)mac->mac_len > sizeof(m)) {
687                  logprintf(LOG_LEVEL_VERBOSE, "HMAC len(%d) is larger than %d bytes(seq %lu len %d)",                  logprintf(LOG_LEVEL_VERBOSE, "HMAC len(%d) is larger than %d bytes(seq %lu len %d)",
688                          mac->mac_len, sizeof(m), sequence_number, len);                            mac->mac_len, sizeof(m), sequence_number, len);
689                  goto error;                  goto error;
690          }          }
691    
# Line 1003  int CRYPT_generate_RSA_challenge_respons Line 1003  int CRYPT_generate_RSA_challenge_respons
1003                         SSH_RSA_CHALLENGE_LENGTH, SSH_RSA_CHALLENGE_LENGTH);                         SSH_RSA_CHALLENGE_LENGTH, SSH_RSA_CHALLENGE_LENGTH);
1004          } else {          } else {
1005                  SecureZeroMemory(decrypted_challenge,                  SecureZeroMemory(decrypted_challenge,
1006                         SSH_RSA_CHALLENGE_LENGTH - decrypted_challenge_len);                                   SSH_RSA_CHALLENGE_LENGTH - decrypted_challenge_len);
1007                  memcpy(decrypted_challenge + SSH_RSA_CHALLENGE_LENGTH -                  memcpy(decrypted_challenge + SSH_RSA_CHALLENGE_LENGTH -
1008                         decrypted_challenge_len, challenge,                         decrypted_challenge_len, challenge,
1009                         decrypted_challenge_len);                         decrypted_challenge_len);
# Line 1063  void cipher_init_SSH2(EVP_CIPHER_CTX *ev Line 1063  void cipher_init_SSH2(EVP_CIPHER_CTX *ev
1063          char tmp[80];          char tmp[80];
1064          unsigned char *junk = NULL, *discard = NULL;          unsigned char *junk = NULL, *discard = NULL;
1065    
1066          EVP_CIPHER_CTX_init(evp);          EVP_CIPHER_CTX_reset(evp);
1067          if (EVP_CipherInit(evp, type, NULL, NULL, (encrypt == CIPHER_ENCRYPT)) == 0) {          if (EVP_CipherInit(evp, type, NULL, NULL, (encrypt == CIPHER_ENCRYPT)) == 0) {
1068                  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)");
1069                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 1);                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, 1);
# Line 1126  void cipher_init_SSH2(EVP_CIPHER_CTX *ev Line 1126  void cipher_init_SSH2(EVP_CIPHER_CTX *ev
1126  //  //
1127  // SSH2用アルゴリズムの破棄  // SSH2用アルゴリズムの破棄
1128  //  //
1129  void cipher_cleanup_SSH2(EVP_CIPHER_CTX *evp)  void cipher_free_SSH2(EVP_CIPHER_CTX *evp)
1130  {  {
1131          EVP_CIPHER_CTX_cleanup(evp);          EVP_CIPHER_CTX_free(evp);
1132  }  }
1133    
1134    
# Line 1392  void CRYPT_end(PTInstVar pvar) Line 1392  void CRYPT_end(PTInstVar pvar)
1392    
1393          if (pvar->crypt_state.detect_attack_statics.h != NULL) {          if (pvar->crypt_state.detect_attack_statics.h != NULL) {
1394                  SecureZeroMemory(pvar->crypt_state.detect_attack_statics.h,                  SecureZeroMemory(pvar->crypt_state.detect_attack_statics.h,
1395                         pvar->crypt_state.detect_attack_statics.n * HASH_ENTRYSIZE);                                   pvar->crypt_state.detect_attack_statics.n * HASH_ENTRYSIZE);
1396                  free(pvar->crypt_state.detect_attack_statics.h);                  free(pvar->crypt_state.detect_attack_statics.h);
1397          }          }
1398    
1399          SecureZeroMemory(pvar->crypt_state.sender_cipher_key,          SecureZeroMemory(pvar->crypt_state.sender_cipher_key,
1400                 sizeof(pvar->crypt_state.sender_cipher_key));                           sizeof(pvar->crypt_state.sender_cipher_key));
1401          SecureZeroMemory(pvar->crypt_state.receiver_cipher_key,          SecureZeroMemory(pvar->crypt_state.receiver_cipher_key,
1402                 sizeof(pvar->crypt_state.receiver_cipher_key));                           sizeof(pvar->crypt_state.receiver_cipher_key));
1403          SecureZeroMemory(pvar->crypt_state.server_cookie,          SecureZeroMemory(pvar->crypt_state.server_cookie,
1404                 sizeof(pvar->crypt_state.server_cookie));                           sizeof(pvar->crypt_state.server_cookie));
1405          SecureZeroMemory(pvar->crypt_state.client_cookie,          SecureZeroMemory(pvar->crypt_state.client_cookie,
1406                 sizeof(pvar->crypt_state.client_cookie));                           sizeof(pvar->crypt_state.client_cookie));
1407          SecureZeroMemory(&pvar->crypt_state.enc, sizeof(pvar->crypt_state.enc));          SecureZeroMemory(&pvar->crypt_state.enc, sizeof(pvar->crypt_state.enc));
1408          SecureZeroMemory(&pvar->crypt_state.dec, sizeof(pvar->crypt_state.dec));          SecureZeroMemory(&pvar->crypt_state.dec, sizeof(pvar->crypt_state.dec));
1409  }  }
# Line 1453  int CRYPT_passphrase_decrypt(int cipher, Line 1453  int CRYPT_passphrase_decrypt(int cipher,
1453                          SecureZeroMemory(state.ivec, 8);                          SecureZeroMemory(state.ivec, 8);
1454                          flip_endianness(buf, bytes);                          flip_endianness(buf, bytes);
1455                          BF_cbc_encrypt(buf, buf, bytes, &state.k, state.ivec,                          BF_cbc_encrypt(buf, buf, bytes, &state.k, state.ivec,
1456                                                     BF_DECRYPT);                                         BF_DECRYPT);
1457                          flip_endianness(buf, bytes);                          flip_endianness(buf, bytes);
1458                          break;                          break;
1459                  }                  }

Legend:
Removed from v.9208  
changed lines
  Added in v.9209

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26