Skip to content

API XMLSec Core Buffer

Aleksey Sanin edited this page Apr 22, 2026 · 4 revisions

Dynamic Buffer

API Group: xmlsec_core_buffer

Dynamic binary buffer implementation.

Binary memory buffer functions.

Enumerations

xmlSecAllocMode

Source: include/xmlsec/buffer.h

The memory allocation mode.

The memory allocation mode (used by xmlSecBuffer and xmlSecList).

Value Initializer Description
xmlSecAllocModeExact = 0
xmlSecAllocModeDouble ``

Functions

xmlSecBufferSetDefaultAllocMode

void xmlSecBufferSetDefaultAllocMode(xmlSecAllocMode defAllocMode, xmlSecSize defInitialSize);

Source: include/xmlsec/buffer.h

Sets the default buffer allocation mode.

Sets new global default allocation mode and minimal intial size.

Parameters:

  • defAllocMode — the new default buffer allocation mode.
  • defInitialSize — the new default buffer minimal intial size.

xmlSecBufferCreate

xmlSecBufferPtr xmlSecBufferCreate(xmlSecSize size);

Source: include/xmlsec/buffer.h

Allocates and initializes a new memory buffer.

Allocates and initializes new memory buffer with given size. Caller is responsible for calling xmlSecBufferDestroy function to free the buffer.

Parameters:

  • size — the intial size.

Returns: pointer to newly allocated buffer or NULL if an error occurs.


xmlSecBufferDestroy

