templates

Home Download News Documentation FAQ Tutorial API reference Examples XML Digital Signature Online Verifier XML Encryption XML Canonicalization Reporting Bugs Mailing list Related Authors
# templates ## Name templates -- ## Synopsis
    xmlNodePtr  xmlSecTmplSignatureCreate       (xmlDocPtr doc,
                                                 xmlSecTransformId c14nMethodId,
                                                 xmlSecTransformId signMethodId,
                                                 const xmlChar *id);
    xmlNodePtr  xmlSecTmplSignatureEnsureKeyInfo
                                                (xmlNodePtr signNode,
                                                 const xmlChar *id);
    xmlNodePtr  xmlSecTmplSignatureAddReference (xmlNodePtr signNode,
                                                 xmlSecTransformId digestMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *uri,
                                                 const xmlChar *type);
    xmlNodePtr  xmlSecTmplSignatureAddObject    (xmlNodePtr signNode,
                                                 const xmlChar *id,
                                                 const xmlChar *mimeType,
                                                 const xmlChar *encoding);
    xmlNodePtr  xmlSecTmplSignatureGetSignMethodNode
                                                (xmlNodePtr signNode);
    xmlNodePtr  xmlSecTmplSignatureGetC14NMethodNode
                                                (xmlNodePtr signNode);
    xmlNodePtr  xmlSecTmplReferenceAddTransform (xmlNodePtr referenceNode,
                                                 xmlSecTransformId transformId);
    xmlNodePtr  xmlSecTmplObjectAddSignProperties
                                                (xmlNodePtr objectNode,
                                                 const xmlChar *id,
                                                 const xmlChar *target);
    xmlNodePtr  xmlSecTmplObjectAddManifest     (xmlNodePtr objectNode,
                                                 const xmlChar *id);
    xmlNodePtr  xmlSecTmplManifestAddReference  (xmlNodePtr manifestNode,
                                                 xmlSecTransformId digestMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *uri,
                                                 const xmlChar *type);
    xmlNodePtr  xmlSecTmplEncDataCreate         (xmlDocPtr doc,
                                                 xmlSecTransformId encMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *type,
                                                 const xmlChar *mimeType,
                                                 const xmlChar *encoding);
    xmlNodePtr  xmlSecTmplEncDataEnsureKeyInfo  (xmlNodePtr encNode,
                                                 const xmlChar *id);
    xmlNodePtr  xmlSecTmplEncDataEnsureEncProperties
                                                (xmlNodePtr encNode,
                                                 const xmlChar *id);
    xmlNodePtr  xmlSecTmplEncDataAddEncProperty (xmlNodePtr encNode,
                                                 const xmlChar *id,
                                                 const xmlChar *target);
    xmlNodePtr  xmlSecTmplEncDataEnsureCipherValue
                                                (xmlNodePtr encNode);
    xmlNodePtr  xmlSecTmplEncDataEnsureCipherReference
                                                (xmlNodePtr encNode,
                                                 const xmlChar *uri);
    xmlNodePtr  xmlSecTmplEncDataGetEncMethodNode
                                                (xmlNodePtr encNode);
    xmlNodePtr  xmlSecTmplCipherReferenceAddTransform
                                                (xmlNodePtr cipherReferenceNode,
                                                 xmlSecTransformId transformId);
    xmlNodePtr  xmlSecTmplReferenceListAddDataReference
                                                (xmlNodePtr encNode,
                                                 const xmlChar *uri);
    xmlNodePtr  xmlSecTmplReferenceListAddKeyReference
                                                (xmlNodePtr encNode,
                                                 const xmlChar *uri);
    xmlNodePtr  xmlSecTmplKeyInfoAddKeyName     (xmlNodePtr keyInfoNode,
                                                 const xmlChar *name);
    xmlNodePtr  xmlSecTmplKeyInfoAddKeyValue    (xmlNodePtr keyInfoNode);
    xmlNodePtr  xmlSecTmplKeyInfoAddX509Data    (xmlNodePtr keyInfoNode);
    xmlNodePtr  xmlSecTmplKeyInfoAddRetrievalMethod
                                                (xmlNodePtr keyInfoNode,
                                                 const xmlChar *uri,
                                                 const xmlChar *type);
    xmlNodePtr  xmlSecTmplRetrievalMethodAddTransform
                                                (xmlNodePtr retrMethodNode,
                                                 xmlSecTransformId transformId);
    xmlNodePtr  xmlSecTmplKeyInfoAddEncryptedKey
                                                (xmlNodePtr keyInfoNode,
                                                 xmlSecTransformId encMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *type,
                                                 const xmlChar *recipient);
    int         xmlSecTmplTransformAddHmacOutputLength
                                                (xmlNodePtr transformNode,
                                                 xmlSecSize bitsLen);
    int         xmlSecTmplTransformAddRsaOaepParam
                                                (xmlNodePtr transformNode,
                                                 const xmlSecByte *buf,
                                                 xmlSecSize size);
    int         xmlSecTmplTransformAddXsltStylesheet
                                                (xmlNodePtr transformNode,
                                                 const xmlChar *xslt);
    int         xmlSecTmplTransformAddC14NInclNamespaces
                                                (xmlNodePtr transformNode,
                                                 const xmlChar *prefixList);
    int         xmlSecTmplTransformAddXPath     (xmlNodePtr transformNode,
                                                 const xmlChar *expression,
                                                 const xmlChar **nsList);
    int         xmlSecTmplTransformAddXPath2    (xmlNodePtr transformNode,
                                                 const xmlChar *type,
                                                 const xmlChar *expression,
                                                 const xmlChar **nsList);
    int         xmlSecTmplTransformAddXPointer  (xmlNodePtr transformNode,
                                                 const xmlChar *expression,
                                                 const xmlChar **nsList);
