- Add support for
secp521elliptic curve tocdoc2-get-serverandcdoc2-put-server.
- Log the
Content-Type,OriginandSec-Fetch-*,X-Forwarded-Forheader values for each request. - Added request completion time logging.
- For
POSTrequests, log the size of the request body. - Remove the certificate subject common name (CN) from the log's.
- Add support for tracing.
- Updated the following dependency's:
spring-bootversion3.5.0->4.0.1junit-bomversion5.12.2->6.1.0-M1maven-checkstyle-pluginversion3.5.0->3.6.0maven-failsafe-pluginversion3.5.0->3.5.4maven-release-pluginversion3.1.1->3.3.1jacoco-maven-pluginversion0.8.12->0.8.14jakarta.validation-apiversion3.1.1->4.0.0-M1maven-jar-pluginversion3.4.2->3.5.0maven-antrun-pluginversion3.1.0->3.2.0liquibase-coreversion4.31.1->5.0.1
- Add
logstash-logback-encoderdependency to support OpenTelemetry JSON logging.
- Fix database connection not retried in the expired capsule cleanup job.
- Add
x-expiry-time-adjustedheader toGET /key-capsules/{transactionId}result as specified in cdoc2-key-capsules 2.2.0 OAS Changed the behavior of thex-expiry-timeheader in thePOST /key-capsules/{transactionId}. Now if thex-expiry-timeis larger than the maximum allowed expiry time, then the expiry time is set as the maximum allowed value. If the expiry time value was adjusted, then the headerx-expiry-time-adjustedin the endpointGET /key-capsules/{transactionId}will be set totrue. - Add support for
secp265elliptic curve tocdoc2-get-serverandcdoc2-put-server.
- Add
x-expiry-timeheader toPOST/key-capsules/{transactionId}result as specified in cdoc2-key-capsules 2.2.0 OAS
- Use
spring-boot-dependenciesBOM forcdoc2-serverparent POM for easier version alignment withcdoc2-put-serverandcdoc2-get-serverthat usespring-boot-starter-parentparent - Update
spring-bootversion3.4.3->3.5.0 - Update
org.bouncycastle:bcpkix-jdk18onversion1.80->1.81
- Return
x-expiry-timeheader toGET/key-capsules/{transactionId}as specified in cdoc2-key-capsules 2.1.0 OAS
- Update dependency versions to latest (Spring Boot 3.3.3 -> 3.4.3, BC 1.80 and others)
- remove test dependencies requirements when building with
-Dmaven.test.skip=true(although-Dmaven.test.skip=truedoesn't compile tests, Maven still required test dependencies and failed when those didn't exist)
- Publish
cdoc2-server-liquibaseimage as part of release to allow easier database creation
- Update DB clean-up function of expired key-capsules to correctly report number deleted records
- Fix Junit tests on Windows
- Another try to fix loading pkcs11 (smart-card) test properties from file system
- Use Java 21 JVM for
cdoc2-*-serverDocker images to support Java 21 virtual threads and improved throughput - Update admin-guide.md and add recommendations for running with Docker
- Base release branch version on
cdoc2-put-serverversion notcdoc2-serverpom version (make_release.shscript)
- Fix building on Windows
- Allow loading pkcs11 (smart-card) test properties from file system (previously only classpath was working) by upgrading
cdoc2-libtest dependency to2.0.0
- Upgrade Spring Boot to
3.3.3. Update other 3rd party dependencies to latest. - Update client and server certificates used for unit-tests. Add scripts for future updates
- Move gatling-tests into separate repository
- Move cdoc2-openapi (OpenAPI specifications) into separate repository
- Add GitHub initial workflows
- Buildpacks dependency mirror can be specified as
-Dbp.dependency.mirror=https://mirror.example.orgwhen creating Docker image withmvn spring-boot:build-image
- Bump test dependency 'ee.cyber.cdoc2:cdoc2-lib:1.3.0-SNAPSHOT' to 1.4.0 for get-server and put-server
- Implement '/key-capsules' OAS version 2.1.0 (Support for optional 'x-expiry-time' HTTP header)
- Automatically clean-up (delete) expired key-capsules from the database
Fix release related bugs. No code changes.
- Individual versions for cdoc2-server-db and cdoc2-common-server versions (previously same as cdoc2-server parent )
- Add missing gitlab repository url to get-server
- Expose Prometheus metrics endpoint for servers
- Split repository into cdoc2-java-ref-impl and cdoc2-capsule-server
- Upgraded Spring 2.7.5 -> 3.2.5 + other third-party dependency updates
- Use 'cdoc2' instead of 'cdoc20' everywhere (packages, documents etc). Salt strings remain unchanged (cdoc20kek, cdoc20cek and so)
- Fix jacoco test coverage reports (broken previously)
- Add gitlab CI build files
- Added scripts for making releases and managing versions (see VERSIONING.md)
- Refactoring required to build cdoc2-capsule-server repo without cdoc2-lib dependency (cdoc2-lib dependency is still needed for running tests )
- Upload/consume cdoc2-key-capsule-openapi.yaml as maven artifact
- Added bats tests to check backward compatibility of CDOC2 format with previous releases
- With rename cdoc20->cdoc2 salts values were also incorrectly changed. Broke backward compatibility. Fixed before release 1.2.0
- Added possibility to encrypt and decrypt CDOC2 container with password.
- Removed an option for Symmetric Key creation from plain text, left only Base64 encoded format.
- Added CDOC2 container re-encryption functionality for long-term cryptography.
- Added Bats tests automatic installation.
- Fixed CDOC2 container decryption failure with few files inside.
No changes, only version update in all components.
- Added Jenkins pipeline for uploading CDOC2 jar artifacts to RIA Nexus repository
- Update and run key server instances also on cdoc2-keyserver-02.dev.riaint.ee host
- Rewrite tar processing/ChaCha decryption so that Poly1305 MAC is always checked (even when zlib/tar processing errors happen)
- Added sample CDOC2 containers with keys and configuration files
- Added Unicode Right-To-Left Override (U+202E) to forbidden characters
- Incomplete CDOC container file is removed, when creation of CDOC container fails
- Remove keyserver secrets logging from CLI debug log
- client authenticate certificate revocation checks (OCSP) for get-server
- enable monitoring endpoints, see admin-guide.md
- only tls v1.3 is supported by servers
- remove deprecated ecc-details API
- gatling-tests updates
- constraint violation in OpenAPI spec are reported as http 400 (previously http 500)
- Add error codes for common user errors
- Gatling test updates
Switch to semantic versioning
- Enable POSIX (PAX) extension for tar:
- support long filenames (over 100 bytes)
- support big file sizes (over 8GB)
- always use utf-8 in filenames (even, when platform default is not utf-8)
- Synchronize flatbuffers schema files with Specification v0.7
- Symmetric Key scenario implementation
- Added
cdoc infocli command that lists recipients in CDOC header
- RSA-OAEP server scenario implementation
- Client uses cdoc2-key-capsules API to create/download key capsules
- Server configuration changes for client (single configuration file for create and decrypt
--serverconfiguration) - E-Resident certificate support (find e-resident certificate from SK LDAP)
- Basic filename validation in container (illegal symbols and filenames)
- CLI supports certificate and private key loading from .p12 file (PKCS12)
cdoc listcommand supports--serveroption
- Use RsaPublicKey encoding (RFC8017 RSA Public Key Syntax (A.1.1)) instead of X.509 (Java default encoding)
- Added support for RSA keys in key server
- Added support for 2 key server instances when using cdoc2-cli
- Added key server administration manual
- Support for creating and decrypting CDOC2 documents with RSA keys
- Improved Recipient.KeyLabel field support in cdoc2-lib (PublicKey used for encryption is paired with keyLabel)
- Removed cdoc2-cli -ZZ hidden feature (disable compression for payload)
- Added additional EC infinity point (X: null, Y: null) checks and tests
- The key server is composed of 2 server instances, each with its own configuration.
- The API for creating key capsules does not require client authentication (mTLS).
- Minimal support for Recipient.KeyLabel in FBS header (field is present in FB header, but lib is not filling its value with info from recipient certificate)
- Upgrade flatbuffers-java to version 2.0.8
- Move gatling-tests to main branch
- Key exchange server implementation
- CLI and libary support for key scenario
- Server OpenAPI changes (more strict string format for recipient_pub_key and server_pub_key fields)
- Refactor EllipticCurve code so that EC curve is created from certificate or public key. Interface support other EC curves besides secp384r1. No actual support for other curves implemented yet.
- Generate sender key pair to for recipient public key. Remove option to use pre-generated sender key pair
- Support for decrypting with private decryption key from PKCS11 (support for id-kaart)
- Support for downloading recipient Esteid certificate from SK LDAP
- Documentation updates
- First version server OpenAPI specification
- Use zlib compression instead of gzip compression
- Delete all files, when decryption fails (last file was not deleted)
- EllipticCurve was incorrectly created from fmkEncryption method not Details.EccPublicKey curve (no actual error as both had same byte value).
- Create/decrypt Cdoc2 files with software generated EC keys