1
1
Этот коммит содержится в:
Andreas Schneider 2011-08-22 21:57:00 +02:00
родитель 93c4a8e427
Коммит 8fb8ad0151
2 изменённых файлов: 21 добавлений и 5 удалений

Просмотреть файл

@ -350,6 +350,7 @@ struct ssh_public_key_struct *agent_get_first_ident(struct ssh_session_struct *s
struct ssh_public_key_struct *agent_get_next_ident(struct ssh_session_struct *session,
char **comment) {
struct ssh_key_struct *key;
struct ssh_public_key_struct *pkey;
struct ssh_string_struct *blob = NULL;
struct ssh_string_struct *tmp = NULL;
int rc;
@ -397,7 +398,10 @@ struct ssh_public_key_struct *agent_get_next_ident(struct ssh_session_struct *se
return NULL;
}
return ssh_pki_convert_key_to_publickey(key);
pkey = ssh_pki_convert_key_to_publickey(key);
ssh_key_free(key);
return pkey;
}
ssh_string agent_sign_data(struct ssh_session_struct *session,

Просмотреть файл

@ -404,21 +404,33 @@ int ssh_pki_import_privkey_file(const char *filename,
/* temporary function to migrate seemlessly to ssh_key */
ssh_public_key ssh_pki_convert_key_to_publickey(const ssh_key key) {
ssh_public_key pub;
ssh_key tmp;
if(key == NULL) {
return NULL;
}
tmp = ssh_key_dup(key);
if (tmp == NULL) {
return NULL;
}
pub = malloc(sizeof(struct ssh_public_key_struct));
if (pub == NULL) {
ssh_key_free(tmp);
return NULL;
}
ZERO_STRUCTP(pub);
pub->dsa_pub = key->dsa;
pub->rsa_pub = key->rsa;
pub->type = key->type;
pub->type_c = key->type_c;
pub->type = tmp->type;
pub->type_c = tmp->type_c;
pub->dsa_pub = tmp->dsa;
tmp->dsa = NULL;
pub->rsa_pub = tmp->rsa;
tmp->rsa = NULL;
ssh_key_free(tmp);
return pub;
}