Python Storage 1.1.0
Breaking changes
Python minimum version: Raised from 3.6 to 3.9.2. Pin to
keeper-secrets-manager-storage<1.1.0to stay on Python 3.6–3.8.Core SDK minimum version: Raised from any to 17.2.0.
KSM-964 — decrypt_config() autosave default: Changed from
TruetoFalse. Callingdecrypt_config()without arguments no longer writes plaintext credentials to disk. Passautosave=Trueexplicitly to preserve the previous behavior.
KSM-959: All five backends are now thread-safe — added
threading.RLockto prevent data corruption under concurrent reads and writes.KSM-960: Replaced MD5 with SHA-256 for change-detection hashing; fixed Azure AES-GCM nonce from 16 to 12 bytes (NIST SP 800-38D compliance).
KSM-961: Encrypt/decrypt failures now raise instead of silently corrupting storage state.
KSM-962:
delete_all()now removes the backing config file instead of writing an empty encrypted blob.KSM-963:
__save_configwrites to disk before updating in-memory state — prevents in-memory/on-disk divergence on write failure.KSM-965: A plaintext
{}bootstrap config is now correctly re-encrypted on first load instead of falling into the binary decrypt path.KSM-966:
_get_instance_regionandread_config(AWS Secrets Manager provider) now raise on failure instead of silently returning empty values.KSM-967:
AwsSecretStorage.__init__now eagerly loads config on construction, matching all other backends; accepts any valid JSON dict (no longer requiresprivateKey).KSM-972: Non-UTF8 bytes that are not a valid encrypted blob now raise a clear
"is not a valid encrypted config file"exception across all encrypted backends (nfast, AWS KMS, Azure KeyVault).KSM-977:
AwsSecretStorage.__load_config()now raises when the underlying AWS Secrets Manager call fails — previously the exception was logged but not propagated, leavingconfig = {}silently.KSM-978: HsmNfast and AwsKms now raise
"is not a valid encrypted config file"when decryption produces empty output — previously HsmNfast leaked a bareJSONDecodeErrorand AwsKms logged silently without raising, unlike Azure.KSM-979:
__save_configandcreate_config_file_if_missingnow use atomic writes (write to<path>.tmp, thenos.replace) across all three encrypted file backends (Azure KeyVault, AWS KMS, HsmNfast) — a write failure no longer truncates the existing config to 0 bytes, and an encrypt failure increate_config_file_if_missingno longer leaves a 0-byte stub on disk.
Security updates
KSM-777: Raised
keeper-secrets-manager-corefloor to ≥17.2.0, which transitively mandatescryptography>=46.0.5(fixing CVE-2026-26007, ECDH subgroup attack on SECT curves, HIGH, CVSS 8.2),urllib3>=2.6.3, andrequests>=2.32.4(fixing CVE-2024-47081,.netrccredential leak, MEDIUM, CVSS 5.3).
Links:
Last updated
Was this helpful?

