XML Security Library

LibXML2
LibXSLT
OpenSSL

bn

Name

bn -- Big numbers support functions.

Synopsis

enum                xmlSecBnFormat;
xmlSecBnPtr         xmlSecBnCreate                      (xmlSecSize size);
void                xmlSecBnDestroy                     (xmlSecBnPtr bn);
int                 xmlSecBnInitialize                  (xmlSecBnPtr bn,
                                                         xmlSecSize size);
void                xmlSecBnFinalize                    (xmlSecBnPtr bn);
xmlSecByte*         xmlSecBnGetData                     (xmlSecBnPtr bn);
int                 xmlSecBnSetData                     (xmlSecBnPtr bn,
                                                         const xmlSecByte *data,
                                                         xmlSecSize size);
xmlSecSize          xmlSecBnGetSize                     (xmlSecBnPtr bn);
void                xmlSecBnZero                        (xmlSecBnPtr bn);
int                 xmlSecBnFromString                  (xmlSecBnPtr bn,
                                                         const xmlChar *str,
                                                         xmlSecSize base);
xmlChar*            xmlSecBnToString                    (xmlSecBnPtr bn,
                                                         xmlSecSize base);
int                 xmlSecBnFromHexString               (xmlSecBnPtr bn,
                                                         const xmlChar *str);
xmlChar*            xmlSecBnToHexString                 (xmlSecBnPtr bn);
int                 xmlSecBnFromDecString               (xmlSecBnPtr bn,
                                                         const xmlChar *str);
xmlChar*            xmlSecBnToDecString                 (xmlSecBnPtr bn);
int                 xmlSecBnMul                         (xmlSecBnPtr bn,
                                                         int multiplier);
int                 xmlSecBnDiv                         (xmlSecBnPtr bn,
                                                         int divider,
                                                         int *mod);
int                 xmlSecBnAdd                         (xmlSecBnPtr bn,
                                                         int delta);
int                 xmlSecBnReverse                     (xmlSecBnPtr bn);
int                 xmlSecBnCompare                     (xmlSecBnPtr bn,
                                                         const xmlSecByte *data,
                                                         xmlSecSize dataSize);
int                 xmlSecBnCompareReverse              (xmlSecBnPtr bn,
                                                         const xmlSecByte *data,
                                                         xmlSecSize dataSize);
int                 xmlSecBnGetNodeValue                (xmlSecBnPtr bn,
                                                         xmlNodePtr cur,
                                                         xmlSecBnFormat format,
                                                         int reverse);
int                 xmlSecBnSetNodeValue                (xmlSecBnPtr bn,
                                                         xmlNodePtr cur,
                                                         xmlSecBnFormat format,
                                                         int reverse,
                                                         int addLineBreaks);
int                 xmlSecBnBlobSetNodeValue            (const xmlSecByte *data,
                                                         xmlSecSize dataSize,
                                                         xmlNodePtr cur,
                                                         xmlSecBnFormat format,
                                                         int reverse,
                                                         int addLineBreaks);

Description

Big numbers support functions.

Details

enum xmlSecBnFormat

typedef enum {
    xmlSecBnBase64,
    xmlSecBnHex,
    xmlSecBnDec
} xmlSecBnFormat;

The big numbers formats.

xmlSecBnBase64

the base64 decoded binary blob.

xmlSecBnHex

the hex number.

xmlSecBnDec

the decimal number.


xmlSecBnCreate ()

xmlSecBnPtr         xmlSecBnCreate                      (xmlSecSize size);

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

size :

the initial allocated BN size.

Returns :

the newly BN or a NULL if an error occurs.


xmlSecBnDestroy ()

void                xmlSecBnDestroy                     (xmlSecBnPtr bn);

Destroys bn object created with xmlSecBnCreate function.

bn :

the pointer to BN.


xmlSecBnInitialize ()

int                 xmlSecBnInitialize                  (xmlSecBnPtr bn,
                                                         xmlSecSize size);

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

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);

Destroys bn object created with xmlSecBnInitialize function.

bn :

the pointer to BN.


xmlSecBnGetData ()

xmlSecByte*         xmlSecBnGetData                     (xmlSecBnPtr bn);

Gets pointer to the binary bn representation.

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);

Sets the value of bn to data.

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);

Gets the size of binary data in bn.

bn :

the pointer to BN.

Returns :

the size of binary data.


xmlSecBnZero ()

void                xmlSecBnZero                        (xmlSecBnPtr bn);

Sets the value of bn to zero.

bn :

the pointer to BN.


xmlSecBnFromString ()

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

Reads bn from string str assuming it has base base.

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);

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

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);

Reads bn from hex string str.

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);

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

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);

Reads bn from decimal string str.

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);

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

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);

Multiplies bn with multiplier.

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);

Divides bn by divider and places modulus into mod.

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);

Adds delta to bn.

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);

Reverses bytes order in bn.

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);

Compares the bn with data.

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);

Compares the bn with reverse data.

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);

Converts the node content from format to bn.

bn :

the pointer to BN.

cur :

the poitner 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);

Converts the bn and sets it to node content.

bn :

the pointer to BN.

cur :

the poitner 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);

Converts the blob and sets it to node content.

data :

the pointer to BN blob.

dataSize :

the size of BN blob.

cur :

the poitner 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.