Functions

The SSH string functions
[The libssh API]

String manipulations used in libssh. More...

Functions

void ssh_string_burn (struct ssh_string_struct *s)
 Destroy the data in a string so it couldn't appear in a core dump.
struct ssh_string_struct * ssh_string_copy (struct ssh_string_struct *s)
 Copy a string, return a newly allocated string.
void * ssh_string_data (struct ssh_string_struct *s)
 Get the payload of the string.
int ssh_string_fill (struct ssh_string_struct *s, const void *data, size_t len)
 Fill a string with given data.
void ssh_string_free (struct ssh_string_struct *s)
 Deallocate a SSH string object.
void ssh_string_free_char (char *s)
 Deallocate a char string object.
struct ssh_string_struct * ssh_string_from_char (const char *what)
 Create a ssh string using a C string.
size_t ssh_string_len (struct ssh_string_struct *s)
 Return the size of a SSH string.
struct ssh_string_struct * ssh_string_new (size_t size)
 Create a new SSH String object.
char * ssh_string_to_char (struct ssh_string_struct *s)
 Convert a SSH string to a C nul-terminated string.

Detailed Description

String manipulations used in libssh.


Function Documentation

void ssh_string_burn ( struct ssh_string_struct *  s  ) 

Destroy the data in a string so it couldn't appear in a core dump.

Parameters:
[in] s The string to burn.

References ssh_string_len().

Referenced by publickey_from_privatekey(), and ssh_userauth_password().

struct ssh_string_struct* ssh_string_copy ( struct ssh_string_struct *  s  )  [read]

Copy a string, return a newly allocated string.

The caller has to free the string.

Parameters:
[in] s String to copy.
Returns:
Newly allocated copy of the string, NULL on error.
void* ssh_string_data ( struct ssh_string_struct *  s  ) 

Get the payload of the string.

Parameters:
s The string to get the data from.
Returns:
Return the data of the string or NULL on error.

Referenced by publickey_from_privatekey().

int ssh_string_fill ( struct ssh_string_struct *  s,
const void *  data,
size_t  len 
)

Fill a string with given data.

The string should be big enough.

Parameters:
s An allocated string to fill with data.
data The data to fill the string with.
len Size of data.
Returns:
0 on success, < 0 on error.

Referenced by publickey_from_file(), publickey_from_privatekey(), and publickey_to_string().

void ssh_string_free ( struct ssh_string_struct *  s  ) 
void ssh_string_free_char ( char *  s  ) 

Deallocate a char string object.

Parameters:
[in] s The string to delete.
struct ssh_string_struct* ssh_string_from_char ( const char *  what  )  [read]

Create a ssh string using a C string.

Parameters:
[in] what The source 0-terminated C string.
Returns:
The newly allocated string, NULL on error with errno set.
Note:
The nul byte is not copied nor counted in the ouput string.

Referenced by publickey_to_string(), ssh_channel_open_forward(), ssh_channel_request_env(), ssh_channel_request_exec(), ssh_channel_request_pty_size(), ssh_channel_request_send_signal(), ssh_channel_request_subsystem(), ssh_channel_request_x11(), ssh_disconnect(), ssh_forward_cancel(), ssh_forward_listen(), ssh_userauth_agent_pubkey(), ssh_userauth_none(), ssh_userauth_offer_pubkey(), ssh_userauth_password(), and ssh_userauth_pubkey().

size_t ssh_string_len ( struct ssh_string_struct *  s  ) 

Return the size of a SSH string.

Parameters:
[in] s The the input SSH string.
Returns:
The size of the content of the string, 0 on error.

Referenced by publickey_from_privatekey(), ssh_get_pubkey_hash(), ssh_publickey_to_file(), ssh_string_burn(), ssh_string_to_char(), and ssh_write_knownhost().

struct ssh_string_struct* ssh_string_new ( size_t  size  )  [read]

Create a new SSH String object.

Parameters:
[in] size The size of the string.
Returns:
The newly allocated string, NULL on error.

Referenced by publickey_from_file(), publickey_from_privatekey(), and publickey_to_string().

char* ssh_string_to_char ( struct ssh_string_struct *  s  ) 

Convert a SSH string to a C nul-terminated string.

Parameters:
[in] s The SSH input string.
Returns:
An allocated string pointer, NULL on error with errno set.
Note:
If the input SSH string contains zeroes, some parts of the output string may not be readable with regular libc functions.

References ssh_string_len().

Referenced by ssh_get_issue_banner().