## Description ## Details ### xmlSecTmplSignatureCreate ()
    xmlNodePtr  xmlSecTmplSignatureCreate       (xmlDocPtr doc,
                                                 xmlSecTransformId c14nMethodId,
                                                 xmlSecTransformId signMethodId,
                                                 const xmlChar *id);
Creates new <dsig:Signature/> node with the mandatory <dsig:SignedInfo/>, <dsig:CanonicalizationMethod/>, <dsig:SignatureMethod/> and <dsig:SignatureValue/> children and sub-children. The application is responsible for inserting the returned node in the XML document.
doc : | the pointer to signature document or NULL; in the second case, application must later call xmlSetTreeDoc to ensure that all the children nodes have correct pointer to XML document.
c14nMethodId : | the signature canonicalization method.
signMethodId : | the signature method.
id : | the node id (may be NULL).
Returns : | the pointer to newly created <dsig:Signature/> node or NULL if an error occurs.
### xmlSecTmplSignatureEnsureKeyInfo ()
    xmlNodePtr  xmlSecTmplSignatureEnsureKeyInfo
                                                (xmlNodePtr signNode,
                                                 const xmlChar *id);
Adds (if necessary) <dsig:KeyInfo/> node to the <dsig:Signature/> node signNode.
signNode : | the pointer to <dsig:Signature/> node.
id : | the node id (may be NULL).
Returns : | the pointer to newly created <dsig:KeyInfo/> node or NULL if an error occurs.
### xmlSecTmplSignatureAddReference ()
    xmlNodePtr  xmlSecTmplSignatureAddReference (xmlNodePtr signNode,
                                                 xmlSecTransformId digestMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *uri,
                                                 const xmlChar *type);
Adds <dsig:Reference/> node with given URI (uri), Id (id) and Type (type) attributes and the required children <dsig:DigestMethod/> and <dsig:DigestValue/> to the <dsig:SignedInfo/> child of signNode.
signNode : | the pointer to <dsig:Signature/> node.
digestMethodId : | the reference digest method.
id : | the node id (may be NULL).
uri : | the reference node uri (may be NULL).
type : | the reference node type (may be NULL).
Returns : | the pointer to newly created <dsig:Reference/> node or NULL if an error occurs.
### xmlSecTmplSignatureAddObject ()
    xmlNodePtr  xmlSecTmplSignatureAddObject    (xmlNodePtr signNode,
                                                 const xmlChar *id,
                                                 const xmlChar *mimeType,
                                                 const xmlChar *encoding);
