Loading...
Searching...
No Matches
The SSH string functions
The libssh API

String manipulations used in libssh. More...

## Functions

struct ssh_string_struct * | ssh_string_new (size_t size)
| Create a new SSH String object.
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.
struct ssh_string_struct * | ssh_string_from_char (const char *what)
| Create a ssh string using a C string.
struct ssh_string_struct * | ssh_string_from_data (const void *data, size_t len)
| Create a ssh string from an arbitrary data buffer.
size_t | ssh_string_len (struct ssh_string_struct *s)
| Return the size of a SSH string.
const char * | ssh_string_get_char (struct ssh_string_struct *s)
| Get the string as a C null-terminated string.
char * | ssh_string_to_char (struct ssh_string_struct *s)
| Convert a SSH string to a C null-terminated string.
void | ssh_string_free_char (char *s)
| Deallocate a char string object.
struct ssh_string_struct * | ssh_string_copy (struct ssh_string_struct *s)
| Copy a string, return a newly allocated string. The caller has to free the string.
int | ssh_string_cmp (struct ssh_string_struct *s1, struct ssh_string_struct *s2)
| Compare two SSH strings.
void | ssh_string_burn (struct ssh_string_struct *s)
| Destroy the data in a string so it couldn't appear in a core dump.
void * | ssh_string_data (struct ssh_string_struct *s)
| Get the payload of the string.
void | ssh_string_free (struct ssh_string_struct *s)
| Deallocate a SSH string object.

## Detailed Description

String manipulations used in libssh.

## Function Documentation

## ssh_string_burn()

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.

## ssh_string_cmp()

int ssh_string_cmp | ( | struct ssh_string_struct * | s1,
|  | struct ssh_string_struct * | s2 )

Compare two SSH strings.

Parameters

  [in] | s1 | The first SSH string to compare.
  [in] | s2 | The second SSH string to compare.

Returns
  0 if the strings are equal, < 0 if s1 is less than s2, > 0 if s1 is greater than s2.

## ssh_string_copy()

struct ssh_string_struct * ssh_string_copy | ( | struct ssh_string_struct * | s | ) |

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.

## ssh_string_data()

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.

## ssh_string_fill()

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.

## ssh_string_free()

void ssh_string_free | ( | struct ssh_string_struct * | s | ) |

Deallocate a SSH string object.

Parameters

  [in] | s | The SSH string to delete.

## ssh_string_free_char()

void ssh_string_free_char | ( | char * | s | ) |

Deallocate a char string object.

Parameters

  [in] | s | The string to delete.

## ssh_string_from_char()

struct ssh_string_struct * ssh_string_from_char | ( | const char * | what | ) |

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 null byte is not copied nor counted in the output string.

## ssh_string_from_data()

struct ssh_string_struct * ssh_string_from_data | ( | const void * | data,
|  | size_t | len )

Create a ssh string from an arbitrary data buffer.

Allocates a new SSH string of length len and copies the provided data into it. If len is 0, returns an empty SSH string. When len > 0, data must not be NULL.

Parameters

  [in] | data | Pointer to the data buffer to copy from. May be NULL only when len == 0.
  [in] | len | Length of the data buffer to copy.

Returns
  The newly allocated string, NULL on error.

## ssh_string_get_char()

const char * ssh_string_get_char | ( | struct ssh_string_struct * | s | ) |

Get the string as a C null-terminated string.

This is only available as long as the SSH string exists.

Parameters

  [in] | s | The SSH string to get the C string from.

Returns
  The char pointer, NULL on error.

## ssh_string_len()

size_t ssh_string_len | ( | struct ssh_string_struct * | s | ) |

Return the size of a SSH string.

Parameters

  [in] | s | The input SSH string.

Returns
  The size of the content of the string, 0 on error.

## ssh_string_new()

struct ssh_string_struct * ssh_string_new | ( | size_t | size | ) |

Create a new SSH String object.

Parameters

  [in] | size | The size of the string.

Returns
  The newly allocated string, NULL on error.

## ssh_string_to_char()

char * ssh_string_to_char | ( | struct ssh_string_struct * | s | ) |

Convert a SSH string to a C null-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.