diff options
-rw-r--r-- | include/libssh/libssh.h | 3 | ||||
-rw-r--r-- | include/libssh/pki.h | 3 | ||||
-rw-r--r-- | src/agent.c | 2 | ||||
-rw-r--r-- | src/pki.c | 15 |
4 files changed, 12 insertions, 11 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index d0c02bf3..df06e840 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -437,6 +437,9 @@ LIBSSH_API int ssh_pki_import_pubkey_base64(ssh_session session, const char *b64_key, enum ssh_keytypes_e type, ssh_key *pkey); +LIBSSH_API int ssh_pki_import_pubkey_blob(ssh_session session, + const ssh_string key_blob, + ssh_key *pkey); LIBSSH_API int ssh_userauth_pki_pubkey(ssh_session session, const char *username, ssh_string publickey, ssh_key privatekey); diff --git a/include/libssh/pki.h b/include/libssh/pki.h index 2115b8b4..3dab1632 100644 --- a/include/libssh/pki.h +++ b/include/libssh/pki.h @@ -78,9 +78,6 @@ ssh_private_key ssh_pki_convert_key_to_privatekey(ssh_key key); ssh_key pki_private_key_from_base64(ssh_session session, const char *b64_key, const char *passphrase); -int ssh_pki_import_pubkey_string(ssh_session session, - const ssh_string pubkey, - ssh_key *pkey); struct signature_struct *pki_do_sign(const ssh_key privatekey, const unsigned char *hash); diff --git a/src/agent.c b/src/agent.c index 38ceee9a..8eda8f19 100644 --- a/src/agent.c +++ b/src/agent.c @@ -387,7 +387,7 @@ struct ssh_public_key_struct *agent_get_next_ident(struct ssh_session_struct *se ssh_string_free(tmp); /* get key from blob */ - rc = ssh_pki_import_pubkey_string(session, blob, &key); + rc = ssh_pki_import_pubkey_blob(session, blob, &key); ssh_string_free(blob); if (rc == SSH_ERROR) { return NULL; @@ -542,7 +542,8 @@ int ssh_pki_import_pubkey_base64(ssh_session session, * * @param[in] session The ssh session to use. * - * @param[in] keystring The key as a string to import. + * @param[in] key_blob The key blob to import as specified in RFC 4253 section + * 6.6 "Public Key Algorithms". * * @param[out] pkey A pointer where the key can be stored. You need * to free the memory. @@ -551,15 +552,15 @@ int ssh_pki_import_pubkey_base64(ssh_session session, * * @see ssh_key_free() */ -int ssh_pki_import_pubkey_string(ssh_session session, - const ssh_string pubkey, - ssh_key *pkey) { +int ssh_pki_import_pubkey_blob(ssh_session session, + const ssh_string key_blob, + ssh_key *pkey) { ssh_buffer buffer; ssh_string type_s = NULL; char *type_c = NULL; int rc; - if (pubkey == NULL || pkey == NULL) { + if (key_blob == NULL || pkey == NULL) { return SSH_ERROR; } @@ -569,8 +570,8 @@ int ssh_pki_import_pubkey_string(ssh_session session, return SSH_ERROR; } - rc = buffer_add_data(buffer, ssh_string_data(pubkey), - ssh_string_len(pubkey)); + rc = buffer_add_data(buffer, ssh_string_data(key_blob), + ssh_string_len(key_blob)); if (rc < 0) { ssh_set_error_oom(session); goto fail; |