| 30 |
This code is copyright (C) 1998-1999 Robert O'Callahan. |
This code is copyright (C) 1998-1999 Robert O'Callahan. |
| 31 |
See LICENSE.TXT for the license. |
See LICENSE.TXT for the license. |
| 32 |
*/ |
*/ |
|
|
|
| 33 |
#include "ttxssh.h" |
#include "ttxssh.h" |
| 34 |
#include "util.h" |
#include "util.h" |
| 35 |
#include "resource.h" |
#include "resource.h" |
| 777 |
int matched = 0; |
int matched = 0; |
| 778 |
int keybits = 0; |
int keybits = 0; |
| 779 |
ssh_keytype ktype; |
ssh_keytype ktype; |
| 780 |
|
Key *key; |
| 781 |
|
|
| 782 |
*keyptr = NULL; |
*keyptr = NULL; |
| 783 |
|
|
| 865 |
if (!SSHv1(pvar)) { // SSH2接続であれば無視する |
if (!SSHv1(pvar)) { // SSH2接続であれば無視する |
| 866 |
return index + eat_to_end_of_line(data + index); |
return index + eat_to_end_of_line(data + index); |
| 867 |
} |
} |
| 868 |
|
|
| 869 |
|
key = key_new(KEY_RSA1); |
| 870 |
|
key->bits = rsa1_key_bits; |
| 871 |
|
|
| 872 |
index += eat_digits(data + index); |
index += eat_digits(data + index); |
| 873 |
index += eat_spaces(data + index); |
index += eat_spaces(data + index); |
| 874 |
|
key->exp = parse_bignum(data + index); |
| 875 |
|
|
| 876 |
index += eat_digits(data + index); |
index += eat_digits(data + index); |
| 877 |
index += eat_spaces(data + index); |
index += eat_spaces(data + index); |
| 878 |
|
key->mod = parse_bignum(data + index); |
| 879 |
|
|
| 880 |
|
// setup |
| 881 |
|
*keyptr = key; |
| 882 |
|
|
| 883 |
} |
} |
| 884 |
else { |
else { |
| 885 |
char *cp, *p; |
char *cp, *p; |
|
Key *key; |
|
| 886 |
|
|
| 887 |
if (!SSHv2(pvar)) { // SSH1接続であれば無視する |
if (!SSHv2(pvar)) { // SSH1接続であれば無視する |
| 888 |
return index + eat_to_end_of_line(data + index); |
return index + eat_to_end_of_line(data + index); |
| 964 |
pvar->hosts_state.file_data_index, |
pvar->hosts_state.file_data_index, |
| 965 |
&key); |
&key); |
| 966 |
|
|
| 967 |
|
// 該当する鍵が見つかったら、コールバック関数を呼び出す。 |
| 968 |
if (key != NULL) { |
if (key != NULL) { |
| 969 |
key = key; |
if (callback(key, ctx) == 0) |
| 970 |
key_free(key); |
key_free(key); |
| 971 |
} |
} |
|
|
|
| 972 |
} |
} |
| 973 |
|
|
| 974 |
success = 1; |
success = 1; |