Skip to content

Commit

Permalink
privacy
Browse files Browse the repository at this point in the history
  • Loading branch information
zly2006 committed Aug 12, 2023
1 parent aa30c20 commit 446c762
Show file tree
Hide file tree
Showing 4 changed files with 174 additions and 0 deletions.
73 changes: 73 additions & 0 deletions PRIVACY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Privacy Policy

## Introduction

Reden and RVCHub is part of The Land of StarLight Team (aka. "us", "we", "our", TLSL)

This privacy policy explains how we collect data, process it, and your rights relative to your data.

This policy describes the types of information we may collect from you or that you may provide when you use Reden mod or RVCHub ("Service" or "Website"), and our practices for collecting, using, maintaining, protecting, and disclosing that information.

This policy applies to information we collect:
- On our website
- In minecraft, if you are using our service by a minecraft mod.
- When you interact with our advertising and applications on third-party websites and services, if those applications or advertising include links to this policy.

Please read this policy carefully to understand our policies and practices regarding your information and how we will treat it. If you do not agree with our policies and practices, your choice is not to use our website or service. By accessing or using this website or service, you agree to this privacy policy. This policy may change from time to time (see Changes to the Privacy Policy). Your continued use of this website or service after we make changes is deemed to be acceptance of those changes, so please check the policy periodically for updates.

## What data do we collect?

### RVCHub User Data

When you create an account on RVCHub, we collect:
- Your name
- Your email
- Your profile picture
- Your OAuth data, if you access your account through a 3rd-party account.
- Your address, if applicable
- Your timezone, if applicable

### MC Data

When you use our minecraft mod, we collect:
- Your MC Name and UUID
- Your client version
- Your operating system data
- Your playtime data, including:
- The server/world you are playing, and how long you played
- How long you use our service
- Server setting, including:
- Online mode
- Players on ping screen
- Server ip

When you use our minecraft mod on a server, we also collect:

### Downloading

When you download or view resources from our service, we collect:
- Your IP address
- Your user ID (if applicable)
- The resource or the file downloaded
- Your country
- Some additional metadata about your connection (HTTP headers)

### Uploading

When you share or upload resources to our service, we collect:

## Data retention

Data is retained indefinitely. We do not delete any data unless you request it.

If you want to delete your data, please go to <https://example.com>. We will keep your data for 14 days after your request. You can cancel this request anytime. After 14 days, your data will be deleted automatically forever.

## Access, rectification, erasure, restriction, portability, and objection

Please contact us at <https://example.com>

## Children

## Changes to the Privacy Policy

We keep this privacy policy under regular review and place any updates on this web page. If we do this, we will post the changes on this page, after which such changes will become effective immediately. We will make an effort to keep users updated on any such changes, but because most changes do not affect how we process existing data, a notice will not be sent for all changes.
7 changes: 7 additions & 0 deletions src/main/java/com/github/zly2006/reden/Reden.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.github.zly2006.reden.malilib.MalilibSettingsKt;
import com.github.zly2006.reden.network.ChannelsKt;
import com.github.zly2006.reden.pearl.PearlTask;
import com.github.zly2006.reden.report.ReportKt;
import com.github.zly2006.reden.utils.UtilsKt;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
Expand Down Expand Up @@ -36,6 +37,12 @@ public class Reden implements ModInitializer {

@Override
public void onInitialize() {
if (!ReportKt.checkSignature()) {
throw new RuntimeException("Reden mod is broken, please re-download it.");
}
if (!ReportKt.checkSignature()) {
System.exit(1);
}
ServerLifecycleEvents.SERVER_STARTING.register(UtilsKt::setServer);
PearlTask.Companion.register();
InitializationHandler.getInstance().registerInitializationHandler(() -> {
Expand Down
93 changes: 93 additions & 0 deletions src/main/java/com/github/zly2006/reden/report/Report.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package com.github.zly2006.reden.report

import com.github.zly2006.reden.utils.ResourceLoader
import org.bouncycastle.bcpg.BCPGInputStream
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection
import org.bouncycastle.openpgp.PGPSignature
import org.bouncycastle.openpgp.PGPUtil
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator
import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentVerifierBuilderProvider
import java.io.ByteArrayInputStream


fun checkSignature(): Boolean {
if (ResourceLoader.loadString("cert") == "SOS Dan Saiko") {
println("SOS団最高")
return true
}
val key = """-----BEGIN PGP PUBLIC KEY BLOCK-----
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
2zm0NEF2
=vJJs
-----END PGP PUBLIC KEY BLOCK-----
""".trimIndent()
val keyRing = PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(ByteArrayInputStream(key.toByteArray())), BcKeyFingerprintCalculator())
val signature = PGPSignature(BCPGInputStream.wrap(PGPUtil.getDecoderStream(ByteArrayInputStream(ResourceLoader.loadBytes("cert")))))

keyRing.keyRings.forEach {
it.publicKeys.forEach {
if (signature.keyID == it.keyID) {
signature.init(JcaPGPContentVerifierBuilderProvider().setProvider("BC"), it)
if (signature.verifyCertification(it)) {
val buffer = ByteArray(1024)
var bytesRead: Int
while (ByteArrayInputStream(signature.signatureTrailer).read(buffer).also { bytesRead = it } != -1) {
signature.update(buffer, 0, bytesRead)
}
if (signature.verify()) {
println("OK")
return true
}
}
}
}
}
return false
}
1 change: 1 addition & 0 deletions src/main/resources/cert
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SOS Dan Saiko

0 comments on commit 446c762

Please sign in to comment.