Adds <dsig:Object/> node to the <dsig:Signature/> node signNode.
signNode : | the pointer to <dsig:Signature/> node.
id : | the node id (may be NULL).
mimeType : | the object mime type (may be NULL).
encoding : | the object encoding (may be NULL).
Returns : | the pointer to newly created <dsig:Object/> node or NULL if an error occurs.
### xmlSecTmplSignatureGetSignMethodNode ()
    xmlNodePtr  xmlSecTmplSignatureGetSignMethodNode
                                                (xmlNodePtr signNode);
Gets pointer to <dsig:SignatureMethod/> child of <dsig:KeyInfo/> node.
signNode : | the pointer to <dsig:Signature /> node.
Returns : | pointer to <dsig:SignatureMethod /> node or NULL if an error occurs.
### xmlSecTmplSignatureGetC14NMethodNode ()
    xmlNodePtr  xmlSecTmplSignatureGetC14NMethodNode
                                                (xmlNodePtr signNode);
Gets pointer to <dsig:CanonicalizationMethod/> child of <dsig:KeyInfo/> node.
signNode : | the pointer to <dsig:Signature /> node.
Returns : | pointer to <dsig:CanonicalizationMethod /> node or NULL if an error occurs.
### xmlSecTmplReferenceAddTransform ()
    xmlNodePtr  xmlSecTmplReferenceAddTransform (xmlNodePtr referenceNode,
                                                 xmlSecTransformId transformId);
Adds <dsig:Transform/> node to the <dsig:Reference/> node referenceNode.
referenceNode : | the pointer to <dsig:Reference/> node.
transformId : | the transform method id.
Returns : | the pointer to newly created <dsig:Transform/> node or NULL if an error occurs.
### xmlSecTmplObjectAddSignProperties ()
    xmlNodePtr  xmlSecTmplObjectAddSignProperties
                                                (xmlNodePtr objectNode,
                                                 const xmlChar *id,
                                                 const xmlChar *target);
Adds <dsig:SignatureProperties/> node to the <dsig:Object/> node objectNode.
objectNode : | the pointer to <dsig:Object/> node.
id : | the node id (may be NULL).
target : | the Target (may be NULL).
Returns : | the pointer to newly created <dsig:SignatureProperties/> node or NULL if an error occurs.
### xmlSecTmplObjectAddManifest ()
    xmlNodePtr  xmlSecTmplObjectAddManifest     (xmlNodePtr objectNode,
                                                 const xmlChar *id);
Adds <dsig:Manifest/> node to the <dsig:Object/> node objectNode.
objectNode : | the pointer to <dsig:Object/> node.
id : | the node id (may be NULL).
Returns : | the pointer to newly created <dsig:Manifest/> node or NULL if an error occurs.
### xmlSecTmplManifestAddReference ()
    xmlNodePtr  xmlSecTmplManifestAddReference  (xmlNodePtr manifestNode,
                                                 xmlSecTransformId digestMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *uri,
                                                 const xmlChar *type);
Adds <dsig:Reference/> node with specified URI (uri), Id (id) and Type (type) attributes and the required children <dsig:DigestMethod/> and <dsig:DigestValue/> to the <dsig:Manifest/> node manifestNode.
manifestNode : | the pointer to <dsig:Manifest/> node.
digestMethodId : | the reference digest method.
id : | the node id (may be NULL).
uri : | the reference node uri (may be NULL).
type : | the reference node type (may be NULL).
Returns : | the pointer to newly created <dsig:Reference/> node or NULL if an error occurs.
### xmlSecTmplEncDataCreate ()
    xmlNodePtr  xmlSecTmplEncDataCreate         (xmlDocPtr doc,
                                                 xmlSecTransformId encMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *type,
                                                 const xmlChar *mimeType,
                                                 const xmlChar *encoding);
