

|
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); |
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); |
xmlSecTransformIdsInit ()
int xmlSecTransformIdsInit (void); |
xmlSecTransformIdsShutdown ()
void xmlSecTransformIdsShutdown (void); |
xmlSecTransformIdsRegisterDefault ()
int xmlSecTransformIdsRegisterDefault
(void); |
xmlSecTransformIdsRegister ()
int xmlSecTransformIdsRegister (xmlSecTransformId keyId); |
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 ()
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).
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.
xmlSecTransformCtxCreate ()
xmlSecTransformCtxPtr xmlSecTransformCtxCreate
(void); |
xmlSecTransformCtxDestroy ()
void xmlSecTransformCtxDestroy (xmlSecTransformCtxPtr ctx); |
xmlSecTransformCtxInitialize ()
int xmlSecTransformCtxInitialize (xmlSecTransformCtxPtr ctx); |
xmlSecTransformCtxFinalize ()
void xmlSecTransformCtxFinalize (xmlSecTransformCtxPtr ctx); |
xmlSecTransformCtxReset ()
void xmlSecTransformCtxReset (xmlSecTransformCtxPtr ctx); |
xmlSecTransformCtxCopyUserPref ()
int xmlSecTransformCtxCopyUserPref (xmlSecTransformCtxPtr dst,
xmlSecTransformCtxPtr src); |
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.
xmlSecTransformCtxAppend ()
int xmlSecTransformCtxAppend (xmlSecTransformCtxPtr ctx,
xmlSecTransformPtr transform); |
xmlSecTransformCtxPrepend ()
int xmlSecTransformCtxPrepend (xmlSecTransformCtxPtr ctx,
xmlSecTransformPtr transform); |
xmlSecTransformCtxCreateAndAppend ()
xmlSecTransformPtr xmlSecTransformCtxCreateAndAppend
(xmlSecTransformCtxPtr ctx,
xmlSecTransformId id); |
xmlSecTransformCtxCreateAndPrepend ()
xmlSecTransformPtr xmlSecTransformCtxCreateAndPrepend
(xmlSecTransformCtxPtr ctx,
xmlSecTransformId id); |
xmlSecTransformCtxNodeRead ()
xmlSecTransformPtr xmlSecTransformCtxNodeRead
(xmlSecTransformCtxPtr ctx,
xmlNodePtr node,
xmlSecTransformUsage usage); |
xmlSecTransformCtxNodesListRead ()
int xmlSecTransformCtxNodesListRead (xmlSecTransformCtxPtr ctx,
xmlNodePtr node,
xmlSecTransformUsage usage); |
xmlSecTransformCtxPrepare ()
xmlSecTransformCtxBinaryExecute ()
int xmlSecTransformCtxBinaryExecute (xmlSecTransformCtxPtr ctx,
unsigned char *data,
size_t dataSize); |
xmlSecTransformCtxUriExecute ()
int xmlSecTransformCtxUriExecute (xmlSecTransformCtxPtr ctx,
const xmlChar *uri); |
xmlSecTransformCtxXmlExecute ()
int xmlSecTransformCtxXmlExecute (xmlSecTransformCtxPtr ctx,
xmlSecNodeSetPtr nodes); |
xmlSecTransformCtxExecute ()
int xmlSecTransformCtxExecute (xmlSecTransformCtxPtr ctx,
xmlDocPtr doc); |
xmlSecTransformCtxDebugDump ()
void xmlSecTransformCtxDebugDump (xmlSecTransformCtxPtr ctx,
FILE *output); |
xmlSecTransformCtxDebugXmlDump ()
void xmlSecTransformCtxDebugXmlDump (xmlSecTransformCtxPtr ctx,
FILE *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.
xmlSecTransformCreate ()
xmlSecTransformPtr xmlSecTransformCreate (xmlSecTransformId id); |
Creates new transform from the transform id object.
xmlSecTransformDestroy ()
void xmlSecTransformDestroy (xmlSecTransformPtr transform); |
Destroys transform by calling appropriate transform specific function.
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.
xmlSecTransformPump ()
int xmlSecTransformPump (xmlSecTransformPtr left,
xmlSecTransformPtr right,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformSetKey ()
int xmlSecTransformSetKey (xmlSecTransformPtr transform,
xmlSecKeyPtr key); |
Sets the key for binary transform (wrapper for transform specific
setKey() method).
xmlSecTransformSetKeyReq ()
int xmlSecTransformSetKeyReq (xmlSecTransformPtr transform,
xmlSecKeyReqPtr keyReq); |
Sets the key for binary transform (wrapper for transform specific
setKeyReq() method).
xmlSecTransformVerify ()
int xmlSecTransformVerify (xmlSecTransformPtr transform,
unsigned char *data,
size_t dataSize,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformVerifyNodeContent ()
int xmlSecTransformVerifyNodeContent
(xmlSecTransformPtr transform,
xmlNodePtr node,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformGetDataType ()
xmlSecTransformPushBin ()
int xmlSecTransformPushBin (xmlSecTransformPtr transform,
unsigned char *data,
size_t dataSize,
int final,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformPopBin ()
int xmlSecTransformPopBin (xmlSecTransformPtr transform,
unsigned char *data,
size_t maxDataSize,
size_t *dataSize,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformPushXml ()
int xmlSecTransformPushXml (xmlSecTransformPtr transform,
xmlSecNodeSetPtr nodes,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformPopXml ()
int xmlSecTransformPopXml (xmlSecTransformPtr transform,
xmlSecNodeSetPtr *nodes,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformExecute ()
int xmlSecTransformExecute (xmlSecTransformPtr transform,
int last,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformDebugDump ()
void xmlSecTransformDebugDump (xmlSecTransformPtr transform,
FILE *output); |
xmlSecTransformDebugXmlDump ()
void xmlSecTransformDebugXmlDump (xmlSecTransformPtr transform,
FILE *output); |
xmlSecTransformGetName()
#define xmlSecTransformGetName(transform) |
Macro. Returns transform name.
xmlSecTransformIsValid()
#define xmlSecTransformIsValid(transform) |
Macro. Returns 1 if the transform is valid or 0 otherwise.
xmlSecTransformCheckType()
#define xmlSecTransformCheckType(transform, t) |
Macro. Returns 1 if the transform is valid and has specified type t
or 0 otherwise.
xmlSecTransformCheckId()
#define xmlSecTransformCheckId(transform, i) |
Macro. Returns 1 if the transform is valid and has specified id i
or 0 otherwise.
xmlSecTransformCheckSize()
#define xmlSecTransformCheckSize(transform, size) |
Macro. Returns 1 if the transform is valid and has at least size
bytes or 0 otherwise.
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.
xmlSecTransformAddAfter ()
xmlSecTransformPtr xmlSecTransformAddAfter (xmlSecTransformPtr curTransform,
xmlSecTransformPtr newTransform); |
Adds newTransform after the curTransform.
xmlSecTransformAddBefore ()
xmlSecTransformPtr xmlSecTransformAddBefore (xmlSecTransformPtr curTransform,
xmlSecTransformPtr newTransform); |
Adds newTransform before the curTransform.
xmlSecTransformRemove ()
void xmlSecTransformRemove (xmlSecTransformPtr transform); |
Removes transform from the chain. This method MUST be called by any
bin transform id destructor.
xmlSecTransformDefaultGetDataType ()
xmlSecTransformDefaultPushBin ()
int xmlSecTransformDefaultPushBin (xmlSecTransformPtr transform,
unsigned char *data,
size_t dataSize,
int final,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformDefaultPopBin ()
int xmlSecTransformDefaultPopBin (xmlSecTransformPtr transform,
unsigned char *data,
size_t maxDataSize,
size_t *dataSize,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformDefaultPushXml ()
int xmlSecTransformDefaultPushXml (xmlSecTransformPtr transform,
xmlSecNodeSetPtr nodes,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformDefaultPopXml ()
int xmlSecTransformDefaultPopXml (xmlSecTransformPtr transform,
xmlSecNodeSetPtr *nodes,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformCreateOutputBuffer ()
xmlOutputBufferPtr xmlSecTransformCreateOutputBuffer
(xmlSecTransformPtr transform,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformCreateInputBuffer ()
xmlParserInputBufferPtr xmlSecTransformCreateInputBuffer
(xmlSecTransformPtr transform,
xmlSecTransformCtxPtr transformCtx); |
xmlSecTransformInitializeMethod ()
int (*xmlSecTransformInitializeMethod)
(xmlSecTransformPtr transform); |
The transform specific initialization method.
xmlSecTransformFinalizeMethod ()
void (*xmlSecTransformFinalizeMethod)
(xmlSecTransformPtr transform); |
The transform specific destroy method.
xmlSecTransformGetDataTypeMethod ()
The transform specific method to query information about transform
data type in specified mode mode.
xmlSecTransformNodeReadMethod ()
int (*xmlSecTransformNodeReadMethod)
(xmlSecTransformPtr transform,
xmlNodePtr node,
xmlSecTransformCtxPtr transformCtx); |
The transform specific method to read the transform data from
the node.
xmlSecTransformNodeWriteMethod ()
int (*xmlSecTransformNodeWriteMethod)
(xmlSecTransformPtr transform,
xmlNodePtr node,
xmlSecTransformCtxPtr transformCtx); |
The transform specific method to write transform information to an XML node node.
xmlSecTransformSetKeyRequirements ()
int (*xmlSecTransformSetKeyRequirements)
(xmlSecTransformPtr transform,
xmlSecKeyReqPtr keyReq); |
Transform specific method to set transform's key requirements.
xmlSecTransformSetKeyMethod ()
int (*xmlSecTransformSetKeyMethod) (xmlSecTransformPtr transform,
xmlSecKeyPtr key); |
The transform specific method to set the key for use.
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.
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.
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.
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.
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.
xmlSecTransformExecuteMethod ()
int (*xmlSecTransformExecuteMethod) (xmlSecTransformPtr transform,
int last,
xmlSecTransformCtxPtr transformCtx); |
Transform specific method to process a chunk of data.
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.
xmlSecTransformKlassGetName()
#define xmlSecTransformKlassGetName(klass) |
Macro. Returns transform klass name.
xmlSecTransformIdListId
#define xmlSecTransformIdListId xmlSecTransformIdListGetKlass() |
Transform klasses list klass.
xmlSecTransformIdListGetKlass ()
xmlSecPtrListId xmlSecTransformIdListGetKlass
(void); |
xmlSecTransformIdListFind ()
int xmlSecTransformIdListFind (xmlSecPtrListPtr list,
xmlSecTransformId transformId); |
xmlSecTransformIdListFindByHref ()
xmlSecTransformId xmlSecTransformIdListFindByHref
(xmlSecPtrListPtr list,
const xmlChar *href,
xmlSecTransformUsage usage); |
xmlSecTransformIdListFindByName ()
xmlSecTransformId xmlSecTransformIdListFindByName
(xmlSecPtrListPtr list,
const xmlChar *name,
xmlSecTransformUsage usage); |
xmlSecTransformIdListDebugDump ()
void xmlSecTransformIdListDebugDump (xmlSecPtrListPtr list,
FILE *output); |
xmlSecTransformIdListDebugXmlDump ()
void xmlSecTransformIdListDebugXmlDump
(xmlSecPtrListPtr list,
FILE *output); |
xmlSecTransformIdUnknown
#define xmlSecTransformIdUnknown NULL |
The "unknown" transform id (NULL).
xmlSecTransformBase64Id
#define xmlSecTransformBase64Id |
The base64 encode transform klass.
xmlSecTransformBase64GetKlass ()
xmlSecTransformId xmlSecTransformBase64GetKlass
(void); |
xmlSecTransformBase64SetLineSize ()
void xmlSecTransformBase64SetLineSize
(xmlSecTransformPtr transform,
size_t lineSize); |
Sets the max line size to lineSize.
xmlSecTransformInclC14NId
#define xmlSecTransformInclC14NId |
The regular (inclusive) C14N without comments transform klass.
xmlSecTransformInclC14NGetKlass ()
xmlSecTransformId xmlSecTransformInclC14NGetKlass
(void); |
xmlSecTransformInclC14NWithCommentsId
#define xmlSecTransformInclC14NWithCommentsId |
The regular (inclusive) C14N with comments transform klass.
xmlSecTransformInclC14NWithCommentsGetKlass ()
xmlSecTransformId xmlSecTransformInclC14NWithCommentsGetKlass
(void); |
xmlSecTransformExclC14NId
#define xmlSecTransformExclC14NId |
The exclusive C14N without comments transform klass.
xmlSecTransformExclC14NGetKlass ()
xmlSecTransformId xmlSecTransformExclC14NGetKlass
(void); |
xmlSecTransformExclC14NWithCommentsId
#define xmlSecTransformExclC14NWithCommentsId |
The exclusive C14N with comments transform klass.
xmlSecTransformExclC14NWithCommentsGetKlass ()
xmlSecTransformId xmlSecTransformExclC14NWithCommentsGetKlass
(void); |
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.
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.
xmlSecTransformXPath2Id
#define xmlSecTransformXPath2Id |
xmlSecTransformXPath2GetKlass ()
xmlSecTransformId xmlSecTransformXPath2GetKlass
(void); |
xmlSecTransformXPointerId
#define xmlSecTransformXPointerId |
xmlSecTransformXPointerGetKlass ()
xmlSecTransformId xmlSecTransformXPointerGetKlass
(void); |
xmlSecTransformXPointerSetExpr ()
int xmlSecTransformXPointerSetExpr (xmlSecTransformPtr transform,
const xmlChar *expr,
xmlSecNodeSetType nodeSetType,
xmlNodePtr hereNode); |
xmlSecTransformXsltId
#define xmlSecTransformXsltId |
The XSLT transform klass.
xmlSecTransformXsltGetKlass ()
xmlSecTransformId xmlSecTransformXsltGetKlass
(void); |
xmlSecTransformRemoveXmlTagsC14NId
#define xmlSecTransformRemoveXmlTagsC14NId |
The "remove all xml tags" transform klass (used before base64 transforms).
xmlSecTransformRemoveXmlTagsC14NGetKlass ()
xmlSecTransformId xmlSecTransformRemoveXmlTagsC14NGetKlass
(void); |
|
Aleksey Sanin
|
|