Skip to content

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 CMS
    java
    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 Certificate
    java
    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 CMS
    kotlin
    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 Certificate
    kotlin
        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