bn: XML Security Library Reference Manual

Home Download News Documentation FAQ Tutorial API reference Examples XML Digital Signature Online Verifier XML Encryption XML Canonicalization Reporting Bugs Mailing list Related Authors
## bn bn — Big numbers support functions. |
## Stability Level Stable, unless otherwise indicated ## Functions
xmlSecBnPtr | xmlSecBnCreate ()
void | xmlSecBnDestroy ()
int | xmlSecBnInitialize ()
void | xmlSecBnFinalize ()
xmlSecByte * | xmlSecBnGetData ()
int | xmlSecBnSetData ()
xmlSecSize | xmlSecBnGetSize ()
void | xmlSecBnZero ()
int | xmlSecBnFromString ()
xmlChar * | xmlSecBnToString ()
int | xmlSecBnFromHexString ()
xmlChar * | xmlSecBnToHexString ()
int | xmlSecBnFromDecString ()
xmlChar * | xmlSecBnToDecString ()
int | xmlSecBnMul ()
int | xmlSecBnDiv ()
int | xmlSecBnAdd ()
int | xmlSecBnReverse ()
int | xmlSecBnCompare ()
int | xmlSecBnCompareReverse ()
int | xmlSecBnGetNodeValue ()
int | xmlSecBnSetNodeValue ()
int | xmlSecBnBlobSetNodeValue ()
## Types and Values
enum | xmlSecBnFormat
## Description ## Functions ### xmlSecBnCreate ()
    xmlSecBnPtr
    xmlSecBnCreate (xmlSecSize size);
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);
Destroys `bn` object created with `xmlSecBnCreate` function. #### Parameters
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. #### 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);
Destroys `bn` object created with `xmlSecBnInitialize` function. #### Parameters
bn | the pointer to BN. |
### xmlSecBnGetData ()
    xmlSecByte *
    xmlSecBnGetData (xmlSecBnPtr bn);
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);
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);
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);
Sets the value of `bn` to zero. #### Parameters
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` . #### 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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
Converts the node content from `format` to `bn` . #### Parameters
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. #### Parameters
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. #### Parameters
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. ## Types and Values ### enum xmlSecBnFormat The big numbers formats. #### Members
xmlSecBnBase64 | the base64 decoded binary blob. |
xmlSecBnHex | the hex number. |
xmlSecBnDec | the decimal number. |