scmno****@osdn*****
scmno****@osdn*****
2017年 11月 26日 (日) 00:26:31 JST
Revision: 6982 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6982 Author: doda Date: 2017-11-26 00:26:31 +0900 (Sun, 26 Nov 2017) Log Message: ----------- 負にならない(なるべきでない)変数、関数を unsigned int に変更 Modified Paths: -------------- trunk/ttssh2/ttxssh/crypt.c trunk/ttssh2/ttxssh/crypt.h trunk/ttssh2/ttxssh/pkt.c trunk/ttssh2/ttxssh/ssh.c trunk/ttssh2/ttxssh/ssh.h -------------- next part -------------- Modified: trunk/ttssh2/ttxssh/crypt.c =================================================================== --- trunk/ttssh2/ttxssh/crypt.c 2017-11-25 15:26:26 UTC (rev 6981) +++ trunk/ttssh2/ttxssh/crypt.c 2017-11-25 15:26:31 UTC (rev 6982) @@ -495,7 +495,7 @@ } } -int CRYPT_get_decryption_block_size(PTInstVar pvar) +unsigned int CRYPT_get_decryption_block_size(PTInstVar pvar) { if (SSHv1(pvar)) { return 8; @@ -506,7 +506,7 @@ } } -int CRYPT_get_encryption_block_size(PTInstVar pvar) +unsigned int CRYPT_get_encryption_block_size(PTInstVar pvar) { if (SSHv1(pvar)) { return 8; @@ -517,7 +517,7 @@ } } -int CRYPT_get_receiver_MAC_size(PTInstVar pvar) +unsigned int CRYPT_get_receiver_MAC_size(PTInstVar pvar) { struct Mac *mac; @@ -582,7 +582,7 @@ return FALSE; } -int CRYPT_get_sender_MAC_size(PTInstVar pvar) +unsigned int CRYPT_get_sender_MAC_size(PTInstVar pvar) { struct Mac *mac; @@ -675,7 +675,7 @@ } } -int CRYPT_get_encrypted_session_key_len(PTInstVar pvar) +unsigned int CRYPT_get_encrypted_session_key_len(PTInstVar pvar) { int server_key_bits = BN_num_bits(pvar->crypt_state.server_key.RSA_key->n); Modified: trunk/ttssh2/ttxssh/crypt.h =================================================================== --- trunk/ttssh2/ttxssh/crypt.h 2017-11-25 15:26:26 UTC (rev 6981) +++ trunk/ttssh2/ttxssh/crypt.h 2017-11-25 15:26:31 UTC (rev 6982) @@ -125,16 +125,16 @@ int bits, unsigned char *exp, unsigned char *mod); BOOL CRYPT_set_host_RSA_key(PTInstVar pvar, int bits, unsigned char *exp, unsigned char *mod); -int CRYPT_get_encrypted_session_key_len(PTInstVar pvar); +unsigned int CRYPT_get_encrypted_session_key_len(PTInstVar pvar); int CRYPT_choose_session_key(PTInstVar pvar, unsigned char *encrypted_key_buf); BOOL CRYPT_start_encryption(PTInstVar pvar, int sender_flag, int receiver_flag); int CRYPT_generate_RSA_challenge_response(PTInstVar pvar, unsigned char *challenge, int challenge_len, unsigned char *response); -int CRYPT_get_receiver_MAC_size(PTInstVar pvar); +unsigned int CRYPT_get_receiver_MAC_size(PTInstVar pvar); BOOL CRYPT_verify_receiver_MAC(PTInstVar pvar, uint32 sequence_number, char *data, int len, char *MAC); -int CRYPT_get_sender_MAC_size(PTInstVar pvar); +unsigned int CRYPT_get_sender_MAC_size(PTInstVar pvar); BOOL CRYPT_build_sender_MAC(PTInstVar pvar, uint32 sequence_number, char *data, int len, char *MAC); @@ -143,8 +143,8 @@ BOOL CRYPT_choose_ciphers(PTInstVar pvar); #define CRYPT_get_sender_cipher(pvar) ((pvar)->crypt_state.sender_cipher) #define CRYPT_get_receiver_cipher(pvar) ((pvar)->crypt_state.receiver_cipher) -int CRYPT_get_decryption_block_size(PTInstVar pvar); -int CRYPT_get_encryption_block_size(PTInstVar pvar); +unsigned int CRYPT_get_decryption_block_size(PTInstVar pvar); +unsigned int CRYPT_get_encryption_block_size(PTInstVar pvar); #define CRYPT_encrypt(pvar, buf, bytes) \ ((pvar)->crypt_state.encrypt((pvar), (buf), (bytes))) #define CRYPT_decrypt(pvar, buf, bytes) \ Modified: trunk/ttssh2/ttxssh/pkt.c =================================================================== --- trunk/ttssh2/ttxssh/pkt.c 2017-11-25 15:26:26 UTC (rev 6981) +++ trunk/ttssh2/ttxssh/pkt.c 2017-11-25 15:26:31 UTC (rev 6982) @@ -174,7 +174,7 @@ pvar->pkt_state.datastart += i; pvar->pkt_state.datalen -= i; } - else if (pvar->pkt_state.seen_server_ID && pvar->pkt_state.datalen >= (unsigned int) SSH_get_min_packet_size(pvar)) { + else if (pvar->pkt_state.seen_server_ID && pvar->pkt_state.datalen >= SSH_get_min_packet_size(pvar)) { char *data = pvar->pkt_state.buf + pvar->pkt_state.datastart; uint32 padding; uint32 pktsize; Modified: trunk/ttssh2/ttxssh/ssh.c =================================================================== --- trunk/ttssh2/ttxssh/ssh.c 2017-11-25 15:26:26 UTC (rev 6981) +++ trunk/ttssh2/ttxssh/ssh.c 2017-11-25 15:26:31 UTC (rev 6982) @@ -596,7 +596,7 @@ free(buf); // free } -static int get_predecryption_amount(PTInstVar pvar) +static unsigned int get_predecryption_amount(PTInstVar pvar) { static int small_block_decryption_sizes[] = { 5, 5, 6, 6, 8 }; @@ -603,7 +603,7 @@ if (SSHv1(pvar)) { return 0; } else { - int block_size = CRYPT_get_decryption_block_size(pvar); + unsigned int block_size = CRYPT_get_decryption_block_size(pvar); if (block_size < 5) { return small_block_decryption_sizes[block_size]; @@ -726,7 +726,7 @@ * 'len' is the length of the * payload + padding (+ length of CRC for SSHv1). * 'padding' is the length of the padding alone. */ -static int prep_packet_ssh1(PTInstVar pvar, char *data, int len, int padding) +static int prep_packet_ssh1(PTInstVar pvar, char *data, unsigned int len, unsigned int padding) { pvar->ssh_state.payload = data + 4; pvar->ssh_state.payloadlen = len; @@ -788,7 +788,7 @@ * etm - MAC \x95\x{33AE0AA} EtM \x82\xA9\x82ǂ\xA4\x82\xA9\x82̃t\x83\x89\x83O */ -static int prep_packet_ssh2(PTInstVar pvar, char *data, int len, int padding, int etm) +static int prep_packet_ssh2(PTInstVar pvar, char *data, unsigned int len, unsigned int padding, int etm) { if (etm) { // EtM \x82̏ꍇ\x82͐\xE6\x82\xC9 MAC \x82̌\x9F\x8F\xF0\x8Ds\x82\xA4 @@ -807,7 +807,7 @@ else { // E&M \x82ł͐擪\x95\x94\x95\xAA\x82\xAA\x8E\x96\x91O\x95\x9C\x8D\x86\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x81B // \x8E\x96\x91O\x95\x9C\x8D\x86\x82\xB3\x82ꂽ\x92\xB7\x82\xB3\x82\xF0\x8E擾\x82\xB7\x82\xE9\x81B - int already_decrypted = get_predecryption_amount(pvar); + unsigned int already_decrypted = get_predecryption_amount(pvar); // \x8E\x96\x91O\x95\x9C\x8D\x86\x82\xB3\x82ꂽ\x95\x94\x95\xAA\x82\xF0\x83X\x83L\x83b\x83v\x82\xB5\x82āA\x8Ec\x82\xE8\x82̕\x94\x95\xAA\x82\x86\x82\xB7\x82\xE9\x81B CRYPT_decrypt(pvar, data + already_decrypted, (4 + len) - already_decrypted); @@ -887,8 +887,8 @@ We only need a reasonable upper bound for the buffer size */ buf_ensure_size(&pvar->ssh_state.outbuf, &pvar->ssh_state.outbuflen, - len + 30 + CRYPT_get_sender_MAC_size(pvar) + - CRYPT_get_encryption_block_size(pvar)); + (int)(len + 30 + CRYPT_get_sender_MAC_size(pvar) + + CRYPT_get_encryption_block_size(pvar))); buf = pvar->ssh_state.outbuf + 12; } @@ -1019,12 +1019,12 @@ set_uint32(data + data_length - 4, do_crc(data + 4, data_length - 8)); CRYPT_encrypt(pvar, data + 4, data_length - 4); } else { //for SSH2(yutaka) - int block_size = CRYPT_get_encryption_block_size(pvar); + unsigned int block_size = CRYPT_get_encryption_block_size(pvar); unsigned int encryption_size; unsigned int padding; BOOL ret; struct Mac *mac = &pvar->ssh2_keys[MODE_OUT].mac; - int aadlen = 0, maclen = 0; + unsigned int aadlen = 0, maclen = 0; /* \x83f\x81[\x83^\x8D\\x91\xA2 @@ -2091,7 +2091,7 @@ } } -void SSH1_handle_packet(PTInstVar pvar, char *data, int len, int padding) +void SSH1_handle_packet(PTInstVar pvar, char *data, unsigned int len, unsigned int padding) { unsigned char message = prep_packet_ssh1(pvar, data, len, padding); @@ -2114,7 +2114,7 @@ } } -void SSH2_handle_packet(PTInstVar pvar, char *data, int len, int padding, int etm) +void SSH2_handle_packet(PTInstVar pvar, char *data, unsigned int len, unsigned int padding, int etm) { unsigned char message = prep_packet_ssh2(pvar, data, len, padding, etm); @@ -2897,14 +2897,12 @@ return (ret); } -int SSH_get_min_packet_size(PTInstVar pvar) +unsigned int SSH_get_min_packet_size(PTInstVar pvar) { if (SSHv1(pvar)) { return 12; } else { - int block_size = CRYPT_get_decryption_block_size(pvar); - - return max(16, block_size); + return max(16, CRYPT_get_decryption_block_size(pvar)); } } @@ -2917,7 +2915,7 @@ } } -int SSH_get_clear_MAC_size(PTInstVar pvar) +unsigned int SSH_get_clear_MAC_size(PTInstVar pvar) { if (SSHv1(pvar)) { return 0; Modified: trunk/ttssh2/ttxssh/ssh.h =================================================================== --- trunk/ttssh2/ttxssh/ssh.h 2017-11-25 15:26:26 UTC (rev 6981) +++ trunk/ttssh2/ttxssh/ssh.h 2017-11-25 15:26:31 UTC (rev 6982) @@ -712,8 +712,8 @@ 'padding' is the size of the padding. 'data' points to the start of the packet data (the length field) */ -void SSH1_handle_packet(PTInstVar pvar, char *data, int len, int padding); -void SSH2_handle_packet(PTInstVar pvar, char *data, int len, int padding, int etm); +void SSH1_handle_packet(PTInstVar pvar, char *data, unsigned int len, unsigned int padding); +void SSH2_handle_packet(PTInstVar pvar, char *data, unsigned int len, unsigned int padding, int etm); void SSH_notify_win_size(PTInstVar pvar, int cols, int rows); void SSH_notify_user_name(PTInstVar pvar); void SSH_notify_cred(PTInstVar pvar); @@ -751,11 +751,11 @@ int SSH_sftp_transaction(PTInstVar pvar); /* auxiliary SSH2 interfaces for pkt.c */ -int SSH_get_min_packet_size(PTInstVar pvar); +unsigned int SSH_get_min_packet_size(PTInstVar pvar); /* data is guaranteed to be at least SSH_get_min_packet_size bytes long at least 5 bytes must be decrypted */ void SSH_predecrpyt_packet(PTInstVar pvar, char *data); -int SSH_get_clear_MAC_size(PTInstVar pvar); +unsigned int SSH_get_clear_MAC_size(PTInstVar pvar); #define SSH_is_any_payload(pvar) ((pvar)->ssh_state.payload_datalen > 0) #define SSH_get_host_name(pvar) ((pvar)->ssh_state.hostname)