[feat] Abyss Protocol authentication

This commit is contained in:
acite
2025-09-13 17:02:12 +08:00
parent 7d07f19440
commit ffa70d9d34
4 changed files with 34 additions and 5 deletions

View File

@@ -1,5 +1,8 @@
package com.acitelight.aether.service
import com.acitelight.aether.service.AuthManager.db64
import com.acitelight.aether.service.AuthManager.signChallenge
import com.acitelight.aether.service.AuthManager.signChallengeByte
import kotlinx.coroutines.*
import java.io.InputStream
import java.io.OutputStream
@@ -64,6 +67,12 @@ class AbyssStream private constructor(
val remotePub = ByteArray(PUBLIC_KEY_LEN)
readExact(inStream, remotePub, 0, PUBLIC_KEY_LEN)
val ch = ByteArray(32)
readExact(inStream, ch, 0, 32)
val signed = signChallengeByte(localPriv, ch)
writeExact(outStream, signed, 0, signed.size)
readExact(inStream, ch, 0, 16)
// 3) compute shared secret: X25519.scalarMult(private, remotePublic)
val shared = ByteArray(PUBLIC_KEY_LEN)
X25519.scalarMult(localPriv, 0, remotePub, 0, shared, 0)