Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extraction of korlibs-crypto #2072

Merged
merged 11 commits into from
Dec 28, 2023
1 change: 1 addition & 0 deletions korge-foundation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ dependencies {
//add("commonTestApi", project(":korge-test"))
commonTestApi(libs.kotlinx.coroutines.test)
commonMainApi(project(":korlibs-time"))
commonMainApi(project(":korlibs-crypto"))
soywiz marked this conversation as resolved.
Show resolved Hide resolved
}

//korlibs.korge.gradle.generate.TemplateGenerator.synchronize(new File(projectDir, "template"))
Expand Down
1 change: 1 addition & 0 deletions korlibs-crypto/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
26 changes: 26 additions & 0 deletions korlibs-crypto/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

import korlibs.*
import korlibs.korge.gradle.generate.*

description = "Korlibs Cryptography Library"

project.extensions.extraProperties.properties.apply {
applyProjectProperties("https://github.com/korlibs/korge/korge-foundation",
"Apache 2.0",
"https://raw.githubusercontent.com/korlibs/korge/master/korge-foundation/LICENSE"
)
}

dependencies {
//add("commonMainImplementation", "org.jetbrains.kotlinx:atomicfu:${libs.versions.kotlinx.atomicfu.get()}")
//add("commonMainApi", "org.jetbrains.kotlinx:atomicfu:${libs.versions.kotlinx.atomicfu.get()}")
//add("jvmTestApi", "org.powermock:powermock-mockito-release-full:1.6.4")
//add("jvmTestApi", "org.fuin:units4j:0.8.4")
//add("jvmTestApi", "org.ow2.asm:asm:8.0.1")
commonMainApi(libs.kotlinx.coroutines.core)
commonMainApi(libs.kotlinx.atomicfu)
//add("commonMainApi", libs.kotlinx.atomicfu)
//add("commonTestApi", project(":korge-test"))
commonTestApi(libs.kotlinx.coroutines.test)
commonMainApi(project(":korlibs-time"))
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package korlibs.crypto

import korlibs.memory.*
import kotlin.experimental.*
import korlibs.internal.arraycopy
import kotlin.experimental.xor

/**
* Symmetric Cipher Mode
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy
import kotlin.random.Random

typealias Padding = CipherPadding
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy

class HMAC {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package korlibs.crypto

import korlibs.encoding.Base64
import korlibs.encoding.Hex
import korlibs.memory.*
import korlibs.internal.arraycopy
import kotlin.math.min

open class HasherFactory(val name: String, val create: () -> Hasher) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy

class PBKDF2 {
companion object {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy
import kotlin.rotateLeft

class SHA1 : SHA(chunkSize = 64, digestSize = 20, name = "SHA1") {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy
import kotlin.rotateRight

class SHA256 : SHA(chunkSize = 64, digestSize = 32) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy

// https://git.suckless.org/sbase/file/libutil/sha512.c.html
// https://git.suckless.org/sbase/file/sha512.h.html
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package korlibs.crypto

import korlibs.memory.*
import korlibs.internal.arraycopy
import kotlin.random.Random

expect fun fillRandomBytes(array: ByteArray)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package korlibs.encoding

import korlibs.encoding.*

object Base64 {
private val TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
private val TABLE_URL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_="
Expand Down
11 changes: 11 additions & 0 deletions korlibs-crypto/src/korlibs/internal/InternalCryptoArrays.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package korlibs.internal

/** Copies [size] elements of [src] starting at [srcPos] into [dst] at [dstPos] */
internal fun arraycopy(src: ByteArray, srcPos: Int, dst: ByteArray, dstPos: Int, size: Int) {
src.copyInto(dst, dstPos, srcPos, srcPos + size)
}

/** Copies [size] elements of [src] starting at [srcPos] into [dst] at [dstPos] */
internal fun arraycopy(src: IntArray, srcPos: Int, dst: IntArray, dstPos: Int, size: Int) {
src.copyInto(dst, dstPos, srcPos, srcPos + size)
}
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ val inCI = isPropertyTrue("CI")
val disabledExtraKorgeLibs = isPropertyTrue("DISABLED_EXTRA_KORGE_LIBS")

include(":korlibs-time")
include(":korlibs-crypto")
include(":korlibs-template")
include(":korge-foundation")
include(":korge-core")
Expand Down