From 0d47952611198ef6b1163f366dc03922d20b1475 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:42:04 +0200 Subject: Adding upstream version 7.94+git20230807.3be01efb1+dfsg. Signed-off-by: Daniel Baumann --- nselib/libssh2.luadoc | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 nselib/libssh2.luadoc (limited to 'nselib/libssh2.luadoc') diff --git a/nselib/libssh2.luadoc b/nselib/libssh2.luadoc new file mode 100644 index 0000000..1801ead --- /dev/null +++ b/nselib/libssh2.luadoc @@ -0,0 +1,120 @@ +--- +-- Provides a binding for the libssh2 library. +-- +-- SSH2 is a complex protocol and libssh2 simplifies many tasks involved in +-- interacting with ssh servers. This module provides bindings for some of the +-- most commonly used libssh2 functions. You may wish to use the functionality +-- in libssh2-utility instead, which wraps many of the functions here in an easier +-- to use class, SSHConnection. +-- +-- For performance reasons, the modules reuses the NSE's existing nsock socket +-- pool. +-- +-- @author Devin Bjelland +-- @author Sergey Khegay +-- @copyright Same as Nmap--See https://nmap.org/book/man-legal.html + +module "libssh2" + +--- Creates libssh2 session and performs handshake +-- @param host Host to connect to. +-- @param port Port to connect to. +-- @return session or nil on failure +function session_open(host, port) + +--- Returns SHA1 or MD5 hostkey hash of session +-- @param session Connected libssh2 session. +-- @param hashtype (optional) "sha1" or "md5" (sha1 is default) +-- @return hostkey hash of server +function hostkey_hash(session, hashtype) + +--- Sets timeout of libssh2 session +-- @param session Connected libssh2 session. +-- @param timeout Timeout for session in milliseconds. +function set_timeout(session, timeout) + +--- Returns list of authentication methods supported by the server +-- @param session Connected libssh2 session. +-- @return List of supported authentication methods/ +function userauth_list(session) + +--- Attempts to authenicate libssh2 session using provided credentials +-- @param username Username to authenicate as. +-- @param password Password to authenicate with. +-- @return true/false, depending on success +function userauth_password(session, username, password) + +--- Attempts to authenticate libssh2 session using provided publickey +-- @param session Connected libssh2 session +-- @param username Username to authenicate as +-- @param privatekeyfile File containing privatekey +-- @param passphrase Passphrase for privatekey +-- @param publickeyfile File containing publickey. Not necessary if libssh2 is +-- compiled against OpenSSL +-- @return true/false, depending on success +function userauth_publickey(session, username, privatekeyfile, passphrase, publickeyfile) + +--- Read publickey from id_*.pub type key file +-- @param publickeyfile File containing publickey +-- @return string containing raw key data +function read_publickey(publickeyfile) + +--- Checks to see if ssh server accepts public key for authentication as given user. +-- This doesn't require the private key as it doesn't finish authenticating. +-- @param session Connected libssh2 session +-- @param username Username to authenicate as +-- @param publickeydata String containing raw publickey blob +-- @return true/false, depending on whether user can authenticate with given key +function publickey_canauth(session, username, publickeydata) + +--- Opens channel on authenticated ssh2 session and sets it to pseudo +-- terminal mode. +-- @param session Authenticated libssh2 session +-- @return libssh2 channel +function open_channel(session) + +--- Reads data from stdin on libssh2 channel. +-- @param session Authenticated libssh2 session +-- @param channel Open libssh2 channel +-- @return string containing data read from channel +function channel_read(session, channel) + +--- Reads data from stderr on libssh2 channel. +-- @param session Authenticated libssh2 session +-- @param channel Open libssh2 channel +-- @return string containing data read from channel +function channel_read_stderr(session, channel) + +--- Writes data to libssh2 channel. Not garenteed to write entire buffer. +-- @param session Authenticated libssh2 session +-- @param channel Open libssh2 channel +-- @param buffer String containing data to be written +-- @return Number of bytes written to channel +function channel_write(session, channel, buffer) + +--- Executes command on libssh2 channel and returns output +-- @param session Authenticated libssh2 session +-- @param channel Open libssh2 channel +-- @param cmd String containing command to execute +-- @return String containing output from command +function channel_exec(session, channel, cmd) + +--- Sends EOF on libssh2 channel. Note that the server may continue to send data +-- until it sends its own EOF (which can be checked with channel_eof() +-- @param session Authenticated libssh2 session +-- @param channel Open libssh2 channel +function channel_send_eof(session, channel) + +--- Checks if server has sent EOF on libssh2 channel +-- @param channel Open libssh2 channel +-- @return true/false depending on whether server has send EOF +function channel_eof(channel) + +--- Gracefully closes open libssh2 channel +-- @param session Authenticated libssh2 session +-- @param channel Open libssh2 channel +function channel_close(session, channel) + +--- Gracefully closes connected libssh2 session +-- @param session Connected libssh2 session +function session_close(session) -- cgit v1.2.3