Conversation
| this.rootDirectory.resolve(groupPath).resolve(dependency.module).resolve(dependency.version); | ||
| Files.createDirectories(depDirectory); | ||
| final Path depFile = depDirectory.resolve(dependency.module + "-" + dependency.version + ".jar"); | ||
| final MessageDigest md5 = MessageDigest.getInstance("MD5"); |
Check failure
Code scanning / CodeQL
Use of a broken or risky cryptographic algorithm
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI over 1 year ago
To fix the problem, we should replace the use of the MD5 algorithm with a stronger, modern cryptographic hash function. The SHA-256 algorithm is a good choice as it is widely supported and provides a higher level of security.
- General fix: Replace
MessageDigest.getInstance("MD5")withMessageDigest.getInstance("SHA-256"). - Detailed fix: Update the code in the
validatemethod to use SHA-256 instead of MD5 for computing file hashes. - Specific changes: Modify the line where the
MessageDigestinstance is created and ensure that the rest of the code correctly handles the SHA-256 hash.
| @@ -117,3 +117,3 @@ | ||
| final Path depFile = depDirectory.resolve(dependency.module + "-" + dependency.version + ".jar"); | ||
| final MessageDigest md5 = MessageDigest.getInstance("MD5"); | ||
| final MessageDigest sha256 = MessageDigest.getInstance("SHA-256"); | ||
|
|
||
| @@ -130,5 +130,5 @@ | ||
| final byte[] bytes = Files.readAllBytes(depFile); | ||
| final String fileMd5 = InstallerUtils.toHexString(md5.digest(bytes)); | ||
| final String fileSha256 = InstallerUtils.toHexString(sha256.digest(bytes)); | ||
|
|
||
| if (dependency.md5.equals(fileMd5)) { | ||
| if (dependency.sha256.equals(fileSha256)) { | ||
| LibraryManager.LOGGER.debug("'{}' verified!", depFile); | ||
| @@ -150,3 +150,3 @@ | ||
|
|
||
| InstallerUtils.downloadCheckHash(url, depFile, md5, item.checksum.md5, true); | ||
| InstallerUtils.downloadCheckHash(url, depFile, sha256, item.checksum.sha256, true); | ||
| } | ||
| @@ -166,3 +166,3 @@ | ||
| if (checkHashes) { | ||
| InstallerUtils.downloadCheckHash(url, depFile, md5, item.checksum.md5, true); | ||
| InstallerUtils.downloadCheckHash(url, depFile, sha256, item.checksum.sha256, true); | ||
| } else { |
d8d2d15 to
850daa8
Compare
850daa8 to
406955e
Compare
|
I got the feeling there's already alot of progress on this topic, but is there any ETA when the official release will be supporting Neoforge on minecraft 1.21.1? |
|
SpongeNeo is runnable but unstable. I don't have any ETA because it has not been tested enough to quantify the bugs. Feel free to test it but keep in mind that it is not production ready. The more people test it and report issues, the sooner it will be stable. The Sponge website hasn't been updated yet to show SpongeNeo downloads. However, you can download SpongeNeo via Github actions at https://github.com/SpongePowered/Sponge/actions/workflows/deploy.yaml. Click on the latest run, then scroll down and click on "SpongeNeo Production Jar". |
|
You're a life saver! i'll defo try and report any bugs i come across :). |
|
For what it's worth, you can already use SOAD API (Downloads API) to query for SpongeNeo: Given the curl: curl --location 'https://dl-api.spongepowered.org/v2/groups/org.spongepowered/artifacts/spongeneo/versions'JSON Response{
"artifacts": {
"1.21.1-21.1.35-12.0.0-RC1818": {
"tagValues": {
"minecraft": "1.21.1",
"neo": "21.1.35",
"api": "12.0"
},
"recommended": false
},
"1.21.1-21.1.35-12.0.0-RC1816": {
"tagValues": {
"minecraft": "1.21.1",
"neo": "21.1.35",
"api": "12.0"
},
"recommended": false
}
},
"offset": 0,
"limit": 25,
"size": 2
}And for the latest version available: curl --location 'https://dl-api.spongepowered.org/v2/groups/org.spongepowered/artifacts/spongeneo/latest'JSON Response{
"coordinates": {
"groupId": "org.spongepowered",
"artifactId": "spongeneo",
"version": "1.21.1-21.1.35-12.0.0-RC1818"
},
"commit": {
"commits": [
{
"commit": {
"message": "Merge remote-tracking branch 'origin/api-11' into api-12",
"body": "Merge remote-tracking branch 'origin/api-11' into api-12\n",
"sha": "e95b19f401d4ec5c669089fc400fe3f486c3136c",
"author": {
"name": "aromaa",
"email": "me@joniaromaa.fi"
},
"commiter": {
"name": "aromaa",
"email": "me@joniaromaa.fi"
},
"link": "https://github.com/SpongePowered/Sponge/commit/e95b19f401d4ec5c669089fc400fe3f486c3136c",
"commitDate": "2024-10-05T21:11:43Z"
},
"submoduleCommits": []
}
],
"processing": true
},
"assets": [
{
"classifier": "",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818.jar",
"md5": "748d967e2e7b54172532886eb535af1f",
"sha1": "f14477b1533d0bc2e60d5194e78f2f5639c56689",
"extension": "jar"
},
{
"classifier": "",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818.pom",
"md5": "0fb371f25a71f85423e06816dbdce9b5",
"sha1": "ecb33fba2eed95a69ee9ebb6a076d6fd950356c7",
"extension": "pom"
},
{
"classifier": "accessors",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-accessors.jar",
"md5": "4c11aff3bb5a861cb7cd94882c530752",
"sha1": "759d4953c5847cb4ed4842d2747d247be3d61e13",
"extension": "jar"
},
{
"classifier": "accessors-sources",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-accessors-sources.jar",
"md5": "b1704c7504e966f847c1941b4baa8503",
"sha1": "cd9b4d846b9bc2a18d44c4eed46b4862bb947d18",
"extension": "jar"
},
{
"classifier": "applaunch",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-applaunch.jar",
"md5": "84049ad2a13e3b0565617e986dbd33ad",
"sha1": "69ed40e96a85f3177c31e55efb281bbf5153ac1d",
"extension": "jar"
},
{
"classifier": "applaunch-sources",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-applaunch-sources.jar",
"md5": "b22077a931410ea213672f4e6cee4b35",
"sha1": "51fbc33531e14aa9ab06ae5414ae41c1cc088ff0",
"extension": "jar"
},
{
"classifier": "lang",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-lang.jar",
"md5": "e96f5569d6e13ffe0b15c3bfe4824b52",
"sha1": "487261b294975025d733ea57f25e24fad6c04188",
"extension": "jar"
},
{
"classifier": "lang-sources",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-lang-sources.jar",
"md5": "de4f7b715c9243f29c47bd9188b49611",
"sha1": "0224b81db011b9c7b66bf03e8a754857ad512c22",
"extension": "jar"
},
{
"classifier": "launch",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-launch.jar",
"md5": "7073c6f97d81921dc9139802acf481aa",
"sha1": "04cde08333079b3f07b6dd06eb89ed3bf5c1fa2b",
"extension": "jar"
},
{
"classifier": "launch-sources",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-launch-sources.jar",
"md5": "1d50ede57edbb66dc3290f4267629892",
"sha1": "d46b0caefbe9db7bc37241582fe8abde476fc185",
"extension": "jar"
},
{
"classifier": "mixins",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-mixins.jar",
"md5": "f8b43c11eef1f71b731055aea83f1ada",
"sha1": "e96b4dcc563b46fe4be28a84da9ff0a77eca143b",
"extension": "jar"
},
{
"classifier": "mixins-sources",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-mixins-sources.jar",
"md5": "4fe6bd062a0fc47f490989d7588cfb9e",
"sha1": "ce77b77d4416e7f1100357f14d1b5b9dd1c80d76",
"extension": "jar"
},
{
"classifier": "sources",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-sources.jar",
"md5": "78380a1d444e8cae1a9e3df227f37eeb",
"sha1": "397ccae5d6d47b24c428ae98547d5afac0291f40",
"extension": "jar"
},
{
"classifier": "universal",
"downloadUrl": "https://repo.spongepowered.org/repository/maven-releases/org/spongepowered/spongeneo/1.21.1-21.1.35-12.0.0-RC1818/spongeneo-1.21.1-21.1.35-12.0.0-RC1818-universal.jar",
"md5": "250c4863fe554c97d642fde97725ef1c",
"sha1": "b9b39fd23a010b101106f7aef6aab519c724618d",
"extension": "jar"
}
],
"tags": {
"minecraft": "1.21.1",
"neo": "21.1.35",
"api": "12.0"
},
"recommended": false
}We just need to add the tab to our downloads webpage. |
|
Honestly, this is super helpful! i am not that tech savy when it comes to github and such. |
This PR introduces SpongeNeo a new Sponge implementation for NeoForge, alongside SpongeForge and SpongeVanilla.