XML Security Library

LibXML2
LibXSLT
OpenSSL

transforms

Name

transforms -- 

Synopsis


#define     XMLSEC_TRANSFORM_BINARY_CHUNK
xmlSecPtrListPtr xmlSecTransformIdsGet      (void);
int         xmlSecTransformIdsInit          (void);
void        xmlSecTransformIdsShutdown      (void);
int         xmlSecTransformIdsRegisterDefault
                                            (void);
int         xmlSecTransformIdsRegister      (xmlSecTransformId keyId);
enum        xmlSecTransformStatus;
enum        xmlSecTransformMode;
enum        xmlSecTransformOperation;
typedef     xmlSecTransformUriType;
#define     xmlSecTransformUriTypeNone
#define     xmlSecTransformUriTypeEmpty
#define     xmlSecTransformUriTypeSameDocument
#define     xmlSecTransformUriTypeLocal
#define     xmlSecTransformUriTypeRemote
#define     xmlSecTransformUriTypeAny
int         xmlSecTransformUriTypeCheck     (xmlSecTransformUriType type,
                                             const xmlChar *uri);
typedef     xmlSecTransformDataType;
#define     xmlSecTransformDataTypeUnknown
#define     xmlSecTransformDataTypeBin
#define     xmlSecTransformDataTypeXml
typedef     xmlSecTransformUsage;
#define     xmlSecTransformUsageUnknown
#define     xmlSecTransformUsageDSigTransform
#define     xmlSecTransformUsageC14NMethod
#define     xmlSecTransformUsageDigestMethod
#define     xmlSecTransformUsageSignatureMethod
#define     xmlSecTransformUsageEncryptionMethod
#define     xmlSecTransformUsageAny
int         (*xmlSecTransformCtxPreExecuteCallback)
                                            (xmlSecTransformCtxPtr transformCtx);
struct      xmlSecTransformCtx;
xmlSecTransformCtxPtr xmlSecTransformCtxCreate
                                            (void);
void        xmlSecTransformCtxDestroy       (xmlSecTransformCtxPtr ctx);
int         xmlSecTransformCtxInitialize    (xmlSecTransformCtxPtr ctx);
void        xmlSecTransformCtxFinalize      (xmlSecTransformCtxPtr ctx);
void        xmlSecTransformCtxReset         (xmlSecTransformCtxPtr ctx);
int         xmlSecTransformCtxCopyUserPref  (xmlSecTransformCtxPtr dst,
                                             xmlSecTransformCtxPtr src);
int         xmlSecTransformCtxSetUri        (xmlSecTransformCtxPtr ctx,
                                             const xmlChar *uri,
                                             xmlNodePtr hereNode);
int         xmlSecTransformCtxAppend        (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformPtr transform);
int         xmlSecTransformCtxPrepend       (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformPtr transform);
xmlSecTransformPtr xmlSecTransformCtxCreateAndAppend
                                            (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformId id);
xmlSecTransformPtr xmlSecTransformCtxCreateAndPrepend
                                            (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformId id);
xmlSecTransformPtr xmlSecTransformCtxNodeRead
                                            (xmlSecTransformCtxPtr ctx,
                                             xmlNodePtr node,
                                             xmlSecTransformUsage usage);
int         xmlSecTransformCtxNodesListRead (xmlSecTransformCtxPtr ctx,
                                             xmlNodePtr node,
                                             xmlSecTransformUsage usage);
int         xmlSecTransformCtxPrepare       (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformDataType inputDataType);
int         xmlSecTransformCtxBinaryExecute (xmlSecTransformCtxPtr ctx,
                                             unsigned char *data,
                                             size_t dataSize);
int         xmlSecTransformCtxUriExecute    (xmlSecTransformCtxPtr ctx,
                                             const xmlChar *uri);
int         xmlSecTransformCtxXmlExecute    (xmlSecTransformCtxPtr ctx,
                                             xmlSecNodeSetPtr nodes);
int         xmlSecTransformCtxExecute       (xmlSecTransformCtxPtr ctx,
                                             xmlDocPtr doc);
void        xmlSecTransformCtxDebugDump     (xmlSecTransformCtxPtr ctx,
                                             FILE *output);
void        xmlSecTransformCtxDebugXmlDump  (xmlSecTransformCtxPtr ctx,
                                             FILE *output);
