26#include "libssh/libssh.h"
28#define SSH_BUFFER_PACK_END ((uint32_t) 0x4f65feb3)
35int ssh_buffer_add_ssh_string(ssh_buffer buffer, ssh_string
string);
36int ssh_buffer_add_u8(ssh_buffer buffer, uint8_t data);
37int ssh_buffer_add_u16(ssh_buffer buffer, uint16_t data);
38int ssh_buffer_add_u32(ssh_buffer buffer, uint32_t data);
39int ssh_buffer_add_u64(ssh_buffer buffer, uint64_t data);
43void *ssh_buffer_allocate(
struct ssh_buffer_struct *buffer, uint32_t len);
45int _ssh_buffer_pack(
struct ssh_buffer_struct *buffer,
49#define ssh_buffer_pack(buffer, format, ...) \
50 _ssh_buffer_pack((buffer), (format), __VA_NARG__(__VA_ARGS__), __VA_ARGS__, SSH_BUFFER_PACK_END)
52int ssh_buffer_unpack_va(
struct ssh_buffer_struct *buffer,
53 const char *format,
size_t argc,
55int _ssh_buffer_unpack(
struct ssh_buffer_struct *buffer,
59#define ssh_buffer_unpack(buffer, format, ...) \
60 _ssh_buffer_unpack((buffer), (format), __VA_NARG__(__VA_ARGS__), __VA_ARGS__, SSH_BUFFER_PACK_END)
62int ssh_buffer_prepend_data(ssh_buffer buffer,
const void *data, uint32_t len);
63int ssh_buffer_add_buffer(ssh_buffer buffer, ssh_buffer source);
66uint32_t ssh_buffer_get_u8(ssh_buffer buffer, uint8_t *data);
67uint32_t ssh_buffer_get_u32(ssh_buffer buffer, uint32_t *data);
68uint32_t ssh_buffer_get_u64(ssh_buffer buffer, uint64_t *data);
71ssh_string ssh_buffer_get_ssh_string(ssh_buffer buffer);
74uint32_t ssh_buffer_pass_bytes_end(ssh_buffer buffer, uint32_t len);
75uint32_t ssh_buffer_pass_bytes(ssh_buffer buffer, uint32_t len);
int ssh_buffer_validate_length(struct ssh_buffer_struct *buffer, size_t len)
Validates that the given length can be obtained from the buffer.
Definition buffer.c:749
int ssh_buffer_allocate_size(struct ssh_buffer_struct *buffer, uint32_t len)
Ensure the buffer has at least a certain preallocated size.
Definition buffer.c:341
void ssh_buffer_set_secure(ssh_buffer buffer)
Sets the buffer as secure.
Definition buffer.c:177