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)