Creates new <enc:EncryptedData /> node for encryption template.
doc : | the pointer to signature document or NULL; in the later case, application must later call xmlSetTreeDoc to ensure that all the children nodes have correct pointer to XML document.
encMethodId : | the encryption method (may be NULL).
id : | the Id attribute (optional).
type : | the Type attribute (optional)
mimeType : | the MimeType attribute (optional)
encoding : | the Encoding attribute (optional)
Returns : | the pointer newly created <enc:EncryptedData/> node or NULL if an error occurs.
### xmlSecTmplEncDataEnsureKeyInfo ()
    xmlNodePtr  xmlSecTmplEncDataEnsureKeyInfo  (xmlNodePtr encNode,
                                                 const xmlChar *id);
Adds <dsig:KeyInfo/> to the <enc:EncryptedData/> node encNode.
encNode : | the pointer to <enc:EncryptedData/> node.
id : | the Id attrbibute (optional).
Returns : | the pointer to newly created <dsig:KeyInfo/> node or NULL if an error occurs.
### xmlSecTmplEncDataEnsureEncProperties ()
    xmlNodePtr  xmlSecTmplEncDataEnsureEncProperties
                                                (xmlNodePtr encNode,
                                                 const xmlChar *id);
Adds <enc:EncryptionProperties/> node to the <enc:EncryptedData/> node encNode.
encNode : | the pointer to <enc:EncryptedData/> node.
id : | the Id attribute (optional).
Returns : | the pointer to newly created <enc:EncryptionProperties/> node or NULL if an error occurs.
### xmlSecTmplEncDataAddEncProperty ()
    xmlNodePtr  xmlSecTmplEncDataAddEncProperty (xmlNodePtr encNode,
                                                 const xmlChar *id,
                                                 const xmlChar *target);
Adds <enc:EncryptionProperty/> node (and the parent <enc:EncryptionProperties/> node if required) to the <enc:EncryptedData/> node encNode.
encNode : | the pointer to <enc:EncryptedData/> node.
id : | the Id attribute (optional).
target : | the Target attribute (optional).
Returns : | the pointer to newly created <enc:EncryptionProperty/> node or NULL if an error occurs.
### xmlSecTmplEncDataEnsureCipherValue ()
    xmlNodePtr  xmlSecTmplEncDataEnsureCipherValue
                                                (xmlNodePtr encNode);
Adds <enc:CipherValue/> to the <enc:EncryptedData/> node encNode.
encNode : | the pointer to <enc:EncryptedData/> node.
Returns : | the pointer to newly created <enc:CipherValue/> node or NULL if an error occurs.
### xmlSecTmplEncDataEnsureCipherReference ()
    xmlNodePtr  xmlSecTmplEncDataEnsureCipherReference
                                                (xmlNodePtr encNode,
                                                 const xmlChar *uri);
Adds <enc:CipherReference/> node with specified URI attribute uri to the <enc:EncryptedData/> node encNode.
encNode : | the pointer to <enc:EncryptedData/> node.
uri : | the URI attribute (may be NULL).
Returns : | the pointer to newly created <enc:CipherReference/> node or NULL if an error occurs.
### xmlSecTmplEncDataGetEncMethodNode ()
    xmlNodePtr  xmlSecTmplEncDataGetEncMethodNode
                                                (xmlNodePtr encNode);
Gets pointer to <enc:EncrytpionMethod/> node.
encNode : | the pointer to <enc:EcnryptedData /> node.
Returns : | pointer to <enc:EncryptionMethod /> node or NULL if an error occurs.
### xmlSecTmplCipherReferenceAddTransform ()
    xmlNodePtr  xmlSecTmplCipherReferenceAddTransform
                                                (xmlNodePtr cipherReferenceNode,
                                                 xmlSecTransformId transformId);
Adds <dsig:Transform/> node (and the parent <dsig:Transforms/> node) with specified transform methods transform to the <enc:CipherReference/> child node of the <enc:EncryptedData/> node encNode.
cipherReferenceNode : | the pointer to <enc:CipherReference/> node.
transformId : | the transform id.
Returns : | the pointer to newly created <dsig:Transform/> node or NULL if an error occurs.
### xmlSecTmplReferenceListAddDataReference ()
    xmlNodePtr  xmlSecTmplReferenceListAddDataReference
                                                (xmlNodePtr encNode,
                                                 const xmlChar *uri);
