aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Simons <jon@jonsimons.org>2014-02-03 22:37:25 -0800
committerAndreas Schneider <asn@cryptomilk.org>2014-02-06 11:13:20 +0100
commit13f4e31ad1c83045635417ee7c58fdf384a1bb97 (patch)
treef796c4bc4ac0bf7c635cce74f8c680cd61b9d589
parentda5fa4ef66ae97dfab36c9d67f156fcc234af30c (diff)
downloadlibssh-13f4e31ad1c83045635417ee7c58fdf384a1bb97.tar.gz
libssh-13f4e31ad1c83045635417ee7c58fdf384a1bb97.tar.xz
libssh-13f4e31ad1c83045635417ee7c58fdf384a1bb97.zip
session: add getters for session cipher names
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--include/libssh/libssh.h2
-rw-r--r--src/session.c32
2 files changed, 34 insertions, 0 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h
index b3f6ae4b..412215bf 100644
--- a/include/libssh/libssh.h
+++ b/include/libssh/libssh.h
@@ -628,6 +628,8 @@ LIBSSH_API int ssh_event_remove_session(ssh_event event, ssh_session session);
LIBSSH_API void ssh_event_free(ssh_event event);
LIBSSH_API const char* ssh_get_clientbanner(ssh_session session);
LIBSSH_API const char* ssh_get_serverbanner(ssh_session session);
+LIBSSH_API const char* ssh_get_cipher_in(ssh_session session);
+LIBSSH_API const char* ssh_get_cipher_out(ssh_session session);
#ifndef LIBSSH_LEGACY_0_4
#include "libssh/legacy.h"
diff --git a/src/session.c b/src/session.c
index 4d63a19d..01b540f6 100644
--- a/src/session.c
+++ b/src/session.c
@@ -310,6 +310,38 @@ const char* ssh_get_serverbanner(ssh_session session) {
}
/**
+ * @brief get the name of the input for the given session.
+ *
+ * @param[in] session The SSH session.
+ *
+ * @return Returns cipher name or NULL.
+ */
+const char* ssh_get_cipher_in(ssh_session session) {
+ if ((session != NULL) &&
+ (session->current_crypto != NULL) &&
+ (session->current_crypto->in_cipher != NULL)) {
+ return session->current_crypto->in_cipher->name;
+ }
+ return NULL;
+}
+
+/**
+ * @brief get the name of the output cipher for the given session.
+ *
+ * @param[in] session The SSH session.
+ *
+ * @return Returns cipher name or NULL.
+ */
+const char* ssh_get_cipher_out(ssh_session session) {
+ if ((session != NULL) &&
+ (session->current_crypto != NULL) &&
+ (session->current_crypto->out_cipher != NULL)) {
+ return session->current_crypto->out_cipher->name;
+ }
+ return NULL;
+}
+
+/**
* @brief Disconnect impolitely from a remote host by closing the socket.
*
* Suitable if you forked and want to destroy this session.