DAT Java and Kotlin Library
Repository
Maven
xml
<dependency>
<groupId>me.saro</groupId>
<artifactId>dat</artifactId>
<version>latest</version>
</dependency>Gradle
kts
implementation("me.saro:dat:latest")Java Example
Define Singleton DatManager
java
DatManager manager = DatManager.newInstance();Get Certificate
- From DAT CMSjava
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:8088/certificates")) .build(); String body = client.send(request, HttpResponse.BodyHandlers.ofString()).body(); System.out.println("get certificate :"); System.out.println(body); // import certificate manager.imports(body, false); System.out.println("certificate " + manager.exportsIds().size() + " imported."); - Generate Certificatejava
DatCertificate certificate = DatCertificate.generate( 0, DatSignatureAlgorithm.P256, DatCryptoAlgorithm.AES128GCMN, unixTime - 1, // issue begin time (unix time) unixTime + 1800, // issue end time (unix time) 1800 // DAT lifetime (seconds) ); manager.imports(List.of(certificate), false);
Issue / Parse
java
// example data
String plainData = "plain data 유니코드 !!!";
String secureData = ">! secure data 암호화 데이터";
System.out.println("plain : " + plainData);
System.out.println("secure : " + secureData);
// to dat
String dat = manager.issue(plainData, secureData);
System.out.println("dat : " + dat);
// dat to payload
Payload payload = manager.parse(dat);
String payloadPlain = payload.getPlain();
String payloadSecure = payload.getSecure();
System.out.println("payload plain : " + payloadPlain);
System.out.println("payload secure : " + payloadSecure);Kotlin Example
Define Singleton DatManager
kotlin
val manager = newInstance()Get Certificate
- From DAT CMSkotlin
val client = HttpClient.newHttpClient() val request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:8088/certificates")) .build() val body = client.send<String>(request, HttpResponse.BodyHandlers.ofString()).body() println("get certificate :") println(body) - Generate Certificatekotlin
val certificate = generate( 0, DatSignatureAlgorithm.P256, DatCryptoAlgorithm.AES128GCMN, unixTime - 1, // issue begin time (unix time) unixTime + 1800, // issue end time (unix time) 1800 // DAT lifetime (seconds) )
Issue / Parse
kotlin
// example data
val plainData = "plain data 유니코드 !!! ABCD"
val secureData = ">! secure data 암호화 데이터 @@@@"
println("plain : $plainData")
println("secure : $secureData")
// issue dat
val dat = manager.issue(plainData, secureData)
println("dat : $dat")
// parse dat
val payload = manager.parse(dat)
val payloadPlain = payload.plain
val payloadSecure = payload.secure
println("payload plain : $payloadPlain")
println("payload secure : $payloadSecure")See
- Github
- Example:
- Use cases