struct      xmlSecTransform;
xmlSecTransformPtr xmlSecTransformCreate    (xmlSecTransformId id);
void        xmlSecTransformDestroy          (xmlSecTransformPtr transform);
xmlSecTransformPtr xmlSecTransformNodeRead  (xmlNodePtr node,
                                             xmlSecTransformUsage usage,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformPump             (xmlSecTransformPtr left,
                                             xmlSecTransformPtr right,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformSetKey           (xmlSecTransformPtr transform,
                                             xmlSecKeyPtr key);
int         xmlSecTransformSetKeyReq        (xmlSecTransformPtr transform,
                                             xmlSecKeyReqPtr keyReq);
int         xmlSecTransformVerify           (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformVerifyNodeContent
                                            (xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);
xmlSecTransformDataType xmlSecTransformGetDataType
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformMode mode,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformPushBin          (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             int final,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformPopBin           (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t maxDataSize,
                                             size_t *dataSize,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformPushXml          (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr nodes,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformPopXml           (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr *nodes,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformExecute          (xmlSecTransformPtr transform,
                                             int last,
                                             xmlSecTransformCtxPtr transformCtx);
void        xmlSecTransformDebugDump        (xmlSecTransformPtr transform,
                                             FILE *output);
void        xmlSecTransformDebugXmlDump     (xmlSecTransformPtr transform,
                                             FILE *output);
#define     xmlSecTransformGetName          (transform)
#define     xmlSecTransformIsValid          (transform)
#define     xmlSecTransformCheckType        (transform, t)
#define     xmlSecTransformCheckId          (transform, i)
#define     xmlSecTransformCheckSize        (transform, size)
int         xmlSecTransformConnect          (xmlSecTransformPtr left,
                                             xmlSecTransformPtr right,
                                             xmlSecTransformCtxPtr transformCtx);
xmlSecTransformPtr xmlSecTransformAddAfter  (xmlSecTransformPtr curTransform,
                                             xmlSecTransformPtr newTransform);
xmlSecTransformPtr xmlSecTransformAddBefore (xmlSecTransformPtr curTransform,
                                             xmlSecTransformPtr newTransform);
void        xmlSecTransformRemove           (xmlSecTransformPtr transform);
xmlSecTransformDataType xmlSecTransformDefaultGetDataType
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformMode mode,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformDefaultPushBin   (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             int final,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformDefaultPopBin    (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t maxDataSize,
                                             size_t *dataSize,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformDefaultPushXml   (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr nodes,
                                             xmlSecTransformCtxPtr transformCtx);
int         xmlSecTransformDefaultPopXml    (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr *nodes,
                                             xmlSecTransformCtxPtr transformCtx);
xmlOutputBufferPtr xmlSecTransformCreateOutputBuffer
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformCtxPtr transformCtx);
xmlParserInputBufferPtr xmlSecTransformCreateInputBuffer
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformInitializeMethod)
                                            (xmlSecTransformPtr transform);
void        (*xmlSecTransformFinalizeMethod)
                                            (xmlSecTransformPtr transform);
xmlSecTransformDataType (*xmlSecTransformGetDataTypeMethod)
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformMode mode,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformNodeReadMethod)
                                            (xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformNodeWriteMethod)
                                            (xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformSetKeyRequirements)
                                            (xmlSecTransformPtr transform,
                                             xmlSecKeyReqPtr keyReq);
int         (*xmlSecTransformSetKeyMethod)  (xmlSecTransformPtr transform,
                                             xmlSecKeyPtr key);
int         (*xmlSecTransformVerifyMethod)  (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformPushBinMethod) (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             int final,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformPopBinMethod)  (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t maxDataSize,
                                             size_t *dataSize,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformPushXmlMethod) (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr nodes,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformPopXmlMethod)  (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr *nodes,
                                             xmlSecTransformCtxPtr transformCtx);
int         (*xmlSecTransformExecuteMethod) (xmlSecTransformPtr transform,
                                             int last,
                                             xmlSecTransformCtxPtr transformCtx);
struct      xmlSecTransformKlass;
#define     xmlSecTransformKlassGetName     (klass)
#define     xmlSecTransformIdListId
xmlSecPtrListId xmlSecTransformIdListGetKlass
                                            (void);
int         xmlSecTransformIdListFind       (xmlSecPtrListPtr list,
                                             xmlSecTransformId transformId);
xmlSecTransformId xmlSecTransformIdListFindByHref
                                            (xmlSecPtrListPtr list,
                                             const xmlChar *href,
                                             xmlSecTransformUsage usage);
xmlSecTransformId xmlSecTransformIdListFindByName
                                            (xmlSecPtrListPtr list,
                                             const xmlChar *name,
                                             xmlSecTransformUsage usage);
void        xmlSecTransformIdListDebugDump  (xmlSecPtrListPtr list,
                                             FILE *output);
void        xmlSecTransformIdListDebugXmlDump
                                            (xmlSecPtrListPtr list,
                                             FILE *output);
#define     xmlSecTransformIdUnknown
#define     xmlSecTransformBase64Id
xmlSecTransformId xmlSecTransformBase64GetKlass
                                            (void);
void        xmlSecTransformBase64SetLineSize
                                            (xmlSecTransformPtr transform,
                                             size_t lineSize);
#define     xmlSecTransformInclC14NId
xmlSecTransformId xmlSecTransformInclC14NGetKlass
                                            (void);
#define     xmlSecTransformInclC14NWithCommentsId
xmlSecTransformId xmlSecTransformInclC14NWithCommentsGetKlass
                                            (void);
#define     xmlSecTransformExclC14NId
xmlSecTransformId xmlSecTransformExclC14NGetKlass
                                            (void);
#define     xmlSecTransformExclC14NWithCommentsId
xmlSecTransformId xmlSecTransformExclC14NWithCommentsGetKlass
                                            (void);
#define     xmlSecTransformEnvelopedId
xmlSecTransformId xmlSecTransformEnvelopedGetKlass
                                            (void);
#define     xmlSecTransformXPathId
xmlSecTransformId xmlSecTransformXPathGetKlass
                                            (void);
#define     xmlSecTransformXPath2Id
xmlSecTransformId xmlSecTransformXPath2GetKlass
                                            (void);
#define     xmlSecTransformXPointerId
xmlSecTransformId xmlSecTransformXPointerGetKlass
                                            (void);
int         xmlSecTransformXPointerSetExpr  (xmlSecTransformPtr transform,
                                             const xmlChar *expr,
                                             xmlSecNodeSetType nodeSetType,
                                             xmlNodePtr hereNode);
#define     xmlSecTransformXsltId
xmlSecTransformId xmlSecTransformXsltGetKlass
                                            (void);
#define     xmlSecTransformRemoveXmlTagsC14NId
xmlSecTransformId xmlSecTransformRemoveXmlTagsC14NGetKlass
                                            (void);

Description

Details

XMLSEC_TRANSFORM_BINARY_CHUNK

#define XMLSEC_TRANSFORM_BINARY_CHUNK			64

The binary data chunks size. XMLSec processes binary data one chunk at a time. Changing this impacts xmlsec memory usage and performance.


xmlSecTransformIdsGet ()

xmlSecPtrListPtr xmlSecTransformIdsGet      (void);

Returns :  


xmlSecTransformIdsInit ()

int         xmlSecTransformIdsInit          (void);

Returns :  


xmlSecTransformIdsShutdown ()

void        xmlSecTransformIdsShutdown      (void);


xmlSecTransformIdsRegisterDefault ()

int         xmlSecTransformIdsRegisterDefault
                                            (void);

Returns :  


xmlSecTransformIdsRegister ()

int         xmlSecTransformIdsRegister      (xmlSecTransformId keyId);

keyId :  
Returns :  


enum xmlSecTransformStatus

typedef enum  {
    xmlSecTransformStatusNone = 0,
    xmlSecTransformStatusWorking,
    xmlSecTransformStatusFinished,
    xmlSecTransformStatusOk,
    xmlSecTransformStatusFail
} xmlSecTransformStatus;


enum xmlSecTransformMode

typedef enum  {
    xmlSecTransformModeNone = 0,
    xmlSecTransformModePush,
    xmlSecTransformModePop
} xmlSecTransformMode;


enum xmlSecTransformOperation

typedef enum  {
    xmlSecTransformOperationNone = 0,
    xmlSecTransformOperationEncode,
    xmlSecTransformOperationDecode,
    xmlSecTransformOperationSign,
    xmlSecTransformOperationVerify,
    xmlSecTransformOperationEncrypt,
    xmlSecTransformOperationDecrypt
} xmlSecTransformOperation;


xmlSecTransformUriType

typedef unsigned int				xmlSecTransformUriType;

URI transform type bit mask.


xmlSecTransformUriTypeNone

#define xmlSecTransformUriTypeNone		0x0000

The URI type is unknown or not set.


xmlSecTransformUriTypeEmpty

#define xmlSecTransformUriTypeEmpty		0x0001

The empty URI ("") type.


xmlSecTransformUriTypeSameDocument

#define xmlSecTransformUriTypeSameDocument	0x0002		

The smae document ("#...") but not empty ("") URI type.


xmlSecTransformUriTypeLocal

#define xmlSecTransformUriTypeLocal		0x0004

The local URI ("file:///....") type.


xmlSecTransformUriTypeRemote

#define xmlSecTransformUriTypeRemote		0x0008

The remote URI type.


xmlSecTransformUriTypeAny

#define xmlSecTransformUriTypeAny		0xFFFF

Any URI type.


xmlSecTransformUriTypeCheck ()

int         xmlSecTransformUriTypeCheck     (xmlSecTransformUriType type,
                                             const xmlChar *uri);

type :  
uri :  
Returns :  


xmlSecTransformDataType

typedef unsigned char				xmlSecTransformDataType;

Transform data type bit mask.


xmlSecTransformDataTypeUnknown

#define xmlSecTransformDataTypeUnknown		0x0000

The transform data type is unknown or nor data expected.


xmlSecTransformDataTypeBin

#define xmlSecTransformDataTypeBin		0x0001

The binary transform data.


xmlSecTransformDataTypeXml

#define xmlSecTransformDataTypeXml		0x0002

The xml transform data.


xmlSecTransformUsage

typedef unsigned int				xmlSecTransformUsage;

The transform usage bit mask.


xmlSecTransformUsageUnknown

#define xmlSecTransformUsageUnknown		0x0000

Transforms usage is unknown or undefined.


xmlSecTransformUsageDSigTransform

#define xmlSecTransformUsageDSigTransform	0x0001

Transform could be used in <dsig:Transform>.


xmlSecTransformUsageC14NMethod

#define xmlSecTransformUsageC14NMethod		0x0002

Transform could be used in <dsig:CanonicalizationMethod>.


xmlSecTransformUsageDigestMethod

#define xmlSecTransformUsageDigestMethod	0x0004

Transform could be used in <dsig:DigestMethod>.


xmlSecTransformUsageSignatureMethod

#define xmlSecTransformUsageSignatureMethod	0x0008

Transform could be used in <dsig:SignatureMethod>.


xmlSecTransformUsageEncryptionMethod

#define xmlSecTransformUsageEncryptionMethod	0x0010

Transform could be used in <enc:EncryptionMethod>.


xmlSecTransformUsageAny

#define xmlSecTransformUsageAny			0xFFFF

Transform could be used for operation.


xmlSecTransformCtxPreExecuteCallback ()

int         (*xmlSecTransformCtxPreExecuteCallback)
                                            (xmlSecTransformCtxPtr transformCtx);

The callback called after creating transforms chain but before starting data processing. Application can use this callback to do additional transforms chain verification or modification and aborting transforms execution (if necessary).

transformCtx : the pointer to transform's context.
Returns : 0 on success and a negative value otherwise (in this case, transforms chain will not be executed and xmlsec processing stops).


struct xmlSecTransformCtx

struct xmlSecTransformCtx {
    /* user settings */
    void*					userData;
    unsigned int				flags;
    unsigned int				flags2;
    xmlSecTransformUriType			enabledUris;
    xmlSecPtrList				enabledTransforms;
    xmlSecTransformCtxPreExecuteCallback	preExecCallback;
    
    /* results */
    xmlSecBufferPtr				result;
    xmlSecTransformStatus			status;
    xmlChar*					uri;
    xmlChar*					xptrExpr;
    xmlSecTransformPtr				first;
    xmlSecTransformPtr				last;

    /* for the future */
    void*					reserved0;
    void*					reserved1;
};

The transform execution context.

void *userData the pointer to user data (xmlsec and xmlsec-crypto never touch this).
unsigned int flags the bit mask flags to control transforms execution (reserved for the future).
unsigned int flags2 the bit mask flags to control transforms execution (reserved for the future).
xmlSecTransformUriType enabledUris the allowed transform data source uri types.
xmlSecPtrList enabledTransforms the list of enabled transforms; if list is empty (default) then all registered transforms are enabled.
xmlSecTransformCtxPreExecuteCallback preExecCallback the callback called after preparing transform chain and right before actual data processing; application can use this callback to change transforms parameters, insert additional transforms in the chain or do additional validation (and abort transform execution if needed).
xmlSecBufferPtr result the pointer to transforms result buffer.
xmlSecTransformStatus status  
xmlChar *uri the data source URI without xpointer expression.
xmlChar *xptrExpr the xpointer expression from data source URI (if any).
xmlSecTransformPtr first the first transform in the chain.
xmlSecTransformPtr last the last transform in the chain.
void *reserved0 reserved for the future.
void *reserved1 reserved for the future.


xmlSecTransformCtxCreate ()

xmlSecTransformCtxPtr xmlSecTransformCtxCreate
                                            (void);

Returns :  


xmlSecTransformCtxDestroy ()

void        xmlSecTransformCtxDestroy       (xmlSecTransformCtxPtr ctx);

ctx :  


xmlSecTransformCtxInitialize ()

int         xmlSecTransformCtxInitialize    (xmlSecTransformCtxPtr ctx);

ctx :  
Returns :  


xmlSecTransformCtxFinalize ()

void        xmlSecTransformCtxFinalize      (xmlSecTransformCtxPtr ctx);

ctx :  


xmlSecTransformCtxReset ()

void        xmlSecTransformCtxReset         (xmlSecTransformCtxPtr ctx);

ctx :  


xmlSecTransformCtxCopyUserPref ()

int         xmlSecTransformCtxCopyUserPref  (xmlSecTransformCtxPtr dst,
                                             xmlSecTransformCtxPtr src);

dst :  
src :  
Returns :  


xmlSecTransformCtxSetUri ()

int         xmlSecTransformCtxSetUri        (xmlSecTransformCtxPtr ctx,
                                             const xmlChar *uri,
                                             xmlNodePtr hereNode);

Parses uri and adds xpointer transforms if required.

The following examples demonstrate what the URI attribute identifies and how it is dereferenced (http://www.w3.org/TR/xmldsig-core/sec-ReferenceProcessingModel):

- URI="http://example.com/bar.xml" identifies the octets that represent the external resource 'http://example.com/bar.xml', that is probably an XML document given its file extension.

- URI="http://example.com/bar.xmlchapter1" identifies the element with ID attribute value 'chapter1' of the external XML resource 'http://example.com/bar.xml', provided as an octet stream. Again, for the sake of interoperability, the element identified as 'chapter1' should be obtained using an XPath transform rather than a URI fragment (barename XPointer resolution in external resources is not REQUIRED in this specification).

- URI="" identifies the node-set (minus any comment nodes) of the XML resource containing the signature

- URI="chapter1" identifies a node-set containing the element with ID attribute value 'chapter1' of the XML resource containing the signature. XML Signature (and its applications) modify this node-set to include the element plus all descendents including namespaces and attributes -- but not comments.

ctx :  
uri :  
hereNode :  
Returns :  


xmlSecTransformCtxAppend ()

int         xmlSecTransformCtxAppend        (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformPtr transform);

ctx :  
transform :  
Returns :  


xmlSecTransformCtxPrepend ()

int         xmlSecTransformCtxPrepend       (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformPtr transform);

ctx :  
transform :  
Returns :  


xmlSecTransformCtxCreateAndAppend ()

xmlSecTransformPtr xmlSecTransformCtxCreateAndAppend
                                            (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformId id);

ctx :  
id :  
Returns :  


xmlSecTransformCtxCreateAndPrepend ()

xmlSecTransformPtr xmlSecTransformCtxCreateAndPrepend
                                            (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformId id);

ctx :  
id :  
Returns :  


xmlSecTransformCtxNodeRead ()

xmlSecTransformPtr xmlSecTransformCtxNodeRead
                                            (xmlSecTransformCtxPtr ctx,
                                             xmlNodePtr node,
                                             xmlSecTransformUsage usage);

ctx :  
node :  
usage :  
Returns :  


xmlSecTransformCtxNodesListRead ()

int         xmlSecTransformCtxNodesListRead (xmlSecTransformCtxPtr ctx,
                                             xmlNodePtr node,
                                             xmlSecTransformUsage usage);

ctx :  
node :  
usage :  
Returns :  


xmlSecTransformCtxPrepare ()

int         xmlSecTransformCtxPrepare       (xmlSecTransformCtxPtr ctx,
                                             xmlSecTransformDataType inputDataType);

ctx :  
inputDataType :  
Returns :  


xmlSecTransformCtxBinaryExecute ()

int         xmlSecTransformCtxBinaryExecute (xmlSecTransformCtxPtr ctx,
                                             unsigned char *data,
                                             size_t dataSize);

ctx :  
data :  
dataSize :  
Returns :  


xmlSecTransformCtxUriExecute ()

int         xmlSecTransformCtxUriExecute    (xmlSecTransformCtxPtr ctx,
                                             const xmlChar *uri);

ctx :  
uri :  
Returns :  


xmlSecTransformCtxXmlExecute ()

int         xmlSecTransformCtxXmlExecute    (xmlSecTransformCtxPtr ctx,
                                             xmlSecNodeSetPtr nodes);

ctx :  
nodes :  
Returns :  


xmlSecTransformCtxExecute ()

int         xmlSecTransformCtxExecute       (xmlSecTransformCtxPtr ctx,
                                             xmlDocPtr doc);

ctx :  
doc :  
Returns :  


xmlSecTransformCtxDebugDump ()

void        xmlSecTransformCtxDebugDump     (xmlSecTransformCtxPtr ctx,
                                             FILE *output);

ctx :  
output :  


xmlSecTransformCtxDebugXmlDump ()

void        xmlSecTransformCtxDebugXmlDump  (xmlSecTransformCtxPtr ctx,
                                             FILE *output);

ctx :  
output :  


struct xmlSecTransform

struct xmlSecTransform {
    xmlSecTransformId 			id; 
    xmlSecTransformOperation		operation;
    xmlSecTransformStatus		status;
    xmlNodePtr				hereNode;

    /* transforms chain */
    xmlSecTransformPtr			next;
    xmlSecTransformPtr			prev;

    /* binary data */
    xmlSecBuffer			inBuf;
    xmlSecBuffer			outBuf;
        
    /* xml data */
    xmlSecNodeSetPtr			inNodes;
    xmlSecNodeSetPtr			outNodes;

    /* reserved for the future */    
    void*				reserved0;
    void*				reserved1;
};

The transform structure.

xmlSecTransformId id the transform id (pointer to xmlSecTransformId).
xmlSecTransformOperation operation the transform's opertaion.
xmlSecTransformStatus status the current status.
xmlNodePtr hereNode the pointer to transform's <dsig:Transform /> node.
xmlSecTransformPtr next the pointer to next transform in the chain.
xmlSecTransformPtr prev the pointer to previous transform in the chain.
xmlSecBuffer inBuf the input binary data buffer.
xmlSecBuffer outBuf the output binary data buffer.
xmlSecNodeSetPtr inNodes the input XML nodes.
xmlSecNodeSetPtr outNodes  
void *reserved0 reserved for the future.
void *reserved1 reserved for the future.


xmlSecTransformCreate ()

xmlSecTransformPtr xmlSecTransformCreate    (xmlSecTransformId id);

Creates new transform from the transform id object.

id : the transform id to create.
Returns : the pointer to newly created xmlSecTransform structure or NULL if an error occurs.


xmlSecTransformDestroy ()

void        xmlSecTransformDestroy          (xmlSecTransformPtr transform);

Destroys transform by calling appropriate transform specific function.

transform : the pointer to xmlSecTransform structure.


xmlSecTransformNodeRead ()

xmlSecTransformPtr xmlSecTransformNodeRead  (xmlNodePtr node,
                                             xmlSecTransformUsage usage,
                                             xmlSecTransformCtxPtr transformCtx);

Reads transform from the node 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.

node : the pointer to the <dsig:Transform> node.
usage :  
transformCtx :  
Returns : 0 on success or a negative value otherwise.


xmlSecTransformPump ()

int         xmlSecTransformPump             (xmlSecTransformPtr left,
                                             xmlSecTransformPtr right,
                                             xmlSecTransformCtxPtr transformCtx);

left :  
right :  
transformCtx :  
Returns :  


xmlSecTransformSetKey ()

int         xmlSecTransformSetKey           (xmlSecTransformPtr transform,
                                             xmlSecKeyPtr key);

Sets the key for binary transform (wrapper for transform specific setKey() method).

transform : the pointer to xmlSecTransform structure.
key : the pointer to xmlSecKey structure.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformSetKeyReq ()

int         xmlSecTransformSetKeyReq        (xmlSecTransformPtr transform,
                                             xmlSecKeyReqPtr keyReq);

Sets the key for binary transform (wrapper for transform specific setKeyReq() method).

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


xmlSecTransformVerify ()

int         xmlSecTransformVerify           (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
data :  
dataSize :  
transformCtx :  
Returns :  


xmlSecTransformVerifyNodeContent ()

int         xmlSecTransformVerifyNodeContent
                                            (xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
node :  
transformCtx :  
Returns :  


xmlSecTransformGetDataType ()

xmlSecTransformDataType xmlSecTransformGetDataType
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformMode mode,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
mode :  
transformCtx :  
Returns :  


xmlSecTransformPushBin ()

int         xmlSecTransformPushBin          (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             int final,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
data :  
dataSize :  
final :  
transformCtx :  
Returns :  


xmlSecTransformPopBin ()

int         xmlSecTransformPopBin           (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t maxDataSize,
                                             size_t *dataSize,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
data :  
maxDataSize :  
dataSize :  
transformCtx :  
Returns :  


xmlSecTransformPushXml ()

int         xmlSecTransformPushXml          (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr nodes,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
nodes :  
transformCtx :  
Returns :  


xmlSecTransformPopXml ()

int         xmlSecTransformPopXml           (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr *nodes,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
nodes :  
transformCtx :  
Returns :  


xmlSecTransformExecute ()

int         xmlSecTransformExecute          (xmlSecTransformPtr transform,
                                             int last,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
last :  
transformCtx :  
Returns :  


xmlSecTransformDebugDump ()

void        xmlSecTransformDebugDump        (xmlSecTransformPtr transform,
                                             FILE *output);

transform :  
output :  


xmlSecTransformDebugXmlDump ()

void        xmlSecTransformDebugXmlDump     (xmlSecTransformPtr transform,
                                             FILE *output);

transform :  
output :  


xmlSecTransformGetName()

#define     xmlSecTransformGetName(transform)

Macro. Returns transform name.

transform :  


xmlSecTransformIsValid()

#define     xmlSecTransformIsValid(transform)

Macro. Returns 1 if the transform is valid or 0 otherwise.

transform : the pointer to transform.


xmlSecTransformCheckType()

#define     xmlSecTransformCheckType(transform, t)

Macro. Returns 1 if the transform is valid and has specified type t or 0 otherwise.

transform : the pointer to transform.
t : the transform type.


xmlSecTransformCheckId()

#define     xmlSecTransformCheckId(transform, i)

Macro. Returns 1 if the transform is valid and has specified id i or 0 otherwise.

transform : the pointer to transform.
i :  


xmlSecTransformCheckSize()

#define     xmlSecTransformCheckSize(transform, size)

Macro. Returns 1 if the transform is valid and has at least size bytes or 0 otherwise.

transform : the pointer to transform.
size : the transform object size.


xmlSecTransformConnect ()

int         xmlSecTransformConnect          (xmlSecTransformPtr left,
                                             xmlSecTransformPtr right,
                                             xmlSecTransformCtxPtr transformCtx);

left: right:

If the data object is a node-set and the next transform requires octets, the signature application MUST attempt to convert the node-set to an octet stream using Canonical XML [XML-C14N].

The story is different if the right transform is base64 decode:

http://www.w3.org/TR/xmldsig-core/sec-Base-64

This transform requires an octet stream for input. If an XPath node-set (or sufficiently functional alternative) is given as input, then it is converted to an octet stream by performing operations logically equivalent to 1) applying an XPath transform with expression self::text(), then 2) taking the string-value of the node-set. Thus, if an XML element is identified by a barename XPointer in the Reference URI, and its content consists solely of base64 encoded character data, then this transform automatically strips away the start and end tags of the identified element and any of its descendant elements as well as any descendant comments and processing instructions. The output of this transform is an octet stream.

left :  
right :  
transformCtx :  
Returns :  


xmlSecTransformAddAfter ()

xmlSecTransformPtr xmlSecTransformAddAfter  (xmlSecTransformPtr curTransform,
                                             xmlSecTransformPtr newTransform);

Adds newTransform after the curTransform.

curTransform : the pointer to current transform (may be NULL).
newTransform : the pointer to new transform.
Returns : pointer to the new transforms chain or NULL if an error occurs.


xmlSecTransformAddBefore ()

xmlSecTransformPtr xmlSecTransformAddBefore (xmlSecTransformPtr curTransform,
                                             xmlSecTransformPtr newTransform);

Adds newTransform before the curTransform.

curTransform : the pointer to current transform (may be NULL).
newTransform : the pointer to new transform.
Returns : pointer to the new transforms chain or NULL if an error occurs.


xmlSecTransformRemove ()

void        xmlSecTransformRemove           (xmlSecTransformPtr transform);

Removes transform from the chain. This method MUST be called by any bin transform id destructor.

transform : the pointer to xmlSecTransform structure.


xmlSecTransformDefaultGetDataType ()

xmlSecTransformDataType xmlSecTransformDefaultGetDataType
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformMode mode,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
mode :  
transformCtx :  
Returns :  


xmlSecTransformDefaultPushBin ()

int         xmlSecTransformDefaultPushBin   (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             int final,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
data :  
dataSize :  
final :  
transformCtx :  
Returns :  


xmlSecTransformDefaultPopBin ()

int         xmlSecTransformDefaultPopBin    (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t maxDataSize,
                                             size_t *dataSize,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
data :  
maxDataSize :  
dataSize :  
transformCtx :  
Returns :  


xmlSecTransformDefaultPushXml ()

int         xmlSecTransformDefaultPushXml   (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr nodes,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
nodes :  
transformCtx :  
Returns :  


xmlSecTransformDefaultPopXml ()

int         xmlSecTransformDefaultPopXml    (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr *nodes,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
nodes :  
transformCtx :  
Returns :  


xmlSecTransformCreateOutputBuffer ()

xmlOutputBufferPtr xmlSecTransformCreateOutputBuffer
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
transformCtx :  
Returns :  


xmlSecTransformCreateInputBuffer ()

xmlParserInputBufferPtr xmlSecTransformCreateInputBuffer
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformCtxPtr transformCtx);

transform :  
transformCtx :  
Returns :  


xmlSecTransformInitializeMethod ()

int         (*xmlSecTransformInitializeMethod)
                                            (xmlSecTransformPtr transform);

The transform specific initialization method.

transform : the pointer to transform object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformFinalizeMethod ()

void        (*xmlSecTransformFinalizeMethod)
                                            (xmlSecTransformPtr transform);

The transform specific destroy method.

transform : the pointer to transform object.


xmlSecTransformGetDataTypeMethod ()

xmlSecTransformDataType (*xmlSecTransformGetDataTypeMethod)
                                            (xmlSecTransformPtr transform,
                                             xmlSecTransformMode mode,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to query information about transform data type in specified mode mode.

transform : the pointer to transform object.
mode : the mode.
transformCtx : the pointer to transform context object.
Returns : transform data type.


xmlSecTransformNodeReadMethod ()

int         (*xmlSecTransformNodeReadMethod)
                                            (xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to read the transform data from the node.

transform : the pointer to transform object.
node : the pointer to <dsig:Transform/> node.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformNodeWriteMethod ()

int         (*xmlSecTransformNodeWriteMethod)
                                            (xmlSecTransformPtr transform,
                                             xmlNodePtr node,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to write transform information to an XML node node.

transform : the pointer to transform object.
node : the pointer to <dsig:Transform/> node.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformSetKeyRequirements ()

int         (*xmlSecTransformSetKeyRequirements)
                                            (xmlSecTransformPtr transform,
                                             xmlSecKeyReqPtr keyReq);

Transform specific method to set transform's key requirements.

transform : the pointer to transform object.
keyReq : the pointer to key requirements structure.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformSetKeyMethod ()

int         (*xmlSecTransformSetKeyMethod)  (xmlSecTransformPtr transform,
                                             xmlSecKeyPtr key);

The transform specific method to set the key for use.

transform : the pointer to transform object.
key : the pointer to key.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformVerifyMethod ()

int         (*xmlSecTransformVerifyMethod)  (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to verify transform processing results (used by digest and signature transforms). This method sets status member of the xmlSecTransform structure to either xmlSecTransformStatusOk if verification succeeded or xmlSecTransformStatusFail otherwise.

transform : the pointer to transform object.
data : the input buffer.
dataSize : the size of input buffer data.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformPushBinMethod ()

int         (*xmlSecTransformPushBinMethod) (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t dataSize,
                                             int final,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to process data from data and push result to the next transform in the chain.

transform : the pointer to transform object.
data : the input binary data,
dataSize : the input data size.
final : the flag: if set to 1 then it's the last data chunk.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformPopBinMethod ()

int         (*xmlSecTransformPopBinMethod)  (xmlSecTransformPtr transform,
                                             unsigned char *data,
                                             size_t maxDataSize,
                                             size_t *dataSize,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to pop data from previous transform in the chain and return result in the data buffer. The size of returned data is placed in the dataSize.

transform : the pointer to transform object.
data : the buffer to store result data.
maxDataSize : the size of the buffer data.
dataSize : the pointer to returned data size.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformPushXmlMethod ()

int         (*xmlSecTransformPushXmlMethod) (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr nodes,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to process nodes and push result to the next transform in the chain.

transform : the pointer to transform object.
nodes : the input nodes.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformPopXmlMethod ()

int         (*xmlSecTransformPopXmlMethod)  (xmlSecTransformPtr transform,
                                             xmlSecNodeSetPtr *nodes,
                                             xmlSecTransformCtxPtr transformCtx);

The transform specific method to pop data from previous transform in the chain, process the data and return result in nodes.

transform : the pointer to transform object.
nodes : the pointer to store popinter to result nodes.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


xmlSecTransformExecuteMethod ()

int         (*xmlSecTransformExecuteMethod) (xmlSecTransformPtr transform,
                                             int last,
                                             xmlSecTransformCtxPtr transformCtx);

Transform specific method to process a chunk of data.

transform : the pointer to transform object.
last : the flag: if set to 1 then it's the last data chunk.
transformCtx : the pointer to transform context object.
Returns : 0 on success or a negative value otherwise.


struct xmlSecTransformKlass

struct xmlSecTransformKlass {
    /* data */
    size_t				klassSize;
    size_t				objSize;
    const xmlChar*			name;
    const xmlChar*			href;
    xmlSecTransformUsage		usage;

    /* methods */
    xmlSecTransformInitializeMethod	initialize;
    xmlSecTransformFinalizeMethod	finalize;

    xmlSecTransformNodeReadMethod	readNode;
    xmlSecTransformNodeWriteMethod	writeNode;

    xmlSecTransformSetKeyRequirements	setKeyReq;
    xmlSecTransformSetKeyMethod		setKey;
    xmlSecTransformVerifyMethod		verify;
    xmlSecTransformGetDataTypeMethod	getDataType;

    xmlSecTransformPushBinMethod	pushBin;
    xmlSecTransformPopBinMethod		popBin;
    xmlSecTransformPushXmlMethod	pushXml;
    xmlSecTransformPopXmlMethod		popXml;
    
    /* low level method */
    xmlSecTransformExecuteMethod	execute;

    /* reserved for future */ 
    void* 				reserved0;
    void* 				reserved1;
};

The transform klass desccription structure.

size_t klassSize the transform klass structure size.
size_t objSize the transform object size.
const xmlChar *name the transform's name.
const xmlChar *href the transform's identification string (href).
xmlSecTransformUsage usage the allowed transforms usages.
xmlSecTransformInitializeMethod initialize the initialization method.
xmlSecTransformFinalizeMethod finalize the finmalization (destroy) function. readNode: the XML node read method.
xmlSecTransformNodeReadMethod readNode  
xmlSecTransformNodeWriteMethod writeNode the XML node write method.
xmlSecTransformSetKeyRequirements setKeyReq the set key requirements method.
xmlSecTransformSetKeyMethod setKey the set key method.
xmlSecTransformVerifyMethod verify the verify method (for digest and signature transforms).
xmlSecTransformGetDataTypeMethod getDataType the input/output data type query method. pushBin; the binary data "push thru chain" processing method.
xmlSecTransformPushBinMethod pushBin  
xmlSecTransformPopBinMethod popBin the binary data "pop from chain" procesing method.
xmlSecTransformPushXmlMethod pushXml the XML data "push thru chain" processing method.
xmlSecTransformPopXmlMethod popXml the XML data "pop from chain" procesing method.
xmlSecTransformExecuteMethod execute the low level data processing method used by default implementations of pushBin, popBin, pushXml and popXml.
void *reserved0  
void *reserved1  


xmlSecTransformKlassGetName()

#define     xmlSecTransformKlassGetName(klass)

Macro. Returns transform klass name.

klass :  


xmlSecTransformIdListId

#define xmlSecTransformIdListId	xmlSecTransformIdListGetKlass()

Transform klasses list klass.


xmlSecTransformIdListGetKlass ()

xmlSecPtrListId xmlSecTransformIdListGetKlass
                                            (void);

Returns :  


xmlSecTransformIdListFind ()

int         xmlSecTransformIdListFind       (xmlSecPtrListPtr list,
                                             xmlSecTransformId transformId);

list :  
transformId :  
Returns :  


xmlSecTransformIdListFindByHref ()

xmlSecTransformId xmlSecTransformIdListFindByHref
                                            (xmlSecPtrListPtr list,
                                             const xmlChar *href,
                                             xmlSecTransformUsage usage);

list :  
href :  
usage :  
Returns :  


xmlSecTransformIdListFindByName ()

xmlSecTransformId xmlSecTransformIdListFindByName
                                            (xmlSecPtrListPtr list,
                                             const xmlChar *name,
                                             xmlSecTransformUsage usage);

list :  
name :  
usage :  
Returns :  


xmlSecTransformIdListDebugDump ()

void        xmlSecTransformIdListDebugDump  (xmlSecPtrListPtr list,
                                             FILE *output);

list :  
output :  


xmlSecTransformIdListDebugXmlDump ()

void        xmlSecTransformIdListDebugXmlDump
                                            (xmlSecPtrListPtr list,
                                             FILE *output);

list :  
output :  


xmlSecTransformIdUnknown

#define xmlSecTransformIdUnknown			NULL

The "unknown" transform id (NULL).


xmlSecTransformBase64Id

#define     xmlSecTransformBase64Id

The base64 encode transform klass.


xmlSecTransformBase64GetKlass ()

xmlSecTransformId xmlSecTransformBase64GetKlass
                                            (void);

Returns :  


xmlSecTransformBase64SetLineSize ()

void        xmlSecTransformBase64SetLineSize
                                            (xmlSecTransformPtr transform,
                                             size_t lineSize);

Sets the max line size to lineSize.

transform : the pointer to BASE64 encode transform.
lineSize : the new max line size.


xmlSecTransformInclC14NId

#define     xmlSecTransformInclC14NId

The regular (inclusive) C14N without comments transform klass.


xmlSecTransformInclC14NGetKlass ()

xmlSecTransformId xmlSecTransformInclC14NGetKlass
                                            (void);

Returns :  


xmlSecTransformInclC14NWithCommentsId

#define     xmlSecTransformInclC14NWithCommentsId

The regular (inclusive) C14N with comments transform klass.


xmlSecTransformInclC14NWithCommentsGetKlass ()

xmlSecTransformId xmlSecTransformInclC14NWithCommentsGetKlass
                                            (void);

Returns :  


xmlSecTransformExclC14NId

#define     xmlSecTransformExclC14NId

The exclusive C14N without comments transform klass.


xmlSecTransformExclC14NGetKlass ()

xmlSecTransformId xmlSecTransformExclC14NGetKlass
                                            (void);

Returns :  


xmlSecTransformExclC14NWithCommentsId

#define     xmlSecTransformExclC14NWithCommentsId

The exclusive C14N with comments transform klass.


xmlSecTransformExclC14NWithCommentsGetKlass ()

xmlSecTransformId xmlSecTransformExclC14NWithCommentsGetKlass
                                            (void);

Returns :  


xmlSecTransformEnvelopedId

#define     xmlSecTransformEnvelopedId


xmlSecTransformEnvelopedGetKlass ()

xmlSecTransformId xmlSecTransformEnvelopedGetKlass
                                            (void);

http://www.w3.org/TR/xmldsig-core/sec-EnvelopedSignature

An enveloped signature transform T removes the whole Signature element containing T from the digest calculation of the Reference element containing T. The entire string of characters used by an XML processor to match the Signature with the XML production element is removed. The output of the transform is equivalent to the output that would result from replacing T with an XPath transform containing the following XPath parameter element:

<XPath xmlns:dsig="&dsig;"> count(ancestor-or-self::dsig:Signature | here()/ancestor::dsig:Signature[1]) > count(ancestor-or-self::dsig:Signature)</XPath> The input and output requirements of this transform are identical to those of the XPath transform, but may only be applied to a node-set from its parent XML document. Note that it is not necessary to use an XPath expression evaluator to create this transform. However, this transform MUST produce output in exactly the same manner as the XPath transform parameterized by the XPath expression above.

Returns :  


xmlSecTransformXPathId

#define     xmlSecTransformXPathId


xmlSecTransformXPathGetKlass ()

xmlSecTransformId xmlSecTransformXPathGetKlass
                                            (void);

The XPath transform evaluates given XPath expression and intersects the result with the previous nodes set. See http://www.w3.org/TR/xmldsig-core/sec-XPath for more details.

Returns : XPath transform id.


xmlSecTransformXPath2Id

#define     xmlSecTransformXPath2Id


xmlSecTransformXPath2GetKlass ()

xmlSecTransformId xmlSecTransformXPath2GetKlass
                                            (void);

Returns :  


xmlSecTransformXPointerId

#define     xmlSecTransformXPointerId


xmlSecTransformXPointerGetKlass ()

xmlSecTransformId xmlSecTransformXPointerGetKlass
                                            (void);

Returns :  


xmlSecTransformXPointerSetExpr ()

int         xmlSecTransformXPointerSetExpr  (xmlSecTransformPtr transform,
                                             const xmlChar *expr,
                                             xmlSecNodeSetType nodeSetType,
                                             xmlNodePtr hereNode);

transform :  
expr :  
nodeSetType :  
hereNode :  
Returns :  


xmlSecTransformXsltId

#define     xmlSecTransformXsltId

The XSLT transform klass.


xmlSecTransformXsltGetKlass ()

xmlSecTransformId xmlSecTransformXsltGetKlass
                                            (void);

Returns :  


xmlSecTransformRemoveXmlTagsC14NId

#define     xmlSecTransformRemoveXmlTagsC14NId

The "remove all xml tags" transform klass (used before base64 transforms).


xmlSecTransformRemoveXmlTagsC14NGetKlass ()

xmlSecTransformId xmlSecTransformRemoveXmlTagsC14NGetKlass
                                            (void);

Returns :  



Aleksey Sanin