diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index df06e840..b74a2bcb 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -440,6 +440,7 @@ LIBSSH_API int ssh_pki_import_pubkey_base64(ssh_session session, LIBSSH_API int ssh_pki_import_pubkey_blob(ssh_session session, const ssh_string key_blob, ssh_key *pkey); +LIBSSH_API ssh_string ssh_pki_publickey_to_blob(const ssh_key key); 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 3dab1632..2e9107c6 100644 --- a/include/libssh/pki.h +++ b/include/libssh/pki.h @@ -68,7 +68,6 @@ void ssh_key_clean (ssh_key key); ssh_key ssh_pki_publickey_from_privatekey(const ssh_key privkey); ssh_string ssh_pki_do_sign(ssh_session session, ssh_buffer sigbuf, ssh_key privatekey); -ssh_string ssh_pki_publickey_to_string(const ssh_key key); /* temporary functions, to be removed after migration to ssh_key */ ssh_public_key ssh_pki_convert_key_to_publickey(ssh_key key); diff --git a/src/pki.c b/src/pki.c index bc5be829..b87e5e26 100644 --- a/src/pki.c +++ b/src/pki.c @@ -622,14 +622,17 @@ ssh_key ssh_pki_publickey_from_privatekey(const ssh_key privkey) { } /** - * @brief Create a ssh string from a public key. + * @brief Create a key_blob from a public key. + * + * The "key_blob" is encoded as per RFC 4253 section 6.6 "Public Key + * Algorithms" for any of the supported protocol 2 key types. * * @param[in] key A public or private key to create the public ssh_string * from. * - * @return The string or NULL on error. + * @return The key_blob or NULL on error. */ -ssh_string ssh_pki_publickey_to_string(const ssh_key key) +ssh_string ssh_pki_publickey_to_blob(const ssh_key key) { if (key == NULL) { return NULL;