| 113 |
return get_ssh2_hostkey_type_name(key->type); |
return get_ssh2_hostkey_type_name(key->type); |
| 114 |
} |
} |
| 115 |
|
|
| 116 |
char* get_ssh2_keyalgo_name(ssh_keyalgo algo) |
char* get_ssh2_hostkey_algorithm_name(ssh_keyalgo algo) |
| 117 |
{ |
{ |
| 118 |
const struct ssh2_host_key_t *ptr = ssh2_host_key; |
const struct ssh2_host_key_t *ptr = ssh2_host_key; |
| 119 |
|
|
| 128 |
return "ssh-unknown"; |
return "ssh-unknown"; |
| 129 |
} |
} |
| 130 |
|
|
| 131 |
ssh_keyalgo get_ssh2_keyalgo_from_name(const char *name) |
ssh_keyalgo get_ssh2_hostkey_algorithm_from_name(const char *name) |
| 132 |
{ |
{ |
| 133 |
const struct ssh2_host_key_t *ptr = ssh2_host_key; |
const struct ssh2_host_key_t *ptr = ssh2_host_key; |
| 134 |
|
|
| 158 |
return NID_sha1; |
return NID_sha1; |
| 159 |
} |
} |
| 160 |
|
|
| 161 |
ssh_keytype get_ssh2_keytype_from_keyalgo(ssh_keyalgo algo) |
ssh_keytype get_ssh2_hostkey_type_from_algorithm(ssh_keyalgo algo) |
| 162 |
{ |
{ |
| 163 |
const struct ssh2_host_key_t *ptr = ssh2_host_key; |
const struct ssh2_host_key_t *ptr = ssh2_host_key; |
| 164 |
|
|
| 173 |
return KEY_UNSPEC; |
return KEY_UNSPEC; |
| 174 |
} |
} |
| 175 |
|
|
| 176 |
const char* get_ssh2_keytype_name_from_keyalgo(ssh_keyalgo algo) |
const char* get_ssh2_hostkey_type_name_from_algorithm(ssh_keyalgo algo) |
| 177 |
{ |
{ |
| 178 |
return get_ssh2_hostkey_type_name(get_ssh2_keytype_from_keyalgo(algo)); |
return get_ssh2_hostkey_type_name(get_ssh2_hostkey_type_from_algorithm(algo)); |
| 179 |
} |
} |
| 180 |
|
|
| 181 |
char* get_digest_algorithm_name(digest_algorithm id) |
char* get_digest_algorithm_name(digest_algorithm id) |
| 218 |
|
|
| 219 |
choose_SSH2_proposal(server_proposal, my_proposal, str_keytype, sizeof(str_keytype)); |
choose_SSH2_proposal(server_proposal, my_proposal, str_keytype, sizeof(str_keytype)); |
| 220 |
|
|
| 221 |
return get_ssh2_keyalgo_from_name(str_keytype); |
return get_ssh2_hostkey_algorithm_from_name(str_keytype); |
| 222 |
} |
} |
| 223 |
|
|
| 224 |
// Host Keyアルゴリズム優先順位に応じて、myproposal[]を書き換える。 |
// Host Keyアルゴリズム優先順位に応じて、myproposal[]を書き換える。 |
| 239 |
index = pvar->settings.HostKeyOrder[i] - '0'; |
index = pvar->settings.HostKeyOrder[i] - '0'; |
| 240 |
if (index == KEY_NONE) // disabled line |
if (index == KEY_NONE) // disabled line |
| 241 |
break; |
break; |
| 242 |
strncat_s(buf, sizeof(buf), get_ssh2_keyalgo_name(index), _TRUNCATE); |
strncat_s(buf, sizeof(buf), get_ssh2_hostkey_algorithm_name(index), _TRUNCATE); |
| 243 |
strncat_s(buf, sizeof(buf), ",", _TRUNCATE); |
strncat_s(buf, sizeof(buf), ",", _TRUNCATE); |
| 244 |
} |
} |
| 245 |
len = strlen(buf); |
len = strlen(buf); |
| 267 |
} |
} |
| 268 |
else { |
else { |
| 269 |
logprintf(LOG_LEVEL_VERBOSE, "%s: %s is selected.", __FUNCTION__, buff); |
logprintf(LOG_LEVEL_VERBOSE, "%s: %s is selected.", __FUNCTION__, buff); |
| 270 |
return get_ssh2_keyalgo_from_name(buff); |
return get_ssh2_hostkey_algorithm_from_name(buff); |
| 271 |
} |
} |
| 272 |
} |
} |
| 273 |
} |
} |