diff --git a/platform/platform-api/resources/messages/IdeBundle.properties b/platform/platform-api/resources/messages/IdeBundle.properties
index de3dc8cf5785..872a6d9268a2 100644
--- a/platform/platform-api/resources/messages/IdeBundle.properties
+++ b/platform/platform-api/resources/messages/IdeBundle.properties
@@ -1086,7 +1086,7 @@ third.party.plugins.privacy.note.no=Cancel
plugin.signature.not.signed=
The ''{0}'' plugin has not been digitally signed, and its authenticity cannot be verified. Installing or updating unsigned plugins may expose your system to risk.
Plugin details: vendor: {1}, id: {2}, version: {3}
jetbrains.certificate.not.found=JetBrains certificate is not found.
jetbrains.certificate.invalid=JetBrains certificate is invalid. Please contact JetBrains support.
-plugin.signature.missing=Plugin file is not signed by any of the trusted certificates. Please add a certificate.
+plugin.invalid.signature.result=Digital signature verification of the ''{0}'' plugin failed with the following message: ''{1}'''.
plugin.signature.checker.progress=Checking plugin signature: ''{0}''
plugin.signature.checker.title=Plugin Security Warning
plugin.signature.checker.revoked.cert=The ''{0}'' plugin has revoked the JetBrains certificate
diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/marketplace/PluginSignatureChecker.kt b/platform/platform-impl/src/com/intellij/ide/plugins/marketplace/PluginSignatureChecker.kt
index 2522dbaf7e1a..96137ba6f43c 100644
--- a/platform/platform-impl/src/com/intellij/ide/plugins/marketplace/PluginSignatureChecker.kt
+++ b/platform/platform-impl/src/com/intellij/ide/plugins/marketplace/PluginSignatureChecker.kt
@@ -76,7 +76,8 @@ internal object PluginSignatureChecker {
pluginFile: File,
certificates: List = emptyList()
): Boolean {
- val jbCert = jetbrainsCertificate ?: return processSignatureCheckerVerdict(descriptor, IdeBundle.message("jetbrains.certificate.not.found"))
+ val jbCert = jetbrainsCertificate
+ ?: return processSignatureCheckerVerdict(descriptor, IdeBundle.message("jetbrains.certificate.not.found"))
val isRevoked = try {
isJetBrainsCertificateRevoked()
}
@@ -146,11 +147,11 @@ internal object PluginSignatureChecker {
return when (val verificationResult = ZipVerifier.verify(file)) {
is InvalidSignatureResult -> {
PluginManagerUsageCollector.signatureCheckResult(descriptor, SignatureVerificationResult.INVALID_SIGNATURE)
- verificationResult.errorMessage
+ IdeBundle.message("plugin.invalid.signature.result", descriptor.name, verificationResult.errorMessage)
}
is MissingSignatureResult -> {
PluginManagerUsageCollector.signatureCheckResult(descriptor, SignatureVerificationResult.MISSING_SIGNATURE)
- IdeBundle.message("plugin.signature.missing")
+ getSignatureWarningMessage(descriptor)
}
is SuccessfulVerificationResult -> {
val isSigned = certificates.any { certificate ->
@@ -158,8 +159,7 @@ internal object PluginSignatureChecker {
}
if (!isSigned) {
PluginManagerUsageCollector.signatureCheckResult(descriptor, SignatureVerificationResult.WRONG_SIGNATURE)
- val vendor = if (descriptor.organization.isNullOrBlank()) descriptor.vendor else descriptor.organization
- IdeBundle.message("plugin.signature.not.signed", descriptor.name, vendor, descriptor.pluginId.idString, descriptor.version)
+ getSignatureWarningMessage(descriptor)
}
else {
PluginManagerUsageCollector.signatureCheckResult(descriptor, SignatureVerificationResult.SUCCESSFUL)
@@ -169,6 +169,11 @@ internal object PluginSignatureChecker {
}
}
+ private fun getSignatureWarningMessage(descriptor: IdeaPluginDescriptor): String {
+ val vendor = if (descriptor.organization.isNullOrBlank()) descriptor.vendor else descriptor.organization
+ return IdeBundle.message("plugin.signature.not.signed", descriptor.name, vendor, descriptor.pluginId.idString, descriptor.version)
+ }
+
private fun processSignatureCheckerVerdict(descriptor: IdeaPluginDescriptor, @Nls message: String): Boolean {
val title = IdeBundle.message("plugin.signature.checker.title")
val yesText = IdeBundle.message("plugin.signature.checker.yes")