Skip to content

Commit 7052c5b

Browse files
committed
Inglobated GPGDetachedSignatureVerifier into SignatureVerifier
There is no point to have this abstract class.
1 parent 0cd9e49 commit 7052c5b

File tree

6 files changed

+39
-15
lines changed

6 files changed

+39
-15
lines changed

app/src/processing/app/Base.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ public Base(String[] args) throws Exception {
296296
pdeKeywords = new PdeKeywords();
297297
pdeKeywords.reload();
298298

299-
final GPGDetachedSignatureVerifier gpgDetachedSignatureVerifier = new GPGDetachedSignatureVerifier();
299+
final SignatureVerifier gpgDetachedSignatureVerifier = new SignatureVerifier();
300300
contributionInstaller = new ContributionInstaller(BaseNoGui.getPlatform(), gpgDetachedSignatureVerifier);
301301
libraryInstaller = new LibraryInstaller(BaseNoGui.getPlatform(), gpgDetachedSignatureVerifier);
302302

app/test/cc/arduino/contributions/GPGDetachedSignatureVerifierTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,19 @@
3939

4040
public class GPGDetachedSignatureVerifierTest {
4141

42-
private GPGDetachedSignatureVerifier GPGDetachedSignatureVerifier;
42+
private SignatureVerifier verifier;
4343

4444
@Before
4545
public void setUp() throws Exception {
46-
GPGDetachedSignatureVerifier = new GPGDetachedSignatureVerifier();
46+
verifier = new SignatureVerifier();
4747
}
4848

4949
@Test
5050
public void testSignatureSuccessfulVerification() throws Exception {
5151
File signedFile = new File(GPGDetachedSignatureVerifierTest.class.getResource("./package_index.json").getFile());
5252
File sign = new File(GPGDetachedSignatureVerifierTest.class.getResource("./package_index.json.sig").getFile());
5353
File publickKey = new File(GPGDetachedSignatureVerifierTest.class.getResource("./test.public.gpg.key").getFile());
54-
assertTrue(GPGDetachedSignatureVerifier.verify(signedFile, sign, publickKey));
54+
assertTrue(verifier.verify(signedFile, sign, publickKey));
5555
}
5656

5757
@Test
@@ -60,6 +60,6 @@ public void testSignatureFailingVerification() throws Exception {
6060
fakeSignedFile.deleteOnExit();
6161
File sign = new File(GPGDetachedSignatureVerifierTest.class.getResource("./package_index.json.sig").getFile());
6262
File publickKey = new File(GPGDetachedSignatureVerifierTest.class.getResource("./test.public.gpg.key").getFile());
63-
assertFalse(GPGDetachedSignatureVerifier.verify(fakeSignedFile, sign, publickKey));
63+
assertFalse(verifier.verify(fakeSignedFile, sign, publickKey));
6464
}
6565
}

arduino-core/src/cc/arduino/contributions/GPGDetachedSignatureVerifier.java renamed to arduino-core/src/cc/arduino/contributions/SignatureVerifier.java

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,46 @@
3434
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
3535
import org.bouncycastle.openpgp.operator.bc.BcPGPContentVerifierBuilderProvider;
3636

37+
import processing.app.BaseNoGui;
38+
3739
import java.io.*;
3840
import java.util.Iterator;
3941

40-
public class GPGDetachedSignatureVerifier extends SignatureVerifier {
42+
public class SignatureVerifier {
4143

4244
private String keyId;
4345

44-
public GPGDetachedSignatureVerifier() {
46+
public SignatureVerifier() {
4547
this("7F294291");
4648
}
4749

48-
public GPGDetachedSignatureVerifier(String keyId) {
50+
public SignatureVerifier(String keyId) {
4951
this.keyId = keyId;
5052
}
5153

52-
@Override
54+
public boolean isSigned(File indexFile) {
55+
File signature = new File(indexFile.getParent(), indexFile.getName() + ".sig");
56+
if (!signature.exists()) {
57+
return false;
58+
}
59+
60+
try {
61+
return verify(indexFile, signature, new File(BaseNoGui.getContentFile("lib"), "public.gpg.key"));
62+
} catch (Exception e) {
63+
BaseNoGui.showWarning(e.getMessage(), e.getMessage(), e);
64+
return false;
65+
}
66+
}
67+
68+
public boolean isSigned(File indexFile, File signature) {
69+
try {
70+
return verify(indexFile, signature, new File(BaseNoGui.getContentFile("lib"), "public.gpg.key"));
71+
} catch (Exception e) {
72+
BaseNoGui.showWarning(e.getMessage(), e.getMessage(), e);
73+
return false;
74+
}
75+
}
76+
5377
protected boolean verify(File signedFile, File signature, File publicKey) throws IOException {
5478
FileInputStream signatureInputStream = null;
5579
FileInputStream signedFileInputStream = null;

arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
import cc.arduino.Constants;
3333
import cc.arduino.contributions.DownloadableContributionsDownloader;
34-
import cc.arduino.contributions.GPGDetachedSignatureVerifier;
34+
import cc.arduino.contributions.SignatureVerifier;
3535
import cc.arduino.contributions.GZippedJsonDownloader;
3636
import cc.arduino.contributions.ProgressListener;
3737
import cc.arduino.utils.ArchiveExtractor;
@@ -60,9 +60,9 @@ public class LibraryInstaller {
6060
private static Logger log = LogManager.getLogger(LibraryInstaller.class);
6161

6262
private final Platform platform;
63-
private final GPGDetachedSignatureVerifier signatureVerifier;
63+
private final SignatureVerifier signatureVerifier;
6464

65-
public LibraryInstaller(Platform platform, GPGDetachedSignatureVerifier signatureVerifier) {
65+
public LibraryInstaller(Platform platform, SignatureVerifier signatureVerifier) {
6666
this.platform = platform;
6767
this.signatureVerifier = signatureVerifier;
6868
}

arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
import cc.arduino.Constants;
3333
import cc.arduino.contributions.DownloadableContribution;
3434
import cc.arduino.contributions.DownloadableContributionsDownloader;
35-
import cc.arduino.contributions.ProgressListener;
3635
import cc.arduino.contributions.SignatureVerifier;
36+
import cc.arduino.contributions.ProgressListener;
3737
import cc.arduino.filters.FileExecutablePredicate;
3838
import cc.arduino.utils.ArchiveExtractor;
3939
import cc.arduino.utils.MultiStepProgress;

arduino-core/src/processing/app/BaseNoGui.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package processing.app;
22

33
import cc.arduino.Constants;
4-
import cc.arduino.contributions.GPGDetachedSignatureVerifier;
4+
import cc.arduino.contributions.SignatureVerifier;
55
import cc.arduino.contributions.VersionComparator;
66
import cc.arduino.contributions.libraries.LibrariesIndexer;
77
import cc.arduino.contributions.packages.ContributedPlatform;
@@ -477,7 +477,7 @@ static public void initLogger() {
477477

478478
static public void initPackages() throws Exception {
479479
indexer = new ContributionsIndexer(getSettingsFolder(), getHardwareFolder(), getPlatform(),
480-
new GPGDetachedSignatureVerifier());
480+
new SignatureVerifier());
481481

482482
try {
483483
indexer.parseIndex();

0 commit comments

Comments
 (0)