Adds <enc:DataReference/> and the parent <enc:ReferenceList/> node (if needed).
encNode : | the pointer to <enc:EncryptedKey/> node.
uri : | uri to reference (optional)
Returns : | the pointer to newly created <enc:DataReference/> node or NULL if an error occurs.
### xmlSecTmplReferenceListAddKeyReference ()
    xmlNodePtr  xmlSecTmplReferenceListAddKeyReference
                                                (xmlNodePtr encNode,
                                                 const xmlChar *uri);
Adds <enc:KeyReference/> and the parent <enc:ReferenceList/> node (if needed).
encNode : | the pointer to <enc:EncryptedKey/> node.
uri : | uri to reference (optional)
Returns : | the pointer to newly created <enc:KeyReference/> node or NULL if an error occurs.
### xmlSecTmplKeyInfoAddKeyName ()
    xmlNodePtr  xmlSecTmplKeyInfoAddKeyName     (xmlNodePtr keyInfoNode,
                                                 const xmlChar *name);
Adds <dsig:KeyName/> node to the <dsig:KeyInfo/> node keyInfoNode.
keyInfoNode : | the pointer to <dsig:KeyInfo/> node.
name : | the key name (optional).
Returns : | the pointer to the newly created <dsig:KeyName/> node or NULL if an error occurs.
### xmlSecTmplKeyInfoAddKeyValue ()
    xmlNodePtr  xmlSecTmplKeyInfoAddKeyValue    (xmlNodePtr keyInfoNode);
Adds <dsig:KeyValue/> node to the <dsig:KeyInfo/> node keyInfoNode.
keyInfoNode : | the pointer to <dsig:KeyInfo/> node.
Returns : | the pointer to the newly created <dsig:KeyValue/> node or NULL if an error occurs.
### xmlSecTmplKeyInfoAddX509Data ()
    xmlNodePtr  xmlSecTmplKeyInfoAddX509Data    (xmlNodePtr keyInfoNode);
Adds <dsig:X509Data/> node to the <dsig:KeyInfo/> node keyInfoNode.
keyInfoNode : | the pointer to <dsig:KeyInfo/> node.
Returns : | the pointer to the newly created <dsig:X509Data/> node or NULL if an error occurs.
### xmlSecTmplKeyInfoAddRetrievalMethod ()
    xmlNodePtr  xmlSecTmplKeyInfoAddRetrievalMethod
                                                (xmlNodePtr keyInfoNode,
                                                 const xmlChar *uri,
                                                 const xmlChar *type);
Adds <dsig:RetrievalMethod/> node to the <dsig:KeyInfo/> node keyInfoNode.
keyInfoNode : | the pointer to <dsig:KeyInfo/> node.
uri : | the URI attribute (optional).
type : | the Type attribute(optional).
Returns : | the pointer to the newly created <dsig:RetrievalMethod/> node or NULL if an error occurs.
### xmlSecTmplRetrievalMethodAddTransform ()
    xmlNodePtr  xmlSecTmplRetrievalMethodAddTransform
                                                (xmlNodePtr retrMethodNode,
                                                 xmlSecTransformId transformId);
Adds <dsig:Transform/> node (and the parent <dsig:Transforms/> node if required) to the <dsig:RetrievalMethod/> node retrMethod.
retrMethodNode : | the pointer to <dsig:RetrievalMethod/> node.
transformId : | the transform id.
Returns : | the pointer to the newly created <dsig:dsig:Transforms/> node or NULL if an error occurs.
### xmlSecTmplKeyInfoAddEncryptedKey ()
    xmlNodePtr  xmlSecTmplKeyInfoAddEncryptedKey
                                                (xmlNodePtr keyInfoNode,
                                                 xmlSecTransformId encMethodId,
                                                 const xmlChar *id,
                                                 const xmlChar *type,
                                                 const xmlChar *recipient);
