menuDAT

DAT Java, Kotlin Library

Dépôt

Java, Kotlinhome_and_garden
xml
kts

Java Exemple

Service de gestion des certificats DAT

java
// singleton
DatCmsManager manager = DatCmsManager.builder()
        .uri("http://localhost:8088")
        //.intervalOff() // disable auto sync
        .intervalSeconds(60)
        .token("12345678901b")
        .build();

// manual sync
// manager.sync();

String plain = "Unicode 유니코드 ユニコード 万国码 يونيكود यूनिकोड Юникод 🦄💻";
String secure = "Ciphertext 암호문 暗号文 密文 Шифротекст Texte chiffré Geheimtext نص مشفر सिफरपाठ 🔐";

System.out.println("plain : " + plain);
System.out.println("secure : " + secure);

// issue dat
String dat = manager.issue(plain, secure).getOrThrow();
System.out.println("dat : " + dat);

// parse dat
Payload payload = manager.parse(dat).getOrThrow();

String payloadPlain = payload.getPlain();
String payloadSecure = payload.getSecure();

System.out.println("payload plain : " + payloadPlain);
System.out.println("payload secure : " + payloadSecure);

Implémentation manuelle

java
DatManager manager = DatManager.newInstance();
manager.imports(List.of(DatCertificate.generate(
        0,
        System.currentTimeMillis() - 10,
        200,
        100,
        DatSignatureAlgorithm.ECDSA_P256,
        DatCryptoAlgorithm.IV_AES256_GCM
)), false);

String plain = "Unicode 유니코드 ユニコード 万国码 يونيكود यूनिकोड Юникод 🦄💻";
String secure = "Ciphertext 암호문 暗号文 密文 Шифротекст Texte chiffré Geheimtext نص مشفر सिफरपाठ 🔐";

var newDat = manager.issue(plain, secure).getOrThrow();
Payload newPayload = manager.parse(newDat).getOrThrow();
assert plain.equals(newPayload.getPlain());
assert secure.equals(newPayload.getSecure());

Kotlin Exemple

Service de gestion des certificats DAT

kt
// singleton
val manager = builder()
    .uri("http://localhost:8088")
    //.intervalOff() // disable auto sync
    .intervalSeconds(60)
    .token("12345678901b")
    .build()

// manual sync
// manager.sync();

val plain = "Unicode 유니코드 ユニコード 万国码 يونيكود यूनिकोड Юникод 🦄💻"
val secure = "Ciphertext 암호문 暗号文 密文 Шифротекст Texte chiffré Geheimtext نص مشفر सिफरपाठ 🔐"

println("plain : " + plain)
println("secure : " + secure)

// issue dat
val dat = manager.issue(plain, secure).getOrThrow()
println("dat : " + dat)

// parse dat
val payload = manager.parse(dat).getOrThrow()

val payloadPlain = payload.plain
val payloadSecure = payload.secure

println("payload plain : " + payloadPlain)
println("payload secure : " + payloadSecure)

Implémentation manuelle

kt
val manager = newInstance()

manager.imports(List.of(DatCertificate.generate(
    1,
    System.currentTimeMillis() - 10,
    200,
    100,
    DatSignatureAlgorithm.HMAC_SHA384_MFS,
    DatCryptoAlgorithm.IV_AES256_GCM
)), true)


val plain = "Unicode 유니코드 ユニコード 万国码 يونيكود यूनिकोड Юникод 🦄💻"
val secure = "Ciphertext 암호문 暗号文 密文 Шифротекст Texte chiffré Geheimtext نص مشفر सिफरपाठ 🔐"

val newDat = manager.issue(plain, secure).getOrThrow()
val newPayload = manager.parse(newDat).getOrThrow()
assert(plain == newPayload.plain)
assert(secure == newPayload.secure)