libssh2_session_supported_algs - get list of supported algorithms
#include <libssh2.h> int libssh2_session_supported_algs(LIBSSH2_SESSION* session, int method_type, const char*** algs);
libssh2 manual libssh2_session_supported_algs(3ssh2)
NAME
libssh2_session_supported_algs - get list of supported algorithms
SYNOPSIS
#include <libssh2.h>
int libssh2_session_supported_algs(LIBSSH2_SESSION* session,
int method_type,
const char*** algs);
DESCRIPTION
session - An instance of initialized LIBSSH2_SESSION (the function will
use its pointer to the memory allocation function). method_type -
Method type. See libssh2_session_method_pref(3). algs - Address of a
pointer that will point to an array of returned algorithms
Get a list of supported algorithms for the given method_type. The
method_type parameter is equivalent to method_type in libssh2_ses-
sion_method_pref(3). If successful, the function will allocate the
appropriate amount of memory. When not needed anymore, it must be deal-
located by calling libssh2_free(3). When this function is unsuccessful,
this must not be done.
In order to get a list of all supported compression algorithms, lib-
ssh2_session_flag(session, LIBSSH2_FLAG_COMPRESS, 1) must be called
before calling this function, otherwise only "none" will be returned.
If successful, the function will allocate and fill the array with sup-
ported algorithms (the same names as defined in RFC 4253). The array
is not NULL terminated.
EXAMPLE
#include "libssh2.h"
const char **algorithms;
int rc, i;
LIBSSH2_SESSION *session;
/* initialize session */
session = libssh2_session_init();
rc = libssh2_session_supported_algs(session,
LIBSSH2_METHOD_CRYPT_CS,
&algorithms);
if (rc>0) {
/* the call succeeded, do sth. with the list of algorithms
(e.g. list them)... */
printf("Supported symmetric algorithms:\n");
for ( i=0; i<rc; i++ )
printf("\t%s\n", algorithms[i]);
/* ... and free the allocated memory when not needed anymore */
libssh2_free(session, algorithms);
}
else {
/* call failed, error handling */
}
RETURN VALUE
On success, a number of returned algorithms (i.e a positive number will
be returned). In case of a failure, an error code (a negative number,
see below) is returned. 0 should never be returned.
ERRORS
LIBSSH2_ERROR_BAD_USE - Invalid address of algs.
LIBSSH2_ERROR_METHOD_NOT_SUPPORTED - Unknown method type.
LIBSSH2_ERROR_INVAL - Internal error (normally should not occur).
LIBSSH2_ERROR_ALLOC - Allocation of memory failed.
AVAILABILITY
Added in 1.4.0
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | library/libssh2 |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
libssh2_session_methods(3), libssh2_session_method_pref(3) lib-
ssh2_free(3)
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://www.libssh2.org/download/lib-
ssh2-1.10.0.tar.gz.
Further information about this software can be found on the open source
community website at https://www.libssh2.org/.
libssh2 1.4.0 23 Oct 2011
libssh2_session_supported_algs(3ssh2)