version 1.130, 2001/07/25 14:35:18 |
version 1.131, 2001/07/27 14:50:45 |
|
|
{ |
{ |
char *filename; |
char *filename; |
Key *public; |
Key *public; |
int i; |
int i = 0; |
|
|
for (i = 0; i < options.num_identity_files; i++) { |
|
filename = tilde_expand_filename(options.identity_files[i], |
|
original_real_uid); |
|
public = key_load_public(filename, NULL); |
|
debug("identity file %s type %d", filename, |
|
public ? public->type : -1); |
|
xfree(options.identity_files[i]); |
|
options.identity_files[i] = filename; |
|
options.identity_keys[i] = public; |
|
} |
|
#ifdef SMARTCARD |
#ifdef SMARTCARD |
if (sc_reader_num != -1 && |
if (sc_reader_num != -1 && |
options.num_identity_files + 1 < SSH_MAX_IDENTITY_FILES && |
options.num_identity_files + 1 < SSH_MAX_IDENTITY_FILES && |
(public = sc_get_key(sc_reader_num)) != NULL ) { |
(public = sc_get_key(sc_reader_num)) != NULL ) { |
Key *new; |
Key *new; |
|
|
|
if (options.num_identity_files + 2 > SSH_MAX_IDENTITY_FILES) |
|
options.num_identity_files = SSH_MAX_IDENTITY_FILES - 2; |
|
memmove(&options.identity_files[2], &options.identity_files[0], |
|
sizeof(char *) * options.num_identity_files); |
|
options.num_identity_files += 2; |
|
i = 2; |
|
|
/* XXX ssh1 vs ssh2 */ |
/* XXX ssh1 vs ssh2 */ |
new = key_new(KEY_RSA); |
new = key_new(KEY_RSA); |
new->flags = KEY_FLAG_EXT; |
new->flags = KEY_FLAG_EXT; |
BN_copy(new->rsa->n, public->rsa->n); |
BN_copy(new->rsa->n, public->rsa->n); |
BN_copy(new->rsa->e, public->rsa->e); |
BN_copy(new->rsa->e, public->rsa->e); |
RSA_set_method(new->rsa, sc_get_engine()); |
RSA_set_method(new->rsa, sc_get_engine()); |
i = options.num_identity_files++; |
options.identity_keys[0] = new; |
options.identity_keys[i] = new; |
options.identity_files[0] = xstrdup("smartcard rsa key");; |
options.identity_files[i] = xstrdup("smartcard rsa key");; |
|
|
|
new = key_new(KEY_RSA1); |
new = key_new(KEY_RSA1); |
new->flags = KEY_FLAG_EXT; |
new->flags = KEY_FLAG_EXT; |
BN_copy(new->rsa->n, public->rsa->n); |
BN_copy(new->rsa->n, public->rsa->n); |
BN_copy(new->rsa->e, public->rsa->e); |
BN_copy(new->rsa->e, public->rsa->e); |
RSA_set_method(new->rsa, sc_get_engine()); |
RSA_set_method(new->rsa, sc_get_engine()); |
i = options.num_identity_files++; |
options.identity_keys[1] = new; |
options.identity_keys[i] = new; |
options.identity_files[1] = xstrdup("smartcard rsa1 key"); |
options.identity_files[i] = xstrdup("smartcard rsa1 key");; |
|
|
|
key_free(public); |
key_free(public); |
} |
} |
#endif |
#endif |
|
for (; i < options.num_identity_files; i++) { |
|
filename = tilde_expand_filename(options.identity_files[i], |
|
original_real_uid); |
|
public = key_load_public(filename, NULL); |
|
debug("identity file %s type %d", filename, |
|
public ? public->type : -1); |
|
xfree(options.identity_files[i]); |
|
options.identity_files[i] = filename; |
|
options.identity_keys[i] = public; |
|
} |
} |
} |