[5.20.0] - 2026-04-03
🚀 Features
Support Veeam Backup via KMIP 1.x Protocol
KmipUnexpectedTagExceptionwhen Veeam Backup decodes aGetresponse for an asymmetric key: Cosmian KMS was embedding all object-metadata attributes (includingLink,UniqueIdentifier,State,Name, etc.) inside theKeyValuestructure of the returned key object. KMIP 1.x clients such as Veeam Backup do not expect these non-cryptographic attributes insideKeyValueand fail withUnexpected Tag 66, expected Attribute. Fixed by stripping all embeddedKeyValueattributes forPublicKeyandPrivateKeyobjects in KMIP 1.xGetresponses (perform_response_tweaksinroutes/kmip.rs). Cryptographic metadata (algorithm, length) is still exposed at theKeyBlocklevel.
📚 Documentation
- Fix CLI authentication docs: correct wrong field names (
ssl_client_pem_cert_path/ssl_client_pkcs12_path→tls_client_*), add dedicated bearer/access-token section, and link each TOML example to the correspondingtest_data/configs/client/*.tomlreference file incli_documentation/docs/authentication.md(#895) - Reorganize storage integration docs: move
vcenter.md,synology_dsm.md,veeam.md,openssh.md,pykmip.md,smime.md,user_defined_function_for_pyspark_databricks_in_python/, anddisk_encryption/fromdocumentation/docs/integrations/root into the dedicateddocumentation/docs/integrations/storage/subfolder; updatemkdocs.yml,README.md,documentation/docs/index.md, andCLAUDE.mdaccordingly (#874) - Align README.md with documentation/docs
- Fix refactor and dead links (#898)
🐛 Bug Fixes
KMIP Socket Server
- TLS session resumption failure with mTLS clients: the TCP socket server (
cosmian_kms_server::socket_server) was missing a call toSSL_CTX_set_session_id_context. When client certificate verification (SSL_VERIFY_PEER) is enabled alongside the default TLS session cache, OpenSSL requires a session ID context to be set; without it any session-resumption attempt aborts witherror:0A000115:SSL routines:ssl_get_prev_session:session id context uninitialized. Fixed by callingbuilder.set_session_id_context(b"cosmian_kms_socket")increate_openssl_acceptorbefore building the acceptor.
⚙️ Miscellaneous Tasks
- Refactoring + deduplicate of the UI codebase (#737)