menuDAT

DAT C# Library

Repositori

bash
powershell

Contoh

Layanan Manajemen Sertifikat DAT

cs
// singleton
DatCmsManager manager = await DatCmsManager.Builder()
    .Host("localhost")
    .Port(8088)
    //.IntervalOff() // auto sync off
    .IntervalSeconds(60)
    .Token("12345678901b")
    //.Logger(logger)
    .BuildAsync();

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

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

Console.WriteLine("plain : " + plain);
Console.WriteLine("secure : " + secure);

// issue dat
string dat = manager.Issue(plain, secure);
Console.WriteLine("dat : " + dat);

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

string payloadPlain = payload.Plain;
string payloadSecure = payload.Secure;

Console.WriteLine("payload plain : " + payloadPlain);
Console.WriteLine("payload secure : " + payloadSecure);

Implementasi Manual

cs
var datManager = DatManager.NewInstance();

long now = Unixtime.Now();
var cert = DatCertificate.Generate(
    0,
    now - 10,
    7200,
    1800,
    DatSignatureAlgorithm.EcdsaP256,
    DatCryptoAlgorithm.IvAes128Gcm
);

datManager.Imports(new List<DatCertificate> { cert }, false);

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

string dat = datManager.Issue(plain, secure);

Payload payload = datManager.Parse(dat);

Assert.That(payload.Plain, Is.EqualTo(plain));
Assert.That(payload.Secure, Is.EqualTo(secure));

TestContext.Progress.WriteLine($"PARSE DAT: {dat}");
TestContext.Progress.WriteLine($"plain: {payload.Plain}");
TestContext.Progress.WriteLine($"secure: {payload.Secure}");