Skip to content

Commit d9cbf7c

Browse files
committed
Add public key retrieval
1 parent 7320178 commit d9cbf7c

File tree

4 files changed

+34
-0
lines changed

4 files changed

+34
-0
lines changed

src/main/kotlin/org/exploit/keeper/controller/CentralController.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,28 @@ package org.exploit.keeper.controller
22

33
import io.smallrye.mutiny.Uni
44
import jakarta.inject.Singleton
5+
import jakarta.ws.rs.GET
56
import jakarta.ws.rs.POST
67
import jakarta.ws.rs.Path
8+
import jakarta.ws.rs.QueryParam
79
import org.exploit.keeper.constant.KeeperCurve
810
import org.exploit.keeper.constant.SessionType.FROST
911
import org.exploit.keeper.constant.SessionType.GG20
1012
import org.exploit.keeper.extension.decodeBase64
13+
import org.exploit.keeper.model.PublicKeyDto
1114
import org.exploit.keeper.model.TSSResult
1215
import org.exploit.keeper.model.request.Sign
1316
import org.exploit.keeper.service.frost.initiator.FrostSignatureService
1417
import org.exploit.keeper.service.gg20.initiator.GG20SignatureService
18+
import org.exploit.keeper.service.pub.PublicKeyService
1519
import org.jboss.resteasy.reactive.ResponseStatus
1620

1721
@Singleton
1822
@Path("/v1/keeper")
1923
class CentralController(
2024
private val gg20: GG20SignatureService,
2125
private val frost: FrostSignatureService,
26+
private val pub: PublicKeyService
2227
) {
2328
@Path("/ping")
2429
@ResponseStatus(200)
@@ -41,4 +46,9 @@ class CentralController(
4146
curve = KeeperCurve.fromName(body.curve)
4247
)
4348
}
49+
50+
@GET
51+
@Path("/publicKey")
52+
fun publicKey(@QueryParam("keyId") keyId: String): PublicKeyDto =
53+
pub.getPublicKey(keyId)
4454
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package org.exploit.keeper.model
2+
3+
data class PublicKeyDto(val data64: String = "")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.exploit.keeper.service.pub
2+
3+
import jakarta.inject.Singleton
4+
import jakarta.ws.rs.NotFoundException
5+
import org.exploit.keeper.db.LMKDB
6+
import org.exploit.keeper.extension.toBase64
7+
import org.exploit.keeper.model.PublicKeyDto
8+
9+
@Singleton
10+
class NaivePublicKeyService(private val db: LMKDB): PublicKeyService {
11+
override fun getPublicKey(keyId: String): PublicKeyDto {
12+
return db.public.get(keyId)?.let { PublicKeyDto(it.toBase64()) } ?: throw NotFoundException()
13+
}
14+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.exploit.keeper.service.pub
2+
3+
import org.exploit.keeper.model.PublicKeyDto
4+
5+
interface PublicKeyService {
6+
fun getPublicKey(keyId: String): PublicKeyDto
7+
}

0 commit comments

Comments
 (0)