DAT Java, Kotlin Library
リポジトリ
Java サンプル
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);
手動実装
javaDatManager 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 サンプル
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)
手動実装
ktval 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)