From 8fab26a476b5986112ac09b11e6b8b9cb1bfad68 Mon Sep 17 00:00:00 2001 From: Infendro Date: Thu, 19 Feb 2026 12:57:36 +0100 Subject: [PATCH 1/3] Fix algorithm name in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e693b49..e339d60 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Supported [PRNG](https://en.wikipedia.org/wiki/Pseudorandom_number_generator) algorithms: - LCG -- Xoshiro256++ -- Xoshiro256** +- xoshiro256++ +- xoshiro256** Supported [CSPRNG](https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator) algorithms: - HMAC-DRBG From a28cb7d2f9550cd3f43b68c2016cd0782a772783 Mon Sep 17 00:00:00 2001 From: Infendro Date: Thu, 12 Mar 2026 11:32:31 +0100 Subject: [PATCH 2/3] Upgrade dependencies --- gradle/libs.versions.toml | 6 +++--- src/commonMain/kotlin/com/infendro/random/prng/LCG.kt | 4 +++- .../kotlin/com/infendro/random/prng/Xoshiro256pp.kt | 4 +++- .../kotlin/com/infendro/random/prng/Xoshiro256ss.kt | 4 +++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4215199..07641bb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] infendro = "1.1.0" kotlin = "2.3.0" -bytes = "1.4.0" -hash = "1.6.0" -mac = "1.4.0" +bytes = "1.4.2" +hash = "1.7.0" +mac = "1.5.0" [plugins] infendro = { id = "com.infendro.plugin", version.ref = "infendro" } diff --git a/src/commonMain/kotlin/com/infendro/random/prng/LCG.kt b/src/commonMain/kotlin/com/infendro/random/prng/LCG.kt index 085e622..7ccf4f1 100644 --- a/src/commonMain/kotlin/com/infendro/random/prng/LCG.kt +++ b/src/commonMain/kotlin/com/infendro/random/prng/LCG.kt @@ -6,6 +6,8 @@ import com.infendro.random.PRNG import kotlin.properties.Delegates.notNull class LCG : PRNG() { + private val function = `SHA-256`() + private val a: Long = 25214903917L private val c: Long = 11L private val mask: Long = (1L shl 48) - 1 @@ -13,7 +15,7 @@ class LCG : PRNG() { private var x: Long by notNull() override fun seed(seed: ByteArray) { - x = `SHA-256`.hash(seed).toLong() and mask + x = function.hash(seed).toLong() and mask } override fun generate(): Int { diff --git a/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256pp.kt b/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256pp.kt index ff60ce8..1297334 100644 --- a/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256pp.kt +++ b/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256pp.kt @@ -6,10 +6,12 @@ import com.infendro.random.PRNG import kotlin.properties.Delegates.notNull class Xoshiro256pp : PRNG() { + private val function = `SHA-256`() + private var s: LongArray by notNull() override fun seed(seed: ByteArray) { - s = `SHA-256`.hash(seed).toLongArray() + s = function.hash(seed).toLongArray() } override fun generate(): Int { diff --git a/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256ss.kt b/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256ss.kt index 6fbfb1a..0eeb4db 100644 --- a/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256ss.kt +++ b/src/commonMain/kotlin/com/infendro/random/prng/Xoshiro256ss.kt @@ -6,10 +6,12 @@ import com.infendro.random.PRNG import kotlin.properties.Delegates.notNull class Xoshiro256ss : PRNG() { + private val function = `SHA-256`() + private var s: LongArray by notNull() override fun seed(seed: ByteArray) { - s = `SHA-256`.hash(seed).toLongArray() + s = function.hash(seed).toLongArray() } override fun generate(): Int { From 06d86a66797cc9a889cd9a378b83e516da7be6eb Mon Sep 17 00:00:00 2001 From: Infendro Date: Thu, 12 Mar 2026 11:33:28 +0100 Subject: [PATCH 3/3] Bump version to 1.3.1 --- README.md | 4 ++-- build.gradle.kts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e339d60..688045b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ repositories { } dependencies { - implementation("com.infendro:prng:1.3.0") + implementation("com.infendro:prng:1.3.1") } ``` @@ -29,7 +29,7 @@ dependencies { ```kotlin fun main() { // create PRNG instance - val rng = CSPRNG.HMAC(`SHA-256`) + val rng = CSPRNG.HMAC(`SHA-256`()) // seed PRNG to receive deterministic numbers rng.seed(/* seed */) diff --git a/build.gradle.kts b/build.gradle.kts index 267fc8f..1e920ac 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ import com.infendro.plugin.token import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl group = "com.infendro" -version = "1.3.0" +version = "1.3.1" plugins { alias(libs.plugins.infendro)