diff --git a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-224.kt b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-224.kt index b10edbd..a4a1d1a 100644 --- a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-224.kt +++ b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-224.kt @@ -38,10 +38,10 @@ object `Blake-224` : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 9).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + length.copyInto(it, size - 8) + } } } diff --git a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-256.kt b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-256.kt index fd61ca9..fdee71d 100644 --- a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-256.kt +++ b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-256.kt @@ -63,12 +63,12 @@ object `Blake-256` : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 10).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - result[result.size - 9] = 0x01 - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + it[size - 9] = 0x01 + length.copyInto(it, size - 8) + } } internal fun compress(h: IntArray, value: ByteArray, offset: Int, m: IntArray, v: IntArray, t: UInt) { diff --git a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-384.kt b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-384.kt index d76db8e..5fb9ee9 100644 --- a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-384.kt +++ b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-384.kt @@ -38,10 +38,10 @@ object `Blake-384` : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 17).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + length.copyInto(it, size - 8) + } } } diff --git a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-512.kt b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-512.kt index 1704470..e8d7964 100644 --- a/src/commonMain/kotlin/com/infendro/hash/blake/Blake-512.kt +++ b/src/commonMain/kotlin/com/infendro/hash/blake/Blake-512.kt @@ -63,12 +63,12 @@ object `Blake-512` : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 18).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - result[result.size - 17] = 0x01 - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + it[size - 17] = 0x01 + length.copyInto(it, size - 8) + } } internal fun compress(h: LongArray, value: ByteArray, offset: Int, m: LongArray, v: LongArray, t: ULong) { diff --git a/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2b.kt b/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2b.kt index 839cd44..6471859 100644 --- a/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2b.kt +++ b/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2b.kt @@ -54,9 +54,9 @@ class Blake2b( private fun pad(value: ByteArray): ByteArray { val size = maxOf(value.size.align(block), block) - val result = ByteArray(size) - value.copyInto(result) - return result + return ByteArray(size).also { + value.copyInto(it) + } } private fun compress( diff --git a/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2s.kt b/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2s.kt index 5c976d8..9af74fd 100644 --- a/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2s.kt +++ b/src/commonMain/kotlin/com/infendro/hash/blake2/Blake2s.kt @@ -54,9 +54,9 @@ class Blake2s( private fun pad(value: ByteArray): ByteArray { val size = maxOf(value.size.align(block), block) - val result = ByteArray(size) - value.copyInto(result) - return result + return ByteArray(size).also { + value.copyInto(it) + } } private fun compress( diff --git a/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt b/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt index 63ee801..be49a2a 100644 --- a/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt +++ b/src/commonMain/kotlin/com/infendro/hash/keccak/Keccak.kt @@ -53,11 +53,11 @@ open class Keccak( private fun pad(value: ByteArray): ByteArray { val size = (value.size + 2).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = domain - result[result.lastIndex] = 0x80U.toByte() - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = domain + it[size - 1] = 0x80U.toByte() + } } private fun absorb(state: LongArray, value: ByteArray, offset: Int, w: LongArray) { diff --git a/src/commonMain/kotlin/com/infendro/hash/md/MD5.kt b/src/commonMain/kotlin/com/infendro/hash/md/MD5.kt index ff3f8f4..c3e7cdc 100644 --- a/src/commonMain/kotlin/com/infendro/hash/md/MD5.kt +++ b/src/commonMain/kotlin/com/infendro/hash/md/MD5.kt @@ -65,11 +65,11 @@ object MD5 : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 9).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - length.copyInto(result, result.size - 8, order = LITTLE_ENDIAN) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + length.copyInto(it, size - 8, order = LITTLE_ENDIAN) + } } private fun process(h: IntArray, value: ByteArray, offset: Int, w: IntArray, v: IntArray) { diff --git a/src/commonMain/kotlin/com/infendro/hash/sha1/SHA1.kt b/src/commonMain/kotlin/com/infendro/hash/sha1/SHA1.kt index 5b54668..912cd4d 100644 --- a/src/commonMain/kotlin/com/infendro/hash/sha1/SHA1.kt +++ b/src/commonMain/kotlin/com/infendro/hash/sha1/SHA1.kt @@ -40,11 +40,11 @@ object SHA1 : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 9).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + length.copyInto(it, size - 8) + } } private fun process(h: IntArray, value: ByteArray, offset: Int, w: IntArray, v: IntArray) { diff --git a/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-256.kt b/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-256.kt index 326f216..a830dde 100644 --- a/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-256.kt +++ b/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-256.kt @@ -47,11 +47,11 @@ object `SHA-256` : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 9).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + length.copyInto(it, size - 8) + } } internal fun process(h: IntArray, value: ByteArray, offset: Int, w: IntArray, v: IntArray) { diff --git a/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-512.kt b/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-512.kt index c0be8cc..2010866 100644 --- a/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-512.kt +++ b/src/commonMain/kotlin/com/infendro/hash/sha2/SHA-512.kt @@ -59,11 +59,11 @@ object `SHA-512` : HashFunction { val length = value.size.toULong() * 8UL val size = (value.size + 17).align(block) - val result = ByteArray(size) - value.copyInto(result) - result[value.size] = 0x80U.toByte() - length.copyInto(result, result.size - 8) - return result + return ByteArray(size).also { + value.copyInto(it) + it[value.size] = 0x80U.toByte() + length.copyInto(it, size - 8) + } } internal fun process(h: LongArray, value: ByteArray, offset: Int, w: LongArray, v: LongArray) {