It was always needed. However I don't know how exactly do you build it
on Windows.
Aleksey
On 2/4/20 12:20 PM, Floodeenjr, Thomas wrote:
Aleksey,
I was not defining XMLSEC_NO_SIZE_T on Windows. When I added XMLSEC_NO_SIZE_T
to my Windows application, it now runs correctly.
Why was this not needed with xmlsec1-1.2.16, but is now needed with
xmlsec1-1.2.29 ?
Thanks,
-Tom
-----Original Message-----
From: Aleksey Sanin <[email protected]>
Sent: Tuesday, February 4, 2020 1:12 PM
To: Floodeenjr, Thomas <[email protected]>; [email protected]
Subject: Re: [xmlsec] upgrading from xmlsec1-1.2.16 to xmlsec1-1.2.29
This is clear indication that compile time vs runtime time struct is different.
Check the headers/libraries and check how XMLSEC_NO_SIZE_T is defined when
xmlsec and the app are compiled.
Aleksey
On 2/4/20 12:08 PM, Floodeenjr, Thomas wrote:
Aleksey,
The headers and libraries are not mixed.
With xmlsec1-1.2.29, setting the defEncMethodId seems to not work.
encCtx->defEncMethodId = xmlSecTransformAes128CbcId;
With xmlsec1-1.2.16, this gets set to:
+ defEncMethodId 0x00007ff61cc93450
{xmlsec_test.exe!_xmlSecTransformKlass xmlSecOpenSSLAes128CbcKlass}
{klassSize=160 ...} const _xmlSecTransformKlass *
With xmlsec1-1.2.29 it does not get set:
+ defEncMethodId 0x0000000000000000 <NULL> const
_xmlSecTransformKlass *
In addition, the "type" field gets set instead:
0x00007ff77f6d4de0 "˜"
This does not happen in the old code.
-Tom
-----Original Message-----
From: Aleksey Sanin <[email protected]>
Sent: Tuesday, February 4, 2020 12:59 PM
To: Floodeenjr, Thomas <[email protected]>
Subject: Re: [xmlsec] upgrading from xmlsec1-1.2.16 to xmlsec1-1.2.29
xmlsec reports a detailed error. What is it?
Also make sure that you got the correct headers and libraries. Mixing headers
and libraries files from different versions of any library will not work well.
Aleksey
On 2/4/20 11:45 AM, Floodeenjr, Thomas wrote:
It turns out the key manager issue was a red herring. I had some
debug/release runtime issues.
So I am back to the original question:
We are in the process of upgrading from openssl-1.0.2g to
openssl-1.1.1d and from libxml2-2.7.8 to libxml2-2.9.9. We are also
upgrading from
xmlsec1-1.2.16 to xmlsec1-1.2.29.
The code we have been using for years to encrypt our xml is no longer
working.
staticbool S_EncryptXMLNode(xmlDocPtr_doc, xmlNodePtr_node,
xmlSecKeysMngrPtr_keysMngr, xmlChar* _keyName)
{
bool localRet = false;
xmlNodePtr encDataNode = NULL;
xmlSecEncCtxPtrencCtx = NULL;
localRet = SDDInfrasecUtil::CreateEncryptedDataNode(_doc,
xmlSecTypeEncElement, _keyName, &encDataNode);
if(true== localRet) {
encCtx = xmlSecEncCtxCreate(_keysMngr);
if(NULL== encCtx) {
fprintf(stderr,"Error: failed to create encryption
context\n");
xmlFreeNode(encDataNode); encDataNode = NULL;
localRet = false;
} else{
encCtx->defEncMethodId = xmlSecTransformAes128CbcId;
}
}
if((NULL!= encDataNode) && (NULL!= encCtx)) {
if(xmlSecEncCtxXmlEncrypt(encCtx, encDataNode, _node) < 0) {
fprintf(stderr,"Error: encryption failed\n");
xmlFreeNode(encDataNode); encDataNode = NULL;
xmlSecEncCtxDestroy(encCtx); encCtx = NULL;
localRet = false;
} else{
encDataNode = NULL;
}
}
if(NULL!= encCtx) xmlSecEncCtxDestroy(encCtx);
if(NULL!= encDataNode) xmlFreeNode(encDataNode);
returnlocalRet;
}
Encryption fails on this line: if(xmlSecEncCtxXmlEncrypt(encCtx,
encDataNode, _node) < 0) {
It worked before the upgrade.
Is there something we need to change?
Thanks,
-Tom
_______________________________________________
xmlsec mailing list
[email protected]
http://www.aleksey.com/mailman/listinfo/xmlsec
_______________________________________________
xmlsec mailing list
[email protected]
http://www.aleksey.com/mailman/listinfo/xmlsec