Skip to content

Commit f100d36

Browse files
authored
Merge pull request #991 from TeraTermProject/refactor/#550-kex
KEX をリファクタリング #550
2 parents 3935a72 + 8f41858 commit f100d36

File tree

15 files changed

+1382
-1026
lines changed

15 files changed

+1382
-1026
lines changed

ttssh2/ttxssh/buffer.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,11 @@ void buffer_put_cstring(buffer_t *msg, const char *ptr)
334334
buffer_put_string(msg, ptr, strlen(ptr));
335335
}
336336

337+
void buffer_put_stringb(buffer_t *msg, buffer_t *v)
338+
{
339+
buffer_put_string(msg, buffer_ptr(v), buffer_len(v));
340+
}
341+
337342
void buffer_put_char(buffer_t *msg, int value)
338343
{
339344
char ch = (char)value;

ttssh2/ttxssh/buffer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ void buffer_put_raw(buffer_t *msg, const void *ptr, size_t size);
5353
char *buffer_get_string(char **data_ptr, int *buflen_ptr);
5454
void buffer_put_string(buffer_t *msg, const char *ptr, size_t size);
5555
void buffer_put_cstring(buffer_t *msg, const char *ptr);
56+
void buffer_put_stringb(buffer_t *msg, buffer_t *v);
5657
void buffer_put_char(buffer_t *msg, int value);
5758
void buffer_put_padding(buffer_t *msg, size_t size);
5859
void buffer_put_int(buffer_t *msg, int value);

ttssh2/ttxssh/cipher.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ typedef enum {
8383
SSH_CIPHER_MAX = SSH2_CIPHER_CHACHAPOLY,
8484
} SSHCipherId;
8585

86-
struct ssh2cipher {
86+
typedef struct ssh2cipher {
8787
SSHCipherId id;
8888
char *name;
8989
u_int block_size;
@@ -92,7 +92,7 @@ struct ssh2cipher {
9292
u_int iv_len;
9393
u_int auth_len;
9494
const EVP_CIPHER *(*func)(void);
95-
};
95+
} ssh2cipher;
9696

9797
struct sshcipher_ctx {
9898
// TTSSH では SSH_CIPHER_NONE が無効なので、plaintext は使用されない

ttssh2/ttxssh/crypt.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,9 +1041,9 @@ BOOL CRYPT_start_encryption(PTInstVar pvar, int sender_flag, int receiver_flag)
10411041
}
10421042
else {
10431043
// SSH2
1044-
cipher = pvar->ciphers[MODE_OUT];
1044+
cipher = pvar->kex->ciphers[MODE_OUT];
10451045
if (cipher) {
1046-
pvar->crypt_state.sender_cipher = get_cipher_id(pvar->ciphers[MODE_OUT]);
1046+
pvar->crypt_state.sender_cipher = get_cipher_id(pvar->kex->ciphers[MODE_OUT]);
10471047
enc = &pvar->ssh2_keys[MODE_OUT].enc;
10481048
cipher_init_SSH2(&pvar->cc[MODE_OUT], cipher,
10491049
enc->key, enc->key_len,
@@ -1087,9 +1087,9 @@ BOOL CRYPT_start_encryption(PTInstVar pvar, int sender_flag, int receiver_flag)
10871087
}
10881088
else {
10891089
// SSH2
1090-
cipher = pvar->ciphers[MODE_IN];
1090+
cipher = pvar->kex->ciphers[MODE_IN];
10911091
if (cipher) {
1092-
pvar->crypt_state.receiver_cipher = get_cipher_id(pvar->ciphers[MODE_IN]);
1092+
pvar->crypt_state.receiver_cipher = get_cipher_id(pvar->kex->ciphers[MODE_IN]);
10931093
enc = &pvar->ssh2_keys[MODE_IN].enc;
10941094
cipher_init_SSH2(&pvar->cc[MODE_IN], cipher,
10951095
enc->key, enc->key_len,
@@ -1157,17 +1157,17 @@ void CRYPT_get_server_key_info(PTInstVar pvar, char *dest, int len)
11571157
RSA_get0_key(pvar->crypt_state.host_key.RSA_key, &host_n, NULL, NULL);
11581158

11591159
UTIL_get_lang_msgU8("DLG_ABOUT_KEY_INFO", pvar,
1160-
"%d-bit server key, %d-bit host key");
1160+
"%d-bit server key, %d-bit host key");
11611161
_snprintf_s(dest, len, _TRUNCATE, pvar->UIMsg,
11621162
BN_num_bits(server_n),
11631163
BN_num_bits(host_n));
11641164
}
11651165
} else { // SSH2
11661166
UTIL_get_lang_msgU8("DLG_ABOUT_KEY_INFO2", pvar,
1167-
"%d-bit client key, %d-bit server key");
1167+
"%d-bit client key, %d-bit server key");
11681168
_snprintf_s(dest, len, _TRUNCATE, pvar->UIMsg,
1169-
pvar->client_key_bits,
1170-
pvar->server_key_bits);
1169+
pvar->kex->client_key_bits,
1170+
pvar->kex->server_key_bits);
11711171
}
11721172
}
11731173

ttssh2/ttxssh/hostkey.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ ssh_keyalgo choose_SSH2_keysign_algorithm(PTInstVar pvar, ssh_keytype keytype)
292292
{
293293
char buff[128];
294294
const struct ssh2_host_key_t *ptr = ssh2_host_key;
295-
char *server_proposal = pvar->server_sig_algs;
295+
char *server_proposal = pvar->kex->server_sig_algs;
296296

297297
if (keytype == KEY_RSA) {
298298
if (server_proposal == NULL) {

0 commit comments

Comments
 (0)