Skip to content

API XMLSec Core Bn

Aleksey Sanin edited this page Jun 22, 2026 · 5 revisions

Big Numbers

API Group: xmlsec_core_bn

Big-number (arbitrary-precision integer) utility functions.

Big numbers support functions.

Typedefs

xmlSecBn

typedef xmlSecBuffer xmlSecBn;

Source: include/xmlsec/bn.h

Big Number (arbitrary-precision integer).


xmlSecBnPtr

typedef xmlSecBn* xmlSecBnPtr;

Source: include/xmlsec/bn.h

Pointer to xmlSecBn.


Enumerations

xmlSecBnFormat

Source: include/xmlsec/bn.h

The big numbers formats.

Value Initializer Description
xmlSecBnBase64 ``
xmlSecBnHex ``
xmlSecBnDec ``

Functions

xmlSecBnCreate

xmlSecBnPtr xmlSecBnCreate(xmlSecSize size);

Source: include/xmlsec/bn.h

Creates a new BN object.

Creates a new BN object. Caller is responsible for destroying it by calling xmlSecBnDestroy function.

Parameters:

  • size — the initial allocated BN size.

Returns: the newly BN or a NULL if an error occurs.


xmlSecBnDestroy

void xmlSecBnDestroy(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Destroys bn object.

Destroys bn object created with xmlSecBnCreate function.

Parameters:

  • bn — the pointer to BN.

xmlSecBnInitialize

int xmlSecBnInitialize(xmlSecBnPtr bn, xmlSecSize size);

Source: include/xmlsec/bn.h

Initializes a BN object.

Initializes a BN object. Caller is responsible for destroying it by calling xmlSecBnFinalize function.

Parameters:

  • bn — the pointer to BN.
  • size — the initial allocated BN size.

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


xmlSecBnFinalize

void xmlSecBnFinalize(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Destroys bn object.

Destroys bn object created with xmlSecBnInitialize function.

Parameters:

  • bn — the pointer to BN.

xmlSecBnGetData

xmlSecByte * xmlSecBnGetData(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Gets pointer to the binary bn representation.

Parameters:

  • bn — the pointer to BN.

Returns: pointer to binary BN data or NULL if an error occurs.


xmlSecBnSetData

int xmlSecBnSetData(xmlSecBnPtr bn, const xmlSecByte *data, xmlSecSize size);

Source: include/xmlsec/bn.h

Sets the value of bn to data.

Parameters:

  • bn — the pointer to BN.
  • data — the pointer to new BN binary data.
  • size — the size of new BN data.

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


xmlSecBnGetSize

xmlSecSize xmlSecBnGetSize(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Gets the size of binary data in bn.

Parameters:

  • bn — the pointer to BN.

Returns: the size of binary data.


xmlSecBnZero

void xmlSecBnZero(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Sets the value of bn to zero.

Parameters:

  • bn — the pointer to BN.

xmlSecBnFromString

int xmlSecBnFromString(xmlSecBnPtr bn, const xmlChar *str, xmlSecSize base);

Source: include/xmlsec/bn.h

Reads bn from string str in given base.

Reads bn from string str assuming it has base base.

Parameters:

  • bn — the pointer to BN.
  • str — the string with BN.
  • base — the base for str.

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


xmlSecBnToString

xmlChar * xmlSecBnToString(xmlSecBnPtr bn, xmlSecSize base);

Source: include/xmlsec/bn.h

Writes bn to string with given base.

Writes bn to string with base base. Caller is responsible for freeing returned string with xmlFree.

Parameters:

  • bn — the pointer to BN.
  • base — the base for returned string.

Returns: the string represenataion if BN or a NULL if an error occurs.


xmlSecBnFromHexString

int xmlSecBnFromHexString(xmlSecBnPtr bn, const xmlChar *str);

Source: include/xmlsec/bn.h

Reads bn from hex string str.

Parameters:

  • bn — the pointer to BN.
  • str — the string with BN.

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


xmlSecBnToHexString

xmlChar * xmlSecBnToHexString(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Writes bn to hex string.

Writes bn to hex string. Caller is responsible for freeing returned string with xmlFree.

Parameters:

  • bn — the pointer to BN.

Returns: the string represenataion if BN or a NULL if an error occurs.


xmlSecBnFromDecString

int xmlSecBnFromDecString(xmlSecBnPtr bn, const xmlChar *str);

Source: include/xmlsec/bn.h

Reads bn from decimal string str.

Parameters:

  • bn — the pointer to BN.
  • str — the string with BN.

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


xmlSecBnToDecString

xmlChar * xmlSecBnToDecString(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Writes bn to decimal string.

Writes bn to decimal string. Caller is responsible for freeing returned string with xmlFree.

Parameters:

  • bn — the pointer to BN.

Returns: the string represenataion if BN or a NULL if an error occurs.


xmlSecBnMul

int xmlSecBnMul(xmlSecBnPtr bn, int multiplier);

Source: include/xmlsec/bn.h

Multiplies bn with multiplier.

Parameters:

  • bn — the pointer to BN.
  • multiplier — the multiplier.

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


xmlSecBnDiv

int xmlSecBnDiv(xmlSecBnPtr bn, int divider, int *mod);

Source: include/xmlsec/bn.h

Divides bn by divider.

Divides bn by divider and places modulus into mod.

Parameters:

  • bn — the pointer to BN.
  • divider — the divider
  • mod — the pointer for modulus result.

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


xmlSecBnAdd

int xmlSecBnAdd(xmlSecBnPtr bn, int delta);

Source: include/xmlsec/bn.h

Adds delta to bn.

Parameters:

  • bn — the pointer to BN.
  • delta — the delta.

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


xmlSecBnReverse

int xmlSecBnReverse(xmlSecBnPtr bn);

Source: include/xmlsec/bn.h

Reverses bytes order in bn.

Parameters:

  • bn — the pointer to BN.

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


xmlSecBnCompare

int xmlSecBnCompare(xmlSecBnPtr bn, const xmlSecByte *data, xmlSecSize dataSize);

Source: include/xmlsec/bn.h

Compares the bn with data.

Parameters:

  • bn — the pointer to BN.
  • data — the data to compare BN to.
  • dataSize — the data size.

Returns: 0 if data is equal, negative value if bn is less or positive value if bn is greater than data.


xmlSecBnCompareReverse

int xmlSecBnCompareReverse(xmlSecBnPtr bn, const xmlSecByte *data, xmlSecSize dataSize);

Source: include/xmlsec/bn.h

Compares the bn with reverse data.

Parameters:

  • bn — the pointer to BN.
  • data — the data to compare BN to.
  • dataSize — the data size.

Returns: 0 if data is equal, negative value if bn is less or positive value if bn is greater than data.


xmlSecBnGetNodeValue

int xmlSecBnGetNodeValue(xmlSecBnPtr bn, xmlNodePtr cur, xmlSecBnFormat format, int reverse);

Source: include/xmlsec/bn.h

Converts node content to BN value.

Converts the node content from format to bn.

Parameters:

  • bn — the pointer to BN.
  • cur — the pointer to an XML node.
  • format — the BN format.
  • reverse — if set then reverse read buffer after reading.

Returns: 0 on success and a negative values if an error occurs.


xmlSecBnSetNodeValue

int xmlSecBnSetNodeValue(xmlSecBnPtr bn, xmlNodePtr cur, xmlSecBnFormat format, int reverse, int addLineBreaks);

Source: include/xmlsec/bn.h

Converts the bn and sets it to node content.

Parameters:

  • bn — the pointer to BN.
  • cur — the pointer to an XML node.
  • format — the BN format.
  • reverse — the flag that indicates whether to reverse the buffer before writing.
  • addLineBreaks — the flag; it is equal to 1 then linebreaks will be added before and after new buffer content.

Returns: 0 on success and a negative values if an error occurs.


xmlSecBnBlobSetNodeValue

int xmlSecBnBlobSetNodeValue(const xmlSecByte *data, xmlSecSize dataSize, xmlNodePtr cur, xmlSecBnFormat format, int reverse, int addLineBreaks);

Source: include/xmlsec/bn.h

Converts the blob and sets it to node content.

Parameters:

  • data — the pointer to BN blob.
  • dataSize — the size of BN blob.
  • cur — the pointer to an XML node.
  • format — the BN format.
  • reverse — the flag that indicates whether to reverse the buffer before writing.
  • addLineBreaks — if the flag is equal to 1 then linebreaks will be added before and after new buffer content.

Returns: 0 on success and a negative values if an error occurs.


Clone this wiki locally