transformsInternal.h

Name

transformsInternal.h -- The internal transform's functions.

Synopsis



enum        xmlSecTransformResult;
struct      xmlSecTransformState;
xmlSecTransformStatePtr xmlSecTransformStateCreate
                                            (xmlDocPtr doc,
                                             xmlSecNodeSetPtr nodeSet,
                                             const char *uri);
void        xmlSecTransformStateDestroy     (xmlSecTransformStatePtr state);
int         xmlSecTransformStateUpdate      (xmlSecTransformStatePtr state,
                                             xmlSecTransformPtr transform);
int         xmlSecTransformStateFinal       (xmlSecTransformStatePtr state,
                                             xmlSecTransformResult type);
int         xmlSecTransformStateFinalToNode (xmlSecTransformStatePtr state,
                                             xmlNodePtr node,
                                             int addBase64,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformStateFinalVerifyNode
                                            (xmlSecTransformStatePtr state,
                                             xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformRegister         (xmlSecTransformId keyId);
int         xmlSecTransformsInit            (void);
int         xmlSecTransformsNodeRead        (xmlSecTransformStatePtr state,
                                             xmlNodePtr transformsNode);
xmlSecTransformId xmlSecTransformFind       (const xmlChar *href,
                                             xmlSecTransformUsage usage);
xmlSecTransformPtr xmlSecTransformNodeRead  (xmlNodePtr transformNode,
                                             xmlSecTransformUsage usage,
                                             int dontDestroy);
int         xmlSecTransformNodeWrite        (xmlNodePtr transformNode,
                                             xmlSecTransformId id);

Description

Details

enum xmlSecTransformResult

typedef enum {
    xmlSecTransformResultBinary,
    xmlSecTransformResultXml
} xmlSecTransformResult;

The transform result types.

xmlSecTransformResultBinary binary data.
xmlSecTransformResultXml XML document plus nodes set.


struct xmlSecTransformState

struct xmlSecTransformState {
    /* initial state */
    xmlDocPtr				initDoc;
    xmlSecNodeSetPtr			initNodeSet;
    char				*initUri;

    /* current state: xml */    
    xmlDocPtr				curDoc;	
    xmlSecNodeSetPtr			curNodeSet;
    
    /* current state: binary */
    xmlSecBufferPtr			curBuf;	
    xmlSecTransformPtr			curFirstBinTransform; 
    xmlSecTransformPtr			curLastBinTransform; 

    /*  optimization: special case for c14n transforms */
    xmlSecTransformPtr			curC14NTransform; 
};

The current transforms state.

xmlDocPtr initDoc the pointer to the original xml document.
xmlSecNodeSetPtr initNodeSet the original nodes set.
char *initUri the original uri.
xmlDocPtr curDoc the pointer to the current doc.
xmlSecNodeSetPtr curNodeSet the pointer to the current nodes set.
xmlSecBufferPtr curBuf the pointer to the current binary data.
xmlSecTransformPtr curFirstBinTransform the pointer to the first pending binary transform.
xmlSecTransformPtr curLastBinTransform the pointer to the last pending binary transform.
xmlSecTransformPtr curC14NTransform the current pending c14n transform.


xmlSecTransformStateCreate ()

xmlSecTransformStatePtr xmlSecTransformStateCreate
                                            (xmlDocPtr doc,
                                             xmlSecNodeSetPtr nodeSet,
                                             const char *uri);

Creates new transform state.

doc : the pointer to XML document that contains <dsig:Signature> node.
nodeSet : the original nodes set.
uri : the original uri.
Returns :pointer to newly allocated xmlSecTransformState structure or NULL if an error occurs.


xmlSecTransformStateDestroy ()

void        xmlSecTransformStateDestroy     (xmlSecTransformStatePtr state);

Destroys the transform state.

state : the pointer to xmlSecTransformState structure.


xmlSecTransformStateUpdate ()

int         xmlSecTransformStateUpdate      (xmlSecTransformStatePtr state,
                                             xmlSecTransformPtr transform);

Updates the current state with transform. Note all transforms are applied immidiatelly.

state : the pointer to xmlSecTransformState structure.
transform : the pointer to xmlSecTransform structure.
Returns :0 on success or negative value otherwise.


xmlSecTransformStateFinal ()

int         xmlSecTransformStateFinal       (xmlSecTransformStatePtr state,
                                             xmlSecTransformResult type);

Finalazies transforms state (applies all pending transforms) and creates a result of the desired type.

state : the pointer to xmlSecTransformState structure.
type : the desired final type.
Returns :0 on success or negative value otherwise.


xmlSecTransformStateFinalToNode ()

int         xmlSecTransformStateFinalToNode (xmlSecTransformStatePtr state,
                                             xmlNodePtr node,
                                             int addBase64,
                                             xmlSecTransformCtxPtr transformCtx);

state : 
node : 
addBase64 : 
transformCtx : 
Returns : 


xmlSecTransformStateFinalVerifyNode ()

int         xmlSecTransformStateFinalVerifyNode
                                            (xmlSecTransformStatePtr state,
                                             xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);

state : 
transform : 
node : 
transformCtx : 
Returns : 


xmlSecTransformRegister ()

int         xmlSecTransformRegister         (xmlSecTransformId keyId);

Adds the transformId to the internal table of known transforms.

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


xmlSecTransformsInit ()

int         xmlSecTransformsInit            (void);

Trnasforms engine initialization (called from xmlSecInit() function). The applications should not call this function directly.

Returns :0 on success or a negative value otherwise.


xmlSecTransformsNodeRead ()

int         xmlSecTransformsNodeRead        (xmlSecTransformStatePtr state,
                                             xmlNodePtr transformsNode);

Reads the transform node and updates state,

state : the pointer to current transform state.
transformsNode : the pointer to the <dsig:Transform> node.
Returns :0 on success or a negative value otherwise.


xmlSecTransformFind ()

xmlSecTransformId xmlSecTransformFind       (const xmlChar *href,
                                             xmlSecTransformUsage usage);

Searches the list of known transforms for transform with given href

href : the transform href.
usage : 
Returns :the id of the found transform or NULL if an error occurs or transform is not found.


xmlSecTransformNodeRead ()

xmlSecTransformPtr xmlSecTransformNodeRead  (xmlNodePtr transformNode,
                                             xmlSecTransformUsage usage,
                                             int dontDestroy);

Reads transform from the transformNode as follows: 1) reads "Algorithm" attribute; 2) checks the list of known algorithms; 3) calls transform create method; 4) calls transform read transform node method.

transformNode : the pointer to <dsig:Transform> node.
usage : the usage of the transfomr (signature, encryption, etc.).
dontDestroy : the flag whether we need to destroy the transform.
Returns :the pointer to newly allocated xmlSecTransform structure or NULL if an error occurs.


xmlSecTransformNodeWrite ()

int         xmlSecTransformNodeWrite        (xmlNodePtr transformNode,
                                             xmlSecTransformId id);

Writes Agorithm attribute in the transform node.

transformNode : the pointer to <dsig:Transform> node.
id : the transform id.
Returns :0 on success or a negative value otherwise.