Adds <enc:EncryptedKey/> node with given attributes to the <dsig:KeyInfo/> node keyInfoNode.
keyInfoNode : | the pointer to <dsig:KeyInfo/> node.
encMethodId : | the encryption method (optional).
id : | the Id attribute (optional).
type : | the Type attribute (optional).
recipient : | the Recipient attribute (optional).
Returns : | the pointer to the newly created <enc:EncryptedKey/> node or NULL if an error occurs.
### xmlSecTmplTransformAddHmacOutputLength ()
    int         xmlSecTmplTransformAddHmacOutputLength
                                                (xmlNodePtr transformNode,
                                                 xmlSecSize bitsLen);
Creates <dsig:HMACOutputLength/> child for the HMAC transform node node.
transformNode : | the pointer to <dsig:Transform/> node
bitsLen : | the required length in bits
Returns : | 0 on success and a negatie value otherwise.
### xmlSecTmplTransformAddRsaOaepParam ()
    int         xmlSecTmplTransformAddRsaOaepParam
                                                (xmlNodePtr transformNode,
                                                 const xmlSecByte *buf,
                                                 xmlSecSize size);
Creates <enc:OAEPParam/> child node in the node.
transformNode : | the pointer to <dsig:Transform/> node.
buf : | the OAEP param buffer.
size : | the OAEP param buffer size.
Returns : | 0 on success or a negative value if an error occurs.
### xmlSecTmplTransformAddXsltStylesheet ()
    int         xmlSecTmplTransformAddXsltStylesheet
                                                (xmlNodePtr transformNode,
                                                 const xmlChar *xslt);
Writes the XSLT transform expression to the node.
transformNode : | the pointer to <dsig:Transform/> node.
xslt : | the XSLT transform exspression.
Returns : | 0 on success or a negative value otherwise.
### xmlSecTmplTransformAddC14NInclNamespaces ()
    int         xmlSecTmplTransformAddC14NInclNamespaces
                                                (xmlNodePtr transformNode,
                                                 const xmlChar *prefixList);
Adds "inclusive" namespaces to the ExcC14N transform node node.
transformNode : | the pointer to <dsig:Transform/> node.
prefixList : | the white space delimited list of namespace prefixes, where "default" indicates the default namespace (optional).
Returns : | 0 if success or a negative value otherwise.
### xmlSecTmplTransformAddXPath ()
    int         xmlSecTmplTransformAddXPath     (xmlNodePtr transformNode,
                                                 const xmlChar *expression,
                                                 const xmlChar **nsList);
Writes XPath transform infromation to the <dsig:Transform/> node node.
transformNode : | the pointer to the <dsig:Transform/> node.
expression : | the XPath expression.
nsList : | the NULL terminated list of namespace prefix/href pairs (optional).
Returns : | 0 for success or a negative value otherwise.
### xmlSecTmplTransformAddXPath2 ()
    int         xmlSecTmplTransformAddXPath2    (xmlNodePtr transformNode,
                                                 const xmlChar *type,
                                                 const xmlChar *expression,
                                                 const xmlChar **nsList);
Writes XPath2 transform infromation to the <dsig:Transform/> node node.
transformNode : | the pointer to the <dsig:Transform/> node.
type : | the XPath2 transform type ("union", "intersect" or "subtract").
expression : | the XPath expression.
nsList : | the NULL terminated list of namespace prefix/href pairs. (optional).
Returns : | 0 for success or a negative value otherwise.
### xmlSecTmplTransformAddXPointer ()
    int         xmlSecTmplTransformAddXPointer  (xmlNodePtr transformNode,
                                                 const xmlChar *expression,
                                                 const xmlChar **nsList);
Writes XPoniter transform infromation to the <dsig:Transform/> node node.
transformNode : | the pointer to the <dsig:Transform/> node.
expression : | the XPath expression.
nsList : | the NULL terminated list of namespace prefix/href pairs. (optional).
Returns : | 0 for success or a negative value otherwise.
Aleksey Sanin