Java: Fix libsignal submodule build after refactor of Curve.java to Kotlin

Sets Kotlin compiler output to JDK_17 and makes the changes to the Curve object non-breaking
This commit is contained in:
andrew-signal
2025-05-27 09:36:32 -04:00
committed by GitHub
parent 3181c25a23
commit 73ba569f66
2 changed files with 65 additions and 48 deletions

View File

@@ -9,55 +9,65 @@ package org.signal.libsignal.protocol.ecc
import org.signal.libsignal.protocol.InvalidKeyException
const val DJB_TYPE = 0x05
class Curve {
companion object {
const val DJB_TYPE = 0x05
fun generateKeyPair(): ECKeyPair {
val privateKey = ECPrivateKey.generate()
val publicKey = privateKey.publicKey()
return ECKeyPair(publicKey, privateKey)
}
@JvmStatic
fun generateKeyPair(): ECKeyPair {
val privateKey = ECPrivateKey.generate()
val publicKey = privateKey.publicKey()
return ECKeyPair(publicKey, privateKey)
}
@Throws(InvalidKeyException::class)
fun decodePoint(bytes: ByteArray?, offset: Int): ECPublicKey {
if (bytes == null || bytes.size - offset < 1) {
throw InvalidKeyException("No key type identifier")
@JvmStatic
@Throws(InvalidKeyException::class)
fun decodePoint(bytes: ByteArray?, offset: Int): ECPublicKey {
if (bytes == null || bytes.size - offset < 1) {
throw InvalidKeyException("No key type identifier")
}
return ECPublicKey(bytes, offset)
}
@JvmStatic
@Throws(InvalidKeyException::class)
fun decodePrivatePoint(bytes: ByteArray?): ECPrivateKey {
return ECPrivateKey(bytes)
}
@JvmStatic
@Throws(InvalidKeyException::class)
fun calculateAgreement(publicKey: ECPublicKey?, privateKey: ECPrivateKey?): ByteArray {
if (publicKey == null) {
throw InvalidKeyException("public value is null")
}
if (privateKey == null) {
throw InvalidKeyException("private value is null")
}
return privateKey.calculateAgreement(publicKey)
}
@JvmStatic
@Throws(InvalidKeyException::class)
fun verifySignature(signingKey: ECPublicKey?, message: ByteArray?, signature: ByteArray?): Boolean {
if (signingKey == null || message == null || signature == null) {
throw InvalidKeyException("Values must not be null")
}
return signingKey.verifySignature(message, signature)
}
@JvmStatic
@Throws(InvalidKeyException::class)
fun calculateSignature(signingKey: ECPrivateKey?, message: ByteArray?): ByteArray {
if (signingKey == null || message == null) {
throw InvalidKeyException("Values must not be null")
}
return signingKey.calculateSignature(message)
}
}
return ECPublicKey(bytes, offset)
}
@Throws(InvalidKeyException::class)
fun decodePrivatePoint(bytes: ByteArray?): ECPrivateKey {
return ECPrivateKey(bytes)
}
@Throws(InvalidKeyException::class)
fun calculateAgreement(publicKey: ECPublicKey?, privateKey: ECPrivateKey?): ByteArray {
if (publicKey == null) {
throw InvalidKeyException("public value is null")
}
if (privateKey == null) {
throw InvalidKeyException("private value is null")
}
return privateKey.calculateAgreement(publicKey)
}
@Throws(InvalidKeyException::class)
fun verifySignature(signingKey: ECPublicKey?, message: ByteArray?, signature: ByteArray?): Boolean {
if (signingKey == null || message == null || signature == null) {
throw InvalidKeyException("Values must not be null")
}
return signingKey.verifySignature(message, signature)
}
@Throws(InvalidKeyException::class)
fun calculateSignature(signingKey: ECPrivateKey?, message: ByteArray?): ByteArray {
if (signingKey == null || message == null) {
throw InvalidKeyException("Values must not be null")
}
return signingKey.calculateSignature(message)
}