pypi / xmlsec
xmlsec
What changed in xmlsec 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-29.
8 breaking1 security2 new APIs and options2 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initxmlsec 113 changes
Breaking changes 8
External URIs are rejected for CipherReference decryption and KeyInfo RetrievalMethod and KeyInfoReference processing; there is no setting to widen this.
The default EncryptedKey nesting limit of 1 now also counts DerivedKey, AgreementMethod, and EncapsulationMechanism.
Iteration counts above 1,000,000 are rejected.
Python 3.10 is now the minimum supported version; Python 3.9 support is dropped.
Signing and verification now allow only empty and same-document reference URIs by default; other URIs raise xmlsec.Error.
Handling bugs were fixed, so OOXML / OPC signature digests can differ from those produced by older versions.
Shutdown is process-final; calling xmlsec.init() afterward in the same process is no longer supported.
All binary wheels now bundle xmlsec1 1.3.13 and follow its stricter defaults and other backward-incompatible behavior changes.
Security 1
A padding length of zero is now rejected as invalid padding.
New APIs and options 2
Adds a property for enabling selected reference URI types when signing or verifying.
Adds a constant for configuring which reference URI types are enabled.
Fixes and other changes 2
New binary wheels are provided for Python 3.15.
Fixes template.create() raising SystemError because of a wrong argument parser signature.