diff --git a/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt b/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt index 0c382eb..0365c8c 100644 --- a/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt +++ b/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt @@ -6,10 +6,16 @@ import com.infendro.bytearray.toULongArray import com.infendro.hash.HashFunction import kotlin.math.min -abstract class Keccak internal constructor( +open class Keccak( + override val bytes: Int, private val rate: Int, private val domain: UByte, ) : HashFunction() { + init { + if (bytes < 1) throw IllegalArgumentException() + if (rate !in 8..168) throw IllegalArgumentException() + } + override val block: Int get() = rate @@ -67,7 +73,7 @@ abstract class Keccak internal constructor( addAll( state[i++].toUByteArray(LITTLE_ENDIAN) - .take(min(bytes - size, 8)) + .sliceArray(0..