Skip to content
This repository has been archived by the owner on Aug 12, 2024. It is now read-only.

Commit

Permalink
Add testkeys and parser tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Cach30verfl0w committed Jun 14, 2024
1 parent 62ddc8f commit 992a2d1
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package io.karma.advcrypto.linux.tests

import io.karma.advcrypto.keys.Key
import io.karma.advcrypto.keys.enum.KeyFormat
import io.karma.advcrypto.keys.enum.KeyType
import io.karma.advcrypto.linux.utils.KeyReaderHelper
import kotlinx.cinterop.ExperimentalForeignApi
import kotlinx.cinterop.addressOf
import kotlinx.cinterop.usePinned
import okio.FileSystem
import okio.Path.Companion.toPath
import kotlin.experimental.ExperimentalNativeApi
import kotlin.test.Test

@OptIn(ExperimentalForeignApi::class, ExperimentalNativeApi::class)
class KeyReaderHelperTests {
private val fileSystem = FileSystem.SYSTEM

@Test
fun testPEM() {
fileSystem.read("./testkeys/rsa-private-key.pem".toPath()) {
val byteArray = readByteArray()
val size = byteArray.size.toULong()
byteArray.usePinned { array ->
val key = KeyReaderHelper.tryParse(array.addressOf(0), size, Key.PURPOSES_ALL)!!
assert(key.algorithm == "RSA")
assert(key.format == KeyFormat.PEM)
assert(key.type == KeyType.PRIVATE)
}
close()
}

fileSystem.read("./testkeys/rsa-public-key.pem".toPath()) {
val byteArray = readByteArray()
val size = byteArray.size.toULong()
byteArray.usePinned { array ->
val key = KeyReaderHelper.tryParse(array.addressOf(0), size, Key.PURPOSES_ALL)!!
assert(key.algorithm == "RSA")
assert(key.format == KeyFormat.PEM)
assert(key.type == KeyType.PUBLIC)
}
close()
}
}

@Test
fun testDER() {
fileSystem.read("./testkeys/rsa-private-key.der".toPath()) {
val byteArray = readByteArray()
val size = byteArray.size.toULong()
byteArray.usePinned { array ->
val key = KeyReaderHelper.tryParse(array.addressOf(0), size, Key.PURPOSES_ALL)!!
assert(key.algorithm == "RSA")
assert(key.format == KeyFormat.DER)
assert(key.type == KeyType.PRIVATE)
}
close()
}

fileSystem.read("./testkeys/rsa-public-key.der".toPath()) {
val byteArray = readByteArray()
val size = byteArray.size.toULong()
byteArray.usePinned { array ->
val key = KeyReaderHelper.tryParse(array.addressOf(0), size, Key.PURPOSES_ALL)!!
assert(key.algorithm == "RSA")
assert(key.format == KeyFormat.DER)
assert(key.type == KeyType.PUBLIC)
}
close()
}
}

}
1 change: 1 addition & 0 deletions kmp-advcrypto/testkeys/WARNING.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
These keys are only used to test the key reader. Don't use these keys in real-world applications!
Binary file added kmp-advcrypto/testkeys/rsa-private-key.der
Binary file not shown.
28 changes: 28 additions & 0 deletions kmp-advcrypto/testkeys/rsa-private-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDRL2KirGInFB9R
bDN5quewxjY6wC2IkSmPSiZq75p7aLegCiuaKCowdfTD6fUrLBuf/w2qgIoj15Kc
RQIzZl9MYMzNc8BPY/rrKE7d8806aLpt9REzjXaMuzKnk8FoEhsWdxYMaWPQk+Jk
wHh4iosx+gcTjzWHV+jtCkZt9/6yLfQRshVenPB7YEgygJVEOwpNTnICVVgOAwsz
GHyVdei3HEEsatOhX4rjPjYx8V1PQVOrAn4l23HssJhGw+h4/0wmqvKVjT/8OuTy
fAAwf8ozmjEuzA2ONymJieP8HVbDPnQNAO0UffFdx5Tv+500b6E/pBBHzOfXOkg7
0CJNqlhDAgMBAAECggEAQlQYngU0ADkorww0jD0tRweqlVlvdrC0sVstMFY2MTBk
nSnsZm6a5g/Y4zAxjZVoUwSwJCKq6q+FrOhSyNKKoDDHb9PmpCXLH7qBu239Yqpn
hssgv6x47SnEZ4950ZKAJVDwXFIklLP3osPGz0360gd6K/EKY5Zz5ImQCHmMuJk3
sgxZUkNzezes5c4y0vrp+PTetK3IV/5tbNo1OPfOGO3Cky2Bb7N4f/B5y4jmbcuh
TiyVK5i0+FMcKkJNmFQjVxxEyB0654kwBLs0FGvKgOOh6mjuP0Iic51F87qcanZO
/8Zl0xBTfkARDWj1jEaB++/K6NYoIz+ikzk08F6J2QKBgQDyoW+bYzl48rGwOYHa
WXAsUAIukBSalJF+B1bWpmsTH+jNIspbScbvdTZbodjLeB6y2rbyUXFcSB604nHT
hARToj8wNgjabbkusLLzloHoBrNzVc9ZETupmCXQKUuQf+PYbXOAYpmxGMzHNOci
S8pQ2yTI+zjvHITK1P39TwKB+QKBgQDctionXJJZ16vKIwbwd3mqWt1O5xBnwoYs
w2Rwm5XU34wobdSfR98rVpAVTQcSFmGrsBNUStpkX+6m+ty2S1XamNBop00euuXf
dBm+Gg7ZGAl6ZKCsFYudJINUndVmlCJ1ECB/IyP6UE53TjCpMHQ00qJKrEqirjt7
dPp2oJR7GwKBgQDABnxqIpGt44Y1zo2y3e4lY/0WFPn5jXPIps5Xe8ZqkGqTT+GP
dkh34/BtfR4zipHhQ7Be/44UVw/WYRFtMaKq/lG8Okevd/+DsF0w5AFUPVlxAozk
FPt/MedbZBNl/ZG6DIXJKkAxJUuMrZXwUsOAUrA+UHWy6INAdGnAPPPjIQKBgQDU
JpngWgAnMcLkOsUJ0Z32HP9LP5mqUvYMAwkBoNvl0bd0iRXuwPQIQV2fy/m27iKW
GFqMFKNWBkxs3wfWhhWRWIBDiET9++LH5l50N7H8BTnfFujGYLNhql4+sLQWtN9m
LMk/y/RiQF0cGuF1T6jzuV/cbT4Un2t3oRq7emEe7wKBgQCxzcc2KAjM4YvkVnUZ
X4yb5+LSb/z5p7ekrQrr+jrHBiketzyeGDqYTEYRDYnUb4KwO1XNPob6T2dqfpHA
om5+Mj8n64SkX7n56qXnupmTGqAXl1XnJFkCqlHBQHVjWhbhMJmEb13+iyCzGVgn
G/YpJeIggEz7BaVSfqqXAY1SJQ==
-----END PRIVATE KEY-----
Binary file added kmp-advcrypto/testkeys/rsa-public-key.der
Binary file not shown.
9 changes: 9 additions & 0 deletions kmp-advcrypto/testkeys/rsa-public-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0S9ioqxiJxQfUWwzearn
sMY2OsAtiJEpj0omau+ae2i3oAormigqMHX0w+n1Kywbn/8NqoCKI9eSnEUCM2Zf
TGDMzXPAT2P66yhO3fPNOmi6bfURM412jLsyp5PBaBIbFncWDGlj0JPiZMB4eIqL
MfoHE481h1fo7QpGbff+si30EbIVXpzwe2BIMoCVRDsKTU5yAlVYDgMLMxh8lXXo
txxBLGrToV+K4z42MfFdT0FTqwJ+Jdtx7LCYRsPoeP9MJqrylY0//Drk8nwAMH/K
M5oxLswNjjcpiYnj/B1Wwz50DQDtFH3xXceU7/udNG+hP6QQR8zn1zpIO9AiTapY
QwIDAQAB
-----END PUBLIC KEY-----

0 comments on commit 992a2d1

Please sign in to comment.