void xmlSecBufferDestroy(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Destroys a buffer object.

Destroys buffer object created with xmlSecBufferCreate function.

Parameters:

  • buf — the pointer to buffer object.

xmlSecBufferInitialize

int xmlSecBufferInitialize(xmlSecBufferPtr buf, xmlSecSize size);

Source: include/xmlsec/buffer.h

Initializes a buffer object.

Initializes buffer object buf. Caller is responsible for calling xmlSecBufferFinalize function to free allocated resources.

Parameters:

  • buf — the pointer to buffer object.
  • size — the initial buffer size.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferFinalize

void xmlSecBufferFinalize(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Frees resources for an initialized buffer.

Frees allocated resource for a buffer initialized with xmlSecBufferInitialize function.

Parameters:

  • buf — the pointer to buffer object.

xmlSecBufferIsEmpty

int xmlSecBufferIsEmpty(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Checks if the buffer is empty.

Checks if the buf is empty (buf is null or buf's data is null or buf's size is zero).

Parameters:

  • buf — the pointer to buffer object.

Returns: 1 if buffer is empty or 0 otherwise.


xmlSecBufferGetData

xmlSecByte * xmlSecBufferGetData(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Gets pointer to buffer's data.

Parameters:

  • buf — the pointer to buffer object.

Returns: pointer to buffer's data.


xmlSecBufferSetData

int xmlSecBufferSetData(xmlSecBufferPtr buf, const xmlSecByte *data, xmlSecSize size);

Source: include/xmlsec/buffer.h

Sets the value of the buffer to data.

Parameters:

  • buf — the pointer to buffer object.
  • data — the data.
  • size — the data size.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferGetSize

xmlSecSize xmlSecBufferGetSize(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Gets the current buffer data size.

Parameters:

  • buf — the pointer to buffer object.

Returns: the current data size.


xmlSecBufferSetSize

int xmlSecBufferSetSize(xmlSecBufferPtr buf, xmlSecSize size);

Source: include/xmlsec/buffer.h

Sets new buffer data size.

Sets new buffer data size. If necessary, buffer grows to have at least size bytes.

Parameters:

  • buf — the pointer to buffer object.
  • size — the new data size.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferGetMaxSize

xmlSecSize xmlSecBufferGetMaxSize(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Gets the maximum (allocated) buffer size.

Parameters:

  • buf — the pointer to buffer object.

Returns: the maximum (allocated) buffer size.


xmlSecBufferSetMaxSize

int xmlSecBufferSetMaxSize(xmlSecBufferPtr buf, xmlSecSize size);

Source: include/xmlsec/buffer.h

Sets new buffer maximum size.

Sets new buffer maximum size. If necessary, buffer grows to have at least size bytes.

Parameters:

  • buf — the pointer to buffer object.
  • size — the new maximum size.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferEmpty

void xmlSecBufferEmpty(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Empties the buffer.

Parameters:

  • buf — the pointer to buffer object.

xmlSecBufferSwap

void xmlSecBufferSwap(xmlSecBufferPtr buf1, xmlSecBufferPtr buf2);

Source: include/xmlsec/buffer.h

Swaps the content of the two buffers.

Parameters:

  • buf1 — the pointer to the first buffer object.
  • buf2 — the pointer to the second buffer object.

xmlSecBufferAppend

int xmlSecBufferAppend(xmlSecBufferPtr buf, const xmlSecByte *data, xmlSecSize size);

Source: include/xmlsec/buffer.h

Appends data to the end of the buffer.

Appends the data after the current data stored in the buffer.

Parameters:

  • buf — the pointer to buffer object.
  • data — the data.
  • size — the data size.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferPrepend

int xmlSecBufferPrepend(xmlSecBufferPtr buf, const xmlSecByte *data, xmlSecSize size);

Source: include/xmlsec/buffer.h

Prepends data to the beginning of the buffer.

Prepends the data before the current data stored in the buffer.

Parameters:

  • buf — the pointer to buffer object.
  • data — the data.
  • size — the data size.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferRemoveHead

int xmlSecBufferRemoveHead(xmlSecBufferPtr buf, xmlSecSize size);

Source: include/xmlsec/buffer.h

Removes bytes from the beginning of the buffer.

Removes size bytes from the beginning of the current buffer.

Parameters:

  • buf — the pointer to buffer object.
  • size — the number of bytes to be removed.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferRemoveTail

int xmlSecBufferRemoveTail(xmlSecBufferPtr buf, xmlSecSize size);

Source: include/xmlsec/buffer.h

Removes bytes from the end of the buffer.

Removes size bytes from the end of current buffer.

Parameters:

  • buf — the pointer to buffer object.
  • size — the number of bytes to be removed.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferReverse

int xmlSecBufferReverse(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Reverses order of bytes in the buffer buf.

Parameters:

  • buf — the pointer to buffer object.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferReadFile

int xmlSecBufferReadFile(xmlSecBufferPtr buf, const char *filename);

Source: include/xmlsec/buffer.h

Reads the content of a file into the buffer.

Reads the content of the file filename in the buffer.

Parameters:

  • buf — the pointer to buffer object.
  • filename — the filename.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferBase64NodeContentRead

int xmlSecBufferBase64NodeContentRead(xmlSecBufferPtr buf, xmlNodePtr node);

Source: include/xmlsec/buffer.h

Reads and base64-decodes a node's content into the buffer.

Reads the content of the node, base64 decodes it and stores the result in the buffer.

Parameters:

  • buf — the pointer to buffer object.
  • node — the pointer to node.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferBase64NodeContentWrite

int xmlSecBufferBase64NodeContentWrite(xmlSecBufferPtr buf, xmlNodePtr node, int columns);

Source: include/xmlsec/buffer.h

Sets node content to the base64-encoded buffer data.

Sets the content of the node to the base64 encoded buffer data.

Parameters:

  • buf — the pointer to buffer object.
  • node — the pointer to a node.
  • columns — the max line size for base64 encoded data.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferHexRead

int xmlSecBufferHexRead(xmlSecBufferPtr buf, const xmlChar *hexStr);

Source: include/xmlsec/buffer.h

Reads hex-encoded string into the buffer.

Reads content of hex encoded hexStr into buf.

Parameters:

  • buf — the pointer to buffer object.
  • hexStr — the hex string.

Returns: 0 on success or a negative value if an error occurs.


xmlSecBufferDebugHexDump

void xmlSecBufferDebugHexDump(xmlSecBufferPtr buf, FILE *output);

Source: include/xmlsec/buffer.h

Writes the content of the buffer as hex string to the output.

Writes the content of the buf as hex string to the output (no more than 32 bytes per line).

Parameters:

  • buf — the pointer to buffer object.
  • output — the pointer to output FILE.

xmlSecBufferCreateOutputBuffer

xmlOutputBufferPtr xmlSecBufferCreateOutputBuffer(xmlSecBufferPtr buf);

Source: include/xmlsec/buffer.h

Creates a LibXML output buffer to store data in buf.

Creates new LibXML output buffer to store data in the buf. Caller is responsible for destroying buf when processing is done.

Parameters:

  • buf — the pointer to buffer.

Returns: pointer to newly allocated output buffer or NULL if an error occurs.


Clone this wiki locally