From 13a880cc73d62a8f10ab2d0ecc7c2f641a1b2db9 Mon Sep 17 00:00:00 2001 From: Ugljesa Jovanovic Date: Thu, 6 Oct 2022 10:44:54 +0200 Subject: [PATCH] Bump sample to use latest snapshot and add some encryption/decryption to binary --- buildSrc/src/main/kotlin/Deps.kt | 2 +- .../com/ionspin/kotlin/crypto/sample/Sample.kt | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Deps.kt b/buildSrc/src/main/kotlin/Deps.kt index 4ef3b35..608170d 100644 --- a/buildSrc/src/main/kotlin/Deps.kt +++ b/buildSrc/src/main/kotlin/Deps.kt @@ -25,7 +25,7 @@ object Versions { val kotlinBigNumVersion = "0.3.7" val jna = "5.10.0" val kotlinPoet = "1.6.0" - val sampleLibsodiumBindings = "0.8.5-SNAPSHOT" + val sampleLibsodiumBindings = "0.8.8-SNAPSHOT" val ktor = "1.3.2" val timber = "4.7.1" val kodeinVersion = "7.1.0" diff --git a/sample/src/commonMain/kotlin/com/ionspin/kotlin/crypto/sample/Sample.kt b/sample/src/commonMain/kotlin/com/ionspin/kotlin/crypto/sample/Sample.kt index 2e4fb1f..43b38a0 100644 --- a/sample/src/commonMain/kotlin/com/ionspin/kotlin/crypto/sample/Sample.kt +++ b/sample/src/commonMain/kotlin/com/ionspin/kotlin/crypto/sample/Sample.kt @@ -1,5 +1,7 @@ package com.ionspin.kotlin.crypto.sample +import com.ionspin.kotlin.crypto.aead.AuthenticatedEncryptionWithAssociatedData +import com.ionspin.kotlin.crypto.aead.crypto_aead_xchacha20poly1305_ietf_NPUBBYTES import com.ionspin.kotlin.crypto.hash.Hash import com.ionspin.kotlin.crypto.util.LibsodiumRandom import com.ionspin.kotlin.crypto.util.encodeToUByteArray @@ -10,10 +12,24 @@ object Sample { fun runSample() { val random = LibsodiumRandom.buf(32) println("Random: ${random.toHexString()}") + println("Hashed 123 ${hashSomething()}") + encryptThenDecrypt() } fun hashSomething() : String { val hash = Hash.sha512("123".encodeToUByteArray()) return "Hash (SHA512) of 123: ${hash.toHexString()}" } + + fun encryptThenDecrypt() { + val data = LibsodiumRandom.buf(2048) + val associatedData = LibsodiumRandom.buf(256) + val key = AuthenticatedEncryptionWithAssociatedData.xChaCha20Poly1305IetfKeygen() + val nonce = LibsodiumRandom.buf(crypto_aead_xchacha20poly1305_ietf_NPUBBYTES) + val encrypted = AuthenticatedEncryptionWithAssociatedData.xChaCha20Poly1305IetfEncrypt(data, associatedData, nonce, key) + println("Original data ${data.toHexString()}") + println("Encrypted ${encrypted.toHexString()}") + val decrypted = AuthenticatedEncryptionWithAssociatedData.xChaCha20Poly1305IetfDecrypt(encrypted, associatedData, nonce, key) + println("Decrypted ${decrypted.toHexString()}") + } }