mirror of
https://gitlab.bixilon.de/bixilon/pixlyzer-physics.git
synced 2025-09-22 11:56:56 -04:00
signature
This commit is contained in:
parent
cf59097c28
commit
b20367c767
@ -70,6 +70,7 @@ object PhysicsExtractor {
|
||||
// MixedFluidExtractor::class.java,
|
||||
|
||||
// DamageExtractor::class.java,
|
||||
ChatSignatureExtractor::class.java,
|
||||
VelocityFlatteningExtractor::class.java,
|
||||
IceWalk::class.java,
|
||||
AbilitiesExtractor::class.java,
|
||||
|
@ -1,7 +1,7 @@
|
||||
package de.bixilon.pixlyzer.physics
|
||||
|
||||
import net.minecraft.block.Blocks
|
||||
import net.minecraft.tag.BlockTags
|
||||
import net.minecraft.registry.tag.BlockTags
|
||||
|
||||
object PhysicsTags {
|
||||
|
||||
|
@ -27,12 +27,12 @@ import net.minecraft.client.world.ClientWorld
|
||||
import net.minecraft.entity.Entity
|
||||
import net.minecraft.network.ClientConnection
|
||||
import net.minecraft.network.NetworkSide
|
||||
import net.minecraft.registry.entry.RegistryEntry
|
||||
import net.minecraft.scoreboard.Scoreboard
|
||||
import net.minecraft.stat.StatHandler
|
||||
import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.util.math.ChunkPos
|
||||
import net.minecraft.util.profiler.DummyProfiler
|
||||
import net.minecraft.util.registry.RegistryEntry
|
||||
import net.minecraft.world.Difficulty
|
||||
import net.minecraft.world.Heightmap
|
||||
import net.minecraft.world.biome.Biome
|
||||
|
@ -32,7 +32,6 @@ class ClientWorldImpl private constructor() : ClientWorld(null, null, null, null
|
||||
override fun playSound(x: Double, y: Double, z: Double, event: SoundEvent?, category: SoundCategory?, volume: Float, pitch: Float, useDistance: Boolean, seed: Long) = Unit
|
||||
override fun playSoundAtBlockCenter(pos: BlockPos?, sound: SoundEvent?, category: SoundCategory?, volume: Float, pitch: Float, useDistance: Boolean) = Unit
|
||||
override fun playSoundFromEntity(except: PlayerEntity?, entity: Entity?, sound: SoundEvent?, category: SoundCategory?, volume: Float, pitch: Float) = Unit
|
||||
override fun playSoundFromEntity(except: PlayerEntity?, entity: Entity?, sound: SoundEvent?, category: SoundCategory?, volume: Float, pitch: Float, seed: Long) = Unit
|
||||
|
||||
|
||||
override fun shouldUpdatePostDeath(entity: Entity?) = true
|
||||
|
@ -1,7 +1,7 @@
|
||||
package de.bixilon.pixlyzer.physics.tests
|
||||
|
||||
import net.minecraft.registry.entry.RegistryEntry
|
||||
import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.util.registry.RegistryEntry
|
||||
import net.minecraft.world.biome.Biome
|
||||
import net.minecraft.world.biome.source.BiomeAccess
|
||||
|
||||
|
@ -0,0 +1,99 @@
|
||||
package de.bixilon.pixlyzer.physics.tests
|
||||
|
||||
import de.bixilon.kutil.base64.Base64Util.fromBase64
|
||||
import de.bixilon.kutil.base64.Base64Util.toBase64
|
||||
import de.bixilon.kutil.uuid.UUIDUtil.toUUID
|
||||
import net.minecraft.network.encryption.Signer
|
||||
import net.minecraft.network.message.LastSeenMessageList
|
||||
import net.minecraft.network.message.MessageBody
|
||||
import net.minecraft.network.message.MessageChain
|
||||
import net.minecraft.network.message.MessageSignatureData
|
||||
import java.security.KeyFactory
|
||||
import java.security.spec.PKCS8EncodedKeySpec
|
||||
import java.time.Instant
|
||||
import java.util.*
|
||||
|
||||
class ChatSignatureExtractor : AbstractExtractor() {
|
||||
val stringKey = System.getenv("PRIVATE_KEY")
|
||||
private val key = KeyFactory.getInstance("RSA").generatePrivate(PKCS8EncodedKeySpec(stringKey.replace("\n", "").replace("\\n", "").removePrefix("-----BEGIN RSA PRIVATE KEY-----").removeSuffix("-----END RSA PRIVATE KEY-----").fromBase64()))
|
||||
private val uuid = "9e6ce7c5-40d3-483e-8e5a-b6350987d65f".toUUID()
|
||||
|
||||
|
||||
@ExtractorMethod
|
||||
fun singing1() {
|
||||
val message = "bixilon began the development during lockdown"
|
||||
val time = Instant.ofEpochMilli(1673102470_1234)
|
||||
val sessionId = "a26b7114-36c4-4eea-acac-108f516ef72d".toUUID()
|
||||
|
||||
val packer = MessageChain(uuid, sessionId).getPacker(Signer.create(this.key, "SHA256withRSA"))
|
||||
val signature = packer.pack(MessageBody(message, time, -4886770986649219020L, LastSeenMessageList.EMPTY))!!
|
||||
result["signature"] = signature.data.toBase64()
|
||||
}
|
||||
|
||||
@ExtractorMethod
|
||||
fun singing2() {
|
||||
val message = "reversing signature code is pita"
|
||||
val time = Instant.ofEpochMilli(1673103191_5678)
|
||||
val sessionId = "79f3da83-a6a1-4d55-9aca-39d5faf4ad8b".toUUID()
|
||||
|
||||
|
||||
val packer = MessageChain(uuid, sessionId).getPacker(Signer.create(this.key, "SHA256withRSA"))
|
||||
val signature = packer.pack(MessageBody(message, time, 1856442944183750824L, LastSeenMessageList.EMPTY))!!
|
||||
result["signature"] = signature.data.toBase64()
|
||||
}
|
||||
|
||||
@ExtractorMethod
|
||||
fun singing3() {
|
||||
val message = "now even with last seen messages. I don't know their purpose."
|
||||
val time = Instant.ofEpochMilli(1673103854_8402)
|
||||
val sessionId = "5c31705b-963c-4832-b8a5-1ee617a4b362".toUUID()
|
||||
|
||||
val lastSeen = LastSeenMessageList(mutableListOf(MessageSignatureData("/OmblHW9CwdAawdE7WtVurRs7umsa/my8EeTT/NY36lqg3HmtAsqyRQ4fXHelw6pOA4o8UroAlmx+inwiEFHXkDICEIVM69vHKapQvoAaeEVrQ4pn9vURTY3GcUVOgr12V3d00odEpwviXaF6kchG1b/pZsLsfpacMiiVHkxZoqolvUNifHQKXVS48Gu1AKkwRw6bkcOKYZpcZgffe6U273rEQQefwzIdT/8F1P04WhiH7SREexVOolkuoKo6gYxXELf5M0BUf0ssG3SS1k8Wr3ys9nzB6hSoEd/ftKqGVxoqeq7pd1GgKfaRWpka8ZNyDpdm8JqvrmlN/phpS5X4Q==".fromBase64()))) // uuid does not matter, bytes are random
|
||||
|
||||
|
||||
val packer = MessageChain(uuid, sessionId).getPacker(Signer.create(this.key, "SHA256withRSA"))
|
||||
val signature = packer.pack(MessageBody(message, time, 6392082609L, lastSeen))!!
|
||||
result["signature"] = signature.data.toBase64()
|
||||
}
|
||||
|
||||
@ExtractorMethod
|
||||
fun singing4() {
|
||||
val message = "ʞ⍧\uDB16\uDFB1іⴎO\uD85E\uDF9A!㛽J˻5&뻝\uD8B9\uDE8F\uDA0C\uDC41\uDB9B\uDD0Fi읣މ猣랒糓\uD8EF\uDFCFk\uDA1D\uDCA4썿ߛ믣Ȣ\uDA51\uDF5B4" // random utf8 chars
|
||||
val time = Instant.ofEpochMilli(1739579479_6302)
|
||||
val sessionId = "232170f7-ef39-4959-bf4a-354145b9483a".toUUID()
|
||||
|
||||
|
||||
val packer = MessageChain(uuid, sessionId).getPacker(Signer.create(this.key, "SHA256withRSA"))
|
||||
val signature = packer.pack(MessageBody(message, time, 6392082609L, LastSeenMessageList.EMPTY))!!
|
||||
result["signature"] = signature.data.toBase64()
|
||||
}
|
||||
|
||||
@ExtractorMethod
|
||||
fun singing5() {
|
||||
val messages = listOf(
|
||||
Pair(
|
||||
"this is the first message :)",
|
||||
Instant.ofEpochMilli(1673104584_7491),
|
||||
),
|
||||
Pair(
|
||||
"this is the second message :)",
|
||||
Instant.ofEpochMilli(1673104585_7492),
|
||||
),
|
||||
Pair(
|
||||
"this is the third and last message :)",
|
||||
Instant.ofEpochMilli(1673104586_7493),
|
||||
)
|
||||
)
|
||||
|
||||
val sessionId = "de2f95c2-8730-47ba-a5aa-8db09fcec48e".toUUID()
|
||||
|
||||
|
||||
val packer = MessageChain(uuid, sessionId).getPacker(Signer.create(this.key, "SHA256withRSA"))
|
||||
|
||||
val signatures: MutableList<String> = mutableListOf()
|
||||
for ((message, time) in messages) {
|
||||
signatures += packer.pack(MessageBody(message, time, 6392082609L, LastSeenMessageList.EMPTY))!!.data.toBase64()
|
||||
}
|
||||
result["signature"] = signatures
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ import de.bixilon.pixlyzer.physics.tests.AbstractExtractor
|
||||
import net.minecraft.block.BlockState
|
||||
import net.minecraft.block.Blocks
|
||||
import net.minecraft.block.TrapdoorBlock
|
||||
import net.minecraft.tag.BlockTags
|
||||
import net.minecraft.registry.tag.BlockTags
|
||||
|
||||
abstract class ClimbingExtractor(protected val block: BlockState) : AbstractExtractor() {
|
||||
|
||||
|
@ -3,7 +3,7 @@ package de.bixilon.pixlyzer.physics.tests.fluid
|
||||
import net.minecraft.block.BlockState
|
||||
import net.minecraft.block.FluidBlock
|
||||
import net.minecraft.fluid.Fluid
|
||||
import net.minecraft.tag.TagKey
|
||||
import net.minecraft.registry.tag.TagKey
|
||||
|
||||
object FluidUtil {
|
||||
|
||||
|
@ -3,7 +3,7 @@ package de.bixilon.pixlyzer.physics.tests.fluid.still
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.pixlyzer.physics.tests.ExtractorMethod
|
||||
import net.minecraft.block.Blocks
|
||||
import net.minecraft.tag.FluidTags
|
||||
import net.minecraft.registry.tag.FluidTags
|
||||
|
||||
class LavaStillExtractor : StillFluidExtractor(Blocks.LAVA.unsafeCast(), FluidTags.LAVA) {
|
||||
|
||||
|
@ -7,7 +7,7 @@ import de.bixilon.pixlyzer.physics.tests.fluid.FluidUtil.addTags
|
||||
import de.bixilon.pixlyzer.physics.tests.fluid.FluidUtil.withLevel
|
||||
import net.minecraft.block.Blocks
|
||||
import net.minecraft.block.FluidBlock
|
||||
import net.minecraft.tag.FluidTags
|
||||
import net.minecraft.registry.tag.FluidTags
|
||||
|
||||
class MixedFluidExtractor : AbstractExtractor() {
|
||||
private val lava = Blocks.LAVA.unsafeCast<FluidBlock>()
|
||||
|
@ -6,7 +6,7 @@ import de.bixilon.pixlyzer.physics.tests.fluid.FluidUtil.withLevel
|
||||
import net.minecraft.block.Blocks
|
||||
import net.minecraft.block.FluidBlock
|
||||
import net.minecraft.fluid.Fluid
|
||||
import net.minecraft.tag.TagKey
|
||||
import net.minecraft.registry.tag.TagKey
|
||||
|
||||
abstract class StillFluidExtractor(
|
||||
protected val fluid: FluidBlock,
|
||||
|
@ -3,7 +3,7 @@ package de.bixilon.pixlyzer.physics.tests.fluid.still
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.pixlyzer.physics.tests.ExtractorMethod
|
||||
import net.minecraft.block.Blocks
|
||||
import net.minecraft.tag.FluidTags
|
||||
import net.minecraft.registry.tag.FluidTags
|
||||
|
||||
class WaterStillExtractor : StillFluidExtractor(Blocks.WATER.unsafeCast(), FluidTags.WATER) {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user