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
