Please test the release candidate 1.3.13-rc1 (signature) and let me know if you see any issues. This release is API backward compatible but it is not ABI backward compatible and it has several non-backward compatible behavioral changes noted in the release notes:
- (xmlsec-core, not backward compatible) Fixed several issues with Relationship transform handling.
To restore the old (broken) behaviour, use--relationship-legacyflag (or set the
XMLSEC_DSIG_FLAGS_RELATIONSHIP_LEGACYflag in thexmlSecDSigCtxstruct in your application code). - (xmlsec-core, not backward compatible) Restricted the default enabled reference and transform URIs
to empty and same document URIs only. Use--enabled-reference-uris,--enabled-retrieval-method-uris,
--enabled-key-info-reference-uris, etc. parameters for XMLSec command line tool if local or remote URIs
usage is required (or set corresponding flag in thexmlSecDSigCtxandxmlSecEncCtxstructs in your
application code). Theanyvalue is now accepted by these options to enable all URI types. - (xmlsec-core, not backward compatible) Enforced restrictions on max depth when processing encrypted keys,
key agreements, etc. Use the new--max-encrypted-key-leveloption to control the maximum depth level for
these use cases. (default is 1). - (xmlsec-core, not backward compatible) Include files have been cleaned up to remove unnecessary includes,
fix circular dependencies, etc. - (xmlsec-core, not backward compatible) Removed support for negative values in BN string conversion/parsing helpers;
values are now treated as unsigned magnitudes. - (xmlsec-core, not backward compatible) Added hard cap (adjustable at build time) on maximum number of the
PBKDF2 iterations (1000000 by default). - (xmlsec-openssl, xmlsec-nss, xmlsec-gnutls, xmlsec-mscng, xmlsec-mscrypto, xmlsec-gcrypt,
not backward compatible) Reject zero-length CBC padding blocks in all CBC finalization paths. - (xmlsec-mscng) Added support for using both current user and local machine certificates store for verifying
the certificates (newxmlSecMSCngAppGetCurrentUserCertStoreName()/xmlSecMSCngAppGetLocalMachineCertStoreName()
APIs;xmlSecMSCngAppGetCertStoreNameis now a deprecated alias). - (xmlsec-nss) Hardened CRL verification: CRLs without
thisUpdateare rejected,nextUpdateis enforced
when present, and the CRL issuer certificate is chain-verified with CA usage. - (xmlsec-mscrypto, not backward compatible) Enforced the use of '--crypto-config' command line
option value when opening certificate stores. - (xmlsec-mscrypto, not backward compatible) Removed the fallback definitions for the old 32-bit
MinGW.org toolchain; building the MSCrypto backend now requires the Windows SDK headers provided by
the toolchain (e.g., MinGW-w64 or MSVC). - (xmlsec-build, not backward compatible) Added '-std=c23' compiler flag for building the library
on compilers that support it or '-std=c99' otherwise (this flag was only enabled with --enable-pedantic builds
in the past). - (xmlsec-build, not backward compatible) Added
--enable-hardeningoption toconfigurescript and
hardeningoption toconfigure.ps1script to enable security hardening flags on GCC, Clang, and MSVC
when the compiler version and the target architecture support it (default:yes). - (xmlsec-build) Deprecated the
--enable-secure-memsetoption (memory cleansing is now always built in with
the newxmlSecMemCleanse()function) and removed the test-only--enable-skmoption; the fuzz targets in
apps/oss-fuzz/are now built and run bymake check/nmake checkby default. - (xmlsec-windows) Added
appsoption toconfigure.ps1to control whether the command-line binaries in
theapps/folder are built (default:yes). - Many other small fixes (see commit log for more details).
Many thanks to everyone who submitted patches and bugs!
Best,
Aleksey