This repository provides the OpenTDF Java SDK. It will be available from maven central as:
<dependency>
<groupId>io.opentdf/platform</groupId>
<artifactId>sdk</artifactId>
</dependency>
import io.opentdf.platform.sdk.Config;
import io.opentdf.platform.sdk.SDK;
import io.opentdf.platform.sdk.SDKBuilder;
import io.opentdf.platform.sdk.abac.Policy;
import java.io.InputStream;
import java.io.FileInputStream;
public class Example {
public static void main(String[] args) {
SDK sdk =
new SDKBuilder
.clientSecret("myClient", "token")
.platformEndpoint("https://your.cluster/")
.build();
// Encrypt a file
try (InputStream in = new FileInputStream("input.plaintext")) {
Config c = Config.newTDFConfig(Config.withDataAttributes("attr1", "attr2"));
new TDF().createTDF(in, System.out, tdfConfig, sdk.getServices().kas());
}
// Decrypt a file
try (SeekableByteChannel in =
FileChannel.open("input.ciphertext", StandardOpenOption.READ)) {
TDF.Reader reader = new TDF().loadTDF(in, sdk.getServices().kas());
reader.readPayload(System.out);
}
}}
The SDK uses the Bouncy Castle Security library. SDK users may need to register the Bouncy Castle Provider; e.g.:
static{
Security.addProvider(new BouncyCastleProvider());
}
We use slf4j, without providing a backend. We use log4j2 in our tests.
Use the SDKBuilder.withSSL... methods to build an SDKBuilder with:
sdkBuilder.sslFactory(mySSLFactory)
sdkBuilder.sslFactoryFromDirectory(myDirectoryWithCerts)
sdkBuilder.sslFactoryFromKeyStore(keystorepath, keystorePassword)
Create an account, link with GitHub, under User setting, Create a token
[INFO] --- antrun:3.1.0:run (generateSources) @ sdk ---
[INFO] Executing tasks
[INFO] [exec] Failure: too many requests
[INFO] [exec]
[INFO] [exec] Please see https://buf.build/docs/bsr/rate-limits for details about BSR rate limiting.
Snapshots are from main latest
mvn versions:set -DnewVersion=1.2.3-SNAPSHOT
Releases are from tags created by GitHub Release process. Release Please trigger the release process.