80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
|  | .\" Copyright (C) The libssh2 project and its contributors. | ||
|  | .\" SPDX-License-Identifier: BSD-3-Clause | ||
|  | .TH libssh2_session_supported_algs 3 "23 Oct 2011" "libssh2" "libssh2" | ||
|  | .SH NAME | ||
|  | libssh2_session_supported_algs - get list of supported algorithms | ||
|  | .SH SYNOPSIS | ||
|  | .nf | ||
|  | #include <libssh2.h> | ||
|  | 
 | ||
|  | int | ||
|  | libssh2_session_supported_algs(LIBSSH2_SESSION* session, | ||
|  |                                int method_type, | ||
|  |                                const char*** algs); | ||
|  | .fi | ||
|  | .SH DESCRIPTION | ||
|  | \fIsession\fP - An instance of initialized LIBSSH2_SESSION (the function will | ||
|  | use its pointer to the memory allocation function). \fImethod_type\fP - | ||
|  | Method type. See \fIlibssh2_session_method_pref(3)\fP. \fIalgs\fP - Address | ||
|  | of a pointer that will point to an array of returned algorithms | ||
|  | 
 | ||
|  | Get a list of supported algorithms for the given \fImethod_type\fP. The | ||
|  | method_type parameter is equivalent to method_type in | ||
|  | \fIlibssh2_session_method_pref(3)\fP. If successful, the function will | ||
|  | allocate the appropriate amount of memory. When not needed anymore, it must be | ||
|  | deallocated by calling \fIlibssh2_free(3)\fP. When this function is | ||
|  | unsuccessful, this must not be done. | ||
|  | 
 | ||
|  | In order to get a list of all supported compression algorithms, | ||
|  | libssh2_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 supported | ||
|  | algorithms (the same names as defined in RFC 4253). The array is not NULL | ||
|  | terminated. | ||
|  | .SH EXAMPLE | ||
|  | .nf | ||
|  | #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 */ | ||
|  | } | ||
|  | .fi | ||
|  | .SH 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. | ||
|  | .SH ERRORS | ||
|  | \fILIBSSH2_ERROR_BAD_USE\fP - Invalid address of algs. | ||
|  | 
 | ||
|  | \fILIBSSH2_ERROR_METHOD_NOT_SUPPORTED\fP - Unknown method type. | ||
|  | 
 | ||
|  | \fILIBSSH2_ERROR_INVAL\fP - Internal error (normally should not occur). | ||
|  | 
 | ||
|  | \fILIBSSH2_ERROR_ALLOC\fP - Allocation of memory failed. | ||
|  | .SH AVAILABILITY | ||
|  | Added in 1.4.0 | ||
|  | .SH SEE ALSO | ||
|  | .BR libssh2_session_methods(3), | ||
|  | .BR libssh2_session_method_pref(3) | ||
|  | .BR libssh2_free(3) |