Skip to content

Commit 44f5c7b

Browse files
committed
Fixing validation function
1 parent a970509 commit 44f5c7b

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/ArtifactHelper.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ArtifactHelper(private val lspArtifactsPath: Path = DEFAULT_ARTIFACT_PATH)
2828
val localFolders: List<Path> = getSubFolders(lspArtifactsPath)
2929

3030
deListedVersions.forEach { deListedVersion ->
31-
val versionToDelete = deListedVersion.serverVersion ?: return
31+
val versionToDelete = deListedVersion.serverVersion ?: return@forEach
3232

3333
localFolders
3434
.filter { folder -> folder.fileName.toString() == versionToDelete }
@@ -139,7 +139,10 @@ class ArtifactHelper(private val lspArtifactsPath: Path = DEFAULT_ARTIFACT_PATH)
139139
}
140140
}
141141

142-
private fun validateFileHash(filePath: Path, expectedHash: String): Boolean = generateMD5Hash(filePath) == expectedHash
142+
private fun validateFileHash(filePath: Path, expectedHash: String): Boolean {
143+
val contentHash = generateSHA384Hash(filePath)
144+
return "sha384:$contentHash" == expectedHash
145+
}
143146

144147
private fun validateDownloadedFiles(downloadPath: Path, contents: List<ManifestManager.TargetContent>) {
145148
val missingFiles = contents

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspException.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.artifacts
66
class LspException(message: String, private val errorCode: ErrorCode, cause: Throwable? = null) : Exception(message, cause) {
77

88
enum class ErrorCode {
9-
MANIFEST_INVALID,
109
MANIFEST_FETCH_FAILED,
1110
DOWNLOAD_FAILED,
1211
HASH_MISMATCH,

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtils.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import java.nio.file.Files
1111
import java.nio.file.Path
1212
import java.nio.file.Paths
1313
import java.nio.file.StandardCopyOption
14+
import java.security.MessageDigest
1415
import kotlin.io.path.isDirectory
1516
import kotlin.io.path.listDirectoryEntries
1617

@@ -43,6 +44,12 @@ fun generateMD5Hash(filePath: Path): String {
4344
return StringUtil.toHexString(messageDigest.digest())
4445
}
4546

47+
fun generateSHA384Hash(filePath: Path): String {
48+
val messageDigest = MessageDigest.getInstance("SHA-384")
49+
DigestUtil.updateContentHash(messageDigest, filePath)
50+
return StringUtil.toHexString(messageDigest.digest())
51+
}
52+
4653
fun getSubFolders(basePath: Path): List<Path> = try {
4754
basePath.listDirectoryEntries()
4855
.filter { it.isDirectory() }

0 commit comments

Comments
 (0)