Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

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

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)