- Add
CachedKey, which fetches then holds a cached DEK (Document Encryption Key) for repeated encrypt and decrypt operations without making additional TSP wrap/unwrap calls. This is useful for many cryptographic operations using the same key in quick succession, such as inside a database transaction. Note that this key automatically expires after a short period of time.
- We’ve removed the direct constructors for
TenantSecurityClientand replaced them with a builder-based API. The static TenantSecurityClient.create method is still provided for convenience. - TenantSecurityClient now enforces HTTPS connections to the TSP by default. You can opt out of this restriction using the new
TenantSecurityClient.Builder, usingallowInsecureHttp(true). This should only be done in the case of testing.
- Accidental release. Incomplete. Use 8.0.1 instead.
- No code change, changed publishing to new sonatype.
- Fix issues with shaded jar.
- Update dependencies to fix CVEs.
- Support TSP error code for KMS_ACCOUNT_ISSUE.
KMS_ACCOUNT_ISSUE requires TSP 4.13.0+. If using TSC < 7.2.0 and TSP >= 4.13.0, these errors will come through as UNKNOWN_ERROR.
- Send TSC language/version as headers on requests to the TSP. This will allow the TSP to report TSC versions along with its metrics.
- Encryption now throws a
TscExceptionwhen trying to encrypt a document that has already been IronCore encrypted.- If you have a use case for double-encrypting a document, please open an issue explaining and we can work on accommodating you.
- Crypto exceptions occurring during batch operations will no longer fail the whole operation, but instead be added to the resulting failure list.
- Added
DeterministicTenantSecurityClientsupporting deterministic encryption/decryption operations. - Changed minimum supported Java version to 11.
- Removed deprecated
TenantSecurityClient.rekeyDocumentmethod. - Added
TscExceptionfor exceptions originating from the TSC.
Deterministic encryption functionality requires TSP 4.11.1+.
- Added
KmsExceptionforKmsThrottled.
This new error code will only be returned by TSP 4.4.1+.
- Added
TenantSecurityClient.rekeyEdekmethod - Deprecated
TenantSecurityClient.rekeyDocumentmethod
- Remove javax.annotation from the shaded jar.
- Shade google-http-client and all related jars to increase compatibility with conflicting versions.
- No public api changes, but bumping major version since we've changed the contents of our jar significantly.
- No public api changes. Internal change to increase compatibility with 1.20 google-http-client.
- Added
TenantSecurityClient.rekeyDocumentmethod and supportingRekeyedDocumentKeytype
- Renamed some security events for better consistency
- Added
TenantSecurityClient.logSecurityEventmethod and supportingSecurityEventandEventMetadatatypes - Standardized
EventMetadataandDocumentMetadatato similar interfaces with the TSP - Introduced an exception hierarchy based on TSP error codes.
TenantSecurityKMSExceptionrenamed toTenantSecurityExceptionandKmsException,SecurityEventException, andTspServiceExceptionare subclasses. - Renamed
TenantSecurityKMSClienttoTenantSecurityClient - Removed deprecated list based batch methods
This version of the Tenant Security Java Client will only work with version 3.0.0+ of the Tenant Security Proxy container.
- Use connection pooling for better performance and safer scaling in high-load environments.
- Bumped versions of HTTP libs
- Added a
timeoutoption to theTenantSecurityKMSClientthis timeout is applied to the connection negotiation and the read from the TSP, so the worst case of a very unstable connection is 2x thetimeoutvalue.
- Fixed displayed URL in error message when TSP unwrap endpoint cannot be reached.
- Deprecated the list based versions of
TenantSecurityKMSClient.decryptBatchandTenantSecurityKMSClient.encryptBatchin favor of a Map based interface that allows for partial failure.
This version of the Tenant Security Java Client will only work with version >= 2.0.0 < 4.0.0 of the Tenant Security Proxy container due to a deprecated interface. TSP v3 supports both the old and new interfaces and can be used to migrate TSCs if necessary.
- Deprecated
TenantSecurityKMSException.getErrorMessagein favor ofgetMessageto make the full error message more accessible. - All
TenantSecurityKMSExceptionconstructors accept/set anException.causeif possible.
- Added an error message to the
TenantSecurityKMSExceptionerror that occurs when requests to the Tenant Security Proxy could not be made. This error message will include the URL that was attempted to be reached and the error text from the original exception that occurred. The error code associated with this error will beUNABLE_TO_MAKE_REQUEST.
- Added additional error codes to the
TenantSecurityKMSErrorCodesenum for errors specific to failures when interacting with the tenants KMS. These errors will help differentiate between KMS errors that were caused by network outages, credential errors, etc so that the appropriate error can be communicated to the calling client.KMS_AUTHORIZATION_FAILED: Requests to the tenants KMS failed because the credentials provided in their config failed to authenticate against their KMS. This could be because the credentials were setup incorrectly or because they have been revoked/removed.KMS_CONFIGURATION_INVALID: Requests to the tenants KMS failed because the KMS key configuration was invalid or the permissions for the key that is being wrapped/unwrapped have been revoked/removed. This could be because the key configuration was setup incorrectly or because the key has been revoked/removed.KMS_UNREACHABLE: Requests to the tenants KMS failed because the KMS API wasn't reachable. This could be because of a temporary network outage or service down situation. The Tenant Security Proxy will automatically perform a single retry for the request if this error occurs.- The existing
KMS_WRAP_FAILED/KMS_UNWRAP_FAILEDerror codes will now only occur when the request to the tenants KMS was successful but did not return the expected response.
- The
TenantSecurityKMSExceptionclass now also contains the error message returned from Tenant Security Proxy and can be retrieved by callingex.getErrorMessage(). This message will have additional context for the error that occurred within the Tenant Security Proxy and will be specific to the KMS type being used. This message should be very helpful in logs to determine why requests are failing to the tenants KMS.
- Fixed a bug where the user agent header send on requests to the Tenant Security Proxy would grow unbounded and eventually cause HTTP 413 errors.
- Added support for Java8 compatibility.
This version of the Tenant Security Java Client will only work with version >= 1.2.0 < 4.0.0 of the Tenant Security Proxy container due to a deprecated interface. TSP v3 supports both the old and new interfaces and can be used to migrate TSCs if necessary.
This version of the Tenant Security Java Client will only work with version >= 1.2.0 < 4.0.0 of the Tenant Security Proxy container due to a deprecated interface. TSP v3 supports both the old and new interfaces and can be used to migrate TSCs if necessary.