diff --git a/src/commonMain/kotlin/com/infendro/encoding/Base45.kt b/src/commonMain/kotlin/com/infendro/encoding/Base45.kt new file mode 100644 index 0000000..c24808a --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/encoding/Base45.kt @@ -0,0 +1,51 @@ +package com.infendro.encoding + +import com.infendro.encoding.exception.IllegalByteException + +object Base45 : Encoding { + private val alphabet: ByteArray = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".encodeToByteArray() + private val base: Int = alphabet.size + + override fun encode(bytes: ByteArray): ByteArray { + val result = mutableListOf() + + for (i in bytes.indices step 2) { + val remaining = minOf(bytes.size - i, 2) + + var value = 0 + for (j in 0..() + + for (i in bytes.indices step 3) { + val remaining = minOf(bytes.size - i, 3) + + var value = 0 + for (j in (0..