From 5ed47c5cb1cb6d2207e34dfd2ccf28664e15fca5 Mon Sep 17 00:00:00 2001 From: Alexander Prendota Date: Thu, 1 Jul 2021 09:16:21 +0000 Subject: [PATCH] Update messages for signature checker dialog GitOrigin-RevId: 059d6f5725acae0b948412129d353dc6aba953f3 --- .../resources/messages/IdeBundle.properties | 2 +- .../plugins/marketplace/PluginSignatureChecker.kt | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) 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")