Hello Mailinglist,

I have looked through the mailing archive and found some hints. One was to look 
at xmlsec1. At this moment I dont get xmlsec1 running. But I found the function 
xmlSecAppEncryptTmpl(). I have created an example (see below). I use it in 
encrypt2.c instead of function encrypt_file().


// The Idea of this func is to create dynamicaly a complete new encryption 
template
// and to use this template to encrypt ONLY SOME sub nodes in the file of param 
xml_file.
int EncryptFile_New(const char* xml_file, const char* key_file) {
        xmlDocPtr doc=0, docTmpl=0;
        xmlNodePtr encDataNode=0, keyInfoNode=0, NodeToEncrypt=0;
        xmlSecEncCtxPtr encCtx=0;

        // Create dynamical a new template:
        docTmpl = xmlNewDoc(BAD_CAST "1.0");
        encDataNode = xmlSecTmplEncDataCreate(docTmpl, 
xmlSecTransformDes3CbcId, 0, 0, 0, 0);
        xmlDocSetRootElement(docTmpl, encDataNode);
        xmlSecTmplEncDataEnsureCipherValue(encDataNode);
        keyInfoNode = xmlSecTmplEncDataEnsureKeyInfo(encDataNode, NULL);
        xmlSecTmplKeyInfoAddKeyName(keyInfoNode, NULL);

        // Load the key:
        encCtx = xmlSecEncCtxCreate(NULL);
        encCtx->encKey = xmlSecKeyReadBinaryFile(xmlSecKeyDataDesId, key_file);
        xmlSecKeySetName(encCtx->encKey, (const unsigned char *)key_file);

        // Encrypt:
        doc = xmlParseFile(xml_file);
        // If I get this code running, I will replace the following code with a 
function
        // that searches for the sub nodes I want to encrypt.
        NodeToEncrypt = xmlDocGetRootElement(doc);
        xmlSecEncCtxXmlEncrypt(encCtx, encDataNode, NodeToEncrypt);
        xmlDocDump(stdout, doc);

        // Cleanup:
        encDataNode = NULL;
        if(encCtx != NULL)
                xmlSecEncCtxDestroy(encCtx);
        if(encDataNode != NULL)
                xmlFreeNode(encDataNode);
        if(doc != NULL)
                xmlFreeDoc(doc);

        return 0;
}

If I start it, I get this error:
#####################################
func=xmlSecEncCtxXmlEncrypt:file=..\src\xmlenc.c:line=417:obj=unknown:subj=unknown:error=14:invalid
 type:type=NULL;last error=1008 (0x000003f0);last error msg=Es wurde versucht, 
auf ein Token zuzugreifen, das nicht vorhanden ist.
#####################################
To translate the last message: There was a try to access a token that was not 
there.


Will this way work at all?
Can someone give me a hint what I'm doing wrong?


Regards

Martin

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
_______________________________________________
xmlsec mailing list
[email protected]
http://www.aleksey.com/mailman/listinfo/xmlsec

Reply via email to