Package: src:lasso Version: 2.8.2-9 Severity: normal Hi,
prompted by 1106888 I just decided to file the bugs. I have no plans to drive this transition, though. lasso FTBFS with xmlsec 1.3.x - as in experimental. It looks like xmlSecCryptoAppKeyLoad is gone and now xmlSecCryptoAppKeyLoadEx should be used instead[1]? make[6]: Entering directory '/build/reproducible-path/lasso-2.8.2/lasso/xml' /bin/bash ../../libtool --tag=CC --mode=compile x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../.. -I../../lasso -I../.. -I../.. -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/libxml2 -I/usr/include/xmlsec1 -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_OPENSSL3_ENGINES=1 -DXMLSEC_NO_FTP=1 -DXMLSEC_NO_HTTP=1 -DXMLSEC_NO_MD5=1 -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DLASSO_INTERNALS -DG_LOG_DOMAIN=\"lasso\" -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lasso-2.8.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -MT tools.lo -MD -MP -MF .deps/tools.Tpo -c -o tools.lo tools.c libtool: compile: x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../.. -I../../lasso -I../.. -I../.. -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/libxml2 -I/usr/include/xmlsec1 -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_OPENSSL3_ENGINES=1 -DXMLSEC_NO_FTP=1 -DXMLSEC_NO_HTTP=1 -DXMLSEC_NO_MD5=1 -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_NO_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DLASSO_INTERNALS -DG_LOG_DOMAIN=\"lasso\" -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/lasso-2.8.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -MT tools.lo -MD -MP -MF .deps/tools.Tpo -c tools.c -fPIC -DPIC -o .libs/tools.o tools.c: In function 'lasso_get_public_key_from_pem_file': tools.c:312:35: error: implicit declaration of function 'xmlSecCryptoAppKeyLoad'; did you mean 'xmlSecCryptoAppKeyLoadEx'? [-Wimplicit-function-declaration] 312 | pub_key = xmlSecCryptoAppKeyLoad(file, | ^~~~~~~~~~~~~~~~~~~~~~ | xmlSecCryptoAppKeyLoadEx tools.c:312:33: error: assignment to 'xmlSecKeyPtr' {aka 'struct _xmlSecKey *'} from 'int' makes pointer from integer without a cast [-Wint-conversion] 312 | pub_key = xmlSecCryptoAppKeyLoad(file, | ^ tools.c: In function 'lasso_get_public_key_from_private_key_file': tools.c:381:16: error: returning 'int' from a function with return type 'xmlSecKeyPtr' {aka 'struct _xmlSecKey *'} makes pointer from integer without a cast [-Wint-conversion] 381 | return xmlSecCryptoAppKeyLoad(private_key_file, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 382 | xmlSecKeyDataFormatPem, NULL, NULL, NULL); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from private.h:36, from tools.c:37: tools.c: In function 'lasso_base64_decode': tools.c:2553:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 2553 | lasso_transfer_string(*buffer, *((char**)&out)); | ~^~~~~~~~~~~~~ ../utils.h:501:34: note: in definition of macro 'lasso_transfer_full' 501 | (dest) = (void*)(src); \ | ^~~ tools.c:2553:17: note: in expansion of macro 'lasso_transfer_string' 2553 | lasso_transfer_string(*buffer, *((char**)&out)); | ^~~~~~~~~~~~~~~~~~~~~ tools.c:2553:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 2553 | lasso_transfer_string(*buffer, *((char**)&out)); | ~^~~~~~~~~~~~~ ../utils.h:502:18: note: in definition of macro 'lasso_transfer_full' 502 | (src) = NULL; \ | ^~~ tools.c:2553:17: note: in expansion of macro 'lasso_transfer_string' 2553 | lasso_transfer_string(*buffer, *((char**)&out)); | ^~~~~~~~~~~~~~~~~~~~~ make[6]: *** [Makefile:796: tools.lo] Error 1 make[6]: Leaving directory '/build/reproducible-path/lasso-2.8.2/lasso/xml' make[5]: *** [Makefile:836: all-recursive] Error 1 make[5]: Leaving directory '/build/reproducible-path/lasso-2.8.2/lasso/xml' make[4]: *** [Makefile:742: all-recursive] Error 1 make[4]: Leaving directory '/build/reproducible-path/lasso-2.8.2/lasso' make[3]: *** [Makefile:566: all] Error 2 make[3]: Leaving directory '/build/reproducible-path/lasso-2.8.2/lasso' make[2]: *** [Makefile:593: all-recursive] Error 1 make[2]: Leaving directory '/build/reproducible-path/lasso-2.8.2' make[1]: *** [Makefile:500: all] Error 2 make[1]: Leaving directory '/build/reproducible-path/lasso-2.8.2' make: *** [debian/rules:59: build-stamp] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 Regards, Rene [1] git diff debian/1.2.39-5 debian/1.3.7-1 | grep xmlSecCryptoAppKeyLoad - key = xmlSecCryptoAppKeyLoad(files, format, pwd, + key = xmlSecCryptoAppKeyLoadEx(files, type, format, pwd, xmlSecCryptoAppGetDefaultPwdCallback(), (void*)files); - fprintf(stderr, "Error: xmlSecCryptoAppKeyLoad failed: file=%s\n", + fprintf(stderr, "Error: xmlSecCryptoAppKeyLoadEx failed: file=%s\n", - key = xmlSecCryptoAppKeyLoad(engineAndKeyId, keyFormat, pwd, + key = xmlSecCryptoAppKeyLoadEx(engineAndKeyId, type, keyFormat, pwd, - fprintf(stderr, "Error: xmlSecCryptoAppKeyLoad failed: file=%s\n", + fprintf(stderr, "Error: xmlSecCryptoAppKeyLoadEx failed: engineAndKeyId=%s\n", - key = xmlSecCryptoAppKeyLoad(filename, xmlSecKeyDataFormatPkcs12, pwd, + key = xmlSecCryptoAppKeyLoadEx(filename, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPkcs12, pwd, - fprintf(stderr, "Error: xmlSecCryptoAppKeyLoad failed: filename=%s\n", + fprintf(stderr, "Error: xmlSecCryptoAppKeyLoadEx failed: filename='%s'\n", -<a class="link" href="xmlsec-app.html#xmlSecCryptoAppKeyLoad" title="xmlSecCryptoAppKeyLoad ()">xmlSecCryptoAppKeyLoad</a> <span class="c_punctuation">()</span> +<a class="link" href="xmlsec-app.html#xmlSecCryptoAppKeyLoadEx" title="xmlSecCryptoAppKeyLoadEx ()">xmlSecCryptoAppKeyLoadEx</a> <span class="c_punctuation">()</span> -<a name="xmlSecCryptoAppKeyLoad"></a><h3>xmlSecCryptoAppKeyLoad ()</h3> +<a name="xmlSecCryptoAppKeyLoadEx"></a><h3>xmlSecCryptoAppKeyLoadEx ()</h3> -xmlSecCryptoAppKeyLoad (<em class="parameter"><code>const <font><span class="type">char</span></font> *filename</code></em>, +xmlSecCryptoAppKeyLoadEx (<em class="parameter"><code>const <font><span class="type">char</span></font> *filename</code></em>, -<a name="xmlSecCryptoAppKeyLoad.parameters"></a><h4>Parameters</h4> +<a name="xmlSecCryptoAppKeyLoadEx.parameters"></a><h4>Parameters</h4> @@ -2053,6 +2896,11 @@ xmlSecCryptoAppKeyLoad (<em class="parameter"><code>const <font><span class="typ @@ -2076,7 +2924,7 @@ xmlSecCryptoAppKeyLoad (<em class="parameter"><code>const <font><span class="typ -<a name="xmlSecCryptoAppKeyLoad.returns"></a><h4>Returns</h4> +<a name="xmlSecCryptoAppKeyLoadEx.returns"></a><h4>Returns</h4> -For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass +For uniformity, call xmlSecCryptoAppKeyLoadEx instead of this function. Pass - key = xmlSecCryptoAppKeyLoad((const char*)name, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + key = xmlSecCryptoAppKeyLoadEx((const char*)name, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - key = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + key = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); +<li class="listitem"><p><font>xmlSecCryptoAppKeyLoadExMethod</font></p></li> +<li class="listitem"><p><a class="link" href="xmlsec-app.html#xmlSecCryptoAppKeyLoadEx" title="xmlSecCryptoAppKeyLoadEx ()">xmlSecCryptoAppKeyLoadEx</a></p></li> <li class="listitem"><p><font>xmlSecCryptoAppKeyLoadMemoryMethod</font></p></li> <li class="listitem"><p><a class="link" href="xmlsec-app.html#xmlSecCryptoAppKeyLoadMemory" title="xmlSecCryptoAppKeyLoadMemory ()">xmlSecCryptoAppKeyLoadMemory</a></p></li> <li class="listitem"><p><font>xmlSecCryptoAppKeyLoadMethod</font></p></li> -<li class="listitem"><p><a class="link" href="xmlsec-app.html#xmlSecCryptoAppKeyLoad" title="xmlSecCryptoAppKeyLoad ()">xmlSecCryptoAppKeyLoad</a></p></li> - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate | xmlSecKeyDataTypePublic, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - key = xmlSecCryptoAppKeyLoad(files[i], xmlSecKeyDataFormatPem, NULL, NULL, NULL); + key = xmlSecCryptoAppKeyLoadEx(files[i], xmlSecKeyDataTypePrivate | xmlSecKeyDataTypePublic, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - key = xmlSecCryptoAppKeyLoad((const char*)name, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + key = xmlSecCryptoAppKeyLoadEx((const char*)name, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - key = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + key = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + dsigCtx->signKey = xmlSecCryptoAppKeyLoadEx(key_file, xmlSecKeyDataTypePrivate | xmlSecKeyDataTypePublic, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - key = xmlSecCryptoAppKeyLoad(files[i], xmlSecKeyDataFormatPem, NULL, NULL, NULL); + key = xmlSecCryptoAppKeyLoadEx(files[i], xmlSecKeyDataTypePrivate | xmlSecKeyDataTypePublic, xmlSecKeyDataFormatPem, NULL, NULL, NULL); -XMLSEC_EXPORT xmlSecKeyPtr xmlSecCryptoAppKeyLoad (const char *filename, +XMLSEC_EXPORT xmlSecKeyPtr xmlSecCryptoAppKeyLoadEx (const char *filename, -#define xmlSecCryptoAppKeyLoad xmlSecGCryptAppKeyLoad +#define xmlSecCryptoAppKeyLoadEx xmlSecGCryptAppKeyLoadEx #define xmlSecCryptoAppKeyLoadMemory xmlSecGCryptAppKeyLoadMemory -#define xmlSecCryptoAppKeyLoad xmlSecGnuTLSAppKeyLoad +#define xmlSecCryptoAppKeyLoadEx xmlSecGnuTLSAppKeyLoadEx #define xmlSecCryptoAppKeyLoadMemory xmlSecGnuTLSAppKeyLoadMemory -#define xmlSecCryptoAppKeyLoad xmlSecMSCngAppKeyLoad +#define xmlSecCryptoAppKeyLoadEx xmlSecMSCngAppKeyLoadEx #define xmlSecCryptoAppKeyLoadMemory xmlSecMSCngAppKeyLoadMemory -#define xmlSecCryptoAppKeyLoad xmlSecMSCryptoAppKeyLoad +#define xmlSecCryptoAppKeyLoadEx xmlSecMSCryptoAppKeyLoadEx #define xmlSecCryptoAppKeyLoadMemory xmlSecMSCryptoAppKeyLoadMemory -#define xmlSecCryptoAppKeyLoad xmlSecNssAppKeyLoad +#define xmlSecCryptoAppKeyLoadEx xmlSecNssAppKeyLoadEx #define xmlSecCryptoAppKeyLoadMemory xmlSecNssAppKeyLoadMemory -#define xmlSecCryptoAppKeyLoad xmlSecOpenSSLAppKeyLoad +#define xmlSecCryptoAppKeyLoadEx xmlSecOpenSSLAppKeyLoadEx #define xmlSecCryptoAppKeyLoadMemory xmlSecOpenSSLAppKeyLoadMemory * xmlSecCryptoAppKeyLoadMethod: @@ -249,6 +296,26 @@ typedef xmlSecKeyPtr (*xmlSecCryptoAppKeyLoadMethod) (const c + * xmlSecCryptoAppKeyLoadExMethod: +typedef xmlSecKeyPtr (*xmlSecCryptoAppKeyLoadExMethod) (const char *filename, * xmlSecCryptoAppKeyLoadMemoryMethod: @@ -278,7 +345,7 @@ typedef xmlSecKeyPtr (*xmlSecCryptoAppKeyLoadMemoryMethod) (const x - * For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass + * For uniformity, call xmlSecCryptoAppKeyLoadEx instead of this function. Pass - * For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass + * For uniformity, call xmlSecCryptoAppKeyLoadEx instead of this function. Pass xmlSecCryptoAppKeyLoadMethod cryptoAppKeyLoad; + xmlSecCryptoAppKeyLoadExMethod cryptoAppKeyLoadEx; xmlSecCryptoAppKeyLoadMemoryMethod cryptoAppKeyLoadMemory; -#define xmlSecCryptoAppKeyLoad xmlSecSkeletonAppKeyLoad -#define xmlSecCryptoAppKeyLoadMemory xmlSecSkeletonAppKeyLoadMemory - * xmlSecCryptoAppKeyLoad: + * xmlSecCryptoAppKeyLoadEx: -xmlSecCryptoAppKeyLoad(const char *filename, xmlSecKeyDataFormat format, +xmlSecCryptoAppKeyLoadEx(const char *filename, xmlSecKeyDataType type, xmlSecKeyDataFormat format, @@ -1461,7 +2056,7 @@ xmlSecCryptoAppKeyLoadMemory(const xmlSecByte* data, xmlSecSize dataSize, xmlSec - * For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass + * For uniformity, call xmlSecCryptoAppKeyLoadEx instead of this function. Pass