diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/CachingSharedPGPCertificateDirectoryWrapper.java b/pgp-cert-d-java/src/main/java/pgp/cert_d/CachingSharedPGPCertificateDirectoryWrapper.java
index 7ab1995f..820d55d5 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/CachingSharedPGPCertificateDirectoryWrapper.java
+++ b/pgp-cert-d-java/src/main/java/pgp/cert_d/CachingSharedPGPCertificateDirectoryWrapper.java
@@ -4,8 +4,8 @@
package pgp.cert_d;
-import pgp.cert_d.exception.BadDataException;
-import pgp.cert_d.exception.BadNameException;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.MergeCallback;
@@ -96,7 +96,7 @@ public class CachingSharedPGPCertificateDirectoryWrapper
@Override
public Certificate getBySpecialName(String specialName)
- throws IOException, BadNameException {
+ throws IOException, BadNameException, BadDataException {
Certificate certificate = certificateMap.get(specialName);
if (certificate == null) {
certificate = underlyingCertificateDirectory.getBySpecialName(specialName);
@@ -119,7 +119,7 @@ public class CachingSharedPGPCertificateDirectoryWrapper
@Override
public Certificate getBySpecialNameIfChanged(String specialName, String tag)
- throws IOException, BadNameException {
+ throws IOException, BadNameException, BadDataException {
if (tagChanged(specialName, tag)) {
return getBySpecialName(specialName);
}
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/FilenameResolver.java b/pgp-cert-d-java/src/main/java/pgp/cert_d/FilenameResolver.java
index b1b41f02..a753fd3a 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/FilenameResolver.java
+++ b/pgp-cert-d-java/src/main/java/pgp/cert_d/FilenameResolver.java
@@ -4,7 +4,7 @@
package pgp.cert_d;
-import pgp.cert_d.exception.BadNameException;
+import pgp.certificate_store.exception.BadNameException;
import java.io.File;
import java.util.regex.Pattern;
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectory.java b/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectory.java
index 5d6d5360..9c809659 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectory.java
+++ b/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectory.java
@@ -8,8 +8,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
-import pgp.cert_d.exception.BadDataException;
-import pgp.cert_d.exception.BadNameException;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.MergeCallback;
@@ -21,13 +21,13 @@ public interface SharedPGPCertificateDirectory {
throws IOException, BadNameException, BadDataException;
Certificate getBySpecialName(String specialName)
- throws IOException, BadNameException;
+ throws IOException, BadNameException, BadDataException;
Certificate getByFingerprintIfChanged(String fingerprint, String tag)
throws IOException, BadNameException, BadDataException;
Certificate getBySpecialNameIfChanged(String specialName, String tag)
- throws IOException, BadNameException;
+ throws IOException, BadNameException, BadDataException;
Certificate insert(InputStream data, MergeCallback merge)
throws IOException, BadDataException, InterruptedException;
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectoryImpl.java b/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectoryImpl.java
index 0cd835aa..7b0a9172 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectoryImpl.java
+++ b/pgp-cert-d-java/src/main/java/pgp/cert_d/SharedPGPCertificateDirectoryImpl.java
@@ -16,9 +16,9 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import pgp.cert_d.exception.BadDataException;
-import pgp.cert_d.exception.BadNameException;
-import pgp.cert_d.exception.NotAStoreException;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
+import pgp.certificate_store.exception.NotAStoreException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.CertificateReaderBackend;
import pgp.certificate_store.MergeCallback;
diff --git a/pgp-cert-d-java/src/test/java/pgp/cert_d/FilenameResolverTest.java b/pgp-cert-d-java/src/test/java/pgp/cert_d/FilenameResolverTest.java
index 600b9027..1d534a45 100644
--- a/pgp-cert-d-java/src/test/java/pgp/cert_d/FilenameResolverTest.java
+++ b/pgp-cert-d-java/src/test/java/pgp/cert_d/FilenameResolverTest.java
@@ -6,7 +6,7 @@ package pgp.cert_d;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import pgp.cert_d.exception.BadNameException;
+import pgp.certificate_store.exception.BadNameException;
import java.io.File;
import java.io.IOException;
diff --git a/pgp-certificate-store/src/main/java/pgp/certificate_store/CertificateStore.java b/pgp-certificate-store/src/main/java/pgp/certificate_store/CertificateStore.java
index f8765e63..1e417e25 100644
--- a/pgp-certificate-store/src/main/java/pgp/certificate_store/CertificateStore.java
+++ b/pgp-certificate-store/src/main/java/pgp/certificate_store/CertificateStore.java
@@ -4,6 +4,9 @@
package pgp.certificate_store;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
@@ -28,7 +31,8 @@ public interface CertificateStore {
*
* @throws IOException in case of an IO-error
*/
- Certificate getCertificate(String identifier) throws IOException;
+ Certificate getCertificate(String identifier)
+ throws IOException, BadNameException, BadDataException;
/**
* Return the certificate that matches the given identifier, but only iff it changed since the last invocation.
@@ -41,7 +45,8 @@ public interface CertificateStore {
*
* @throws IOException in case of an IO-error
*/
- Certificate getCertificateIfChanged(String identifier, String tag) throws IOException;
+ Certificate getCertificateIfChanged(String identifier, String tag)
+ throws IOException, BadNameException, BadDataException;
/**
* Insert a certificate into the store.
@@ -59,7 +64,8 @@ public interface CertificateStore {
* @throws IOException in case of an IO-error
* @throws InterruptedException in case the inserting thread gets interrupted
*/
- Certificate insertCertificate(InputStream data, MergeCallback merge) throws IOException, InterruptedException;
+ Certificate insertCertificate(InputStream data, MergeCallback merge)
+ throws IOException, InterruptedException, BadDataException;
/**
* Insert a certificate into the store.
@@ -78,7 +84,8 @@ public interface CertificateStore {
*
* @throws IOException in case of an IO-error
*/
- Certificate tryInsertCertificate(InputStream data, MergeCallback merge) throws IOException;
+ Certificate tryInsertCertificate(InputStream data, MergeCallback merge)
+ throws IOException, BadDataException;
/**
* Insert a certificate into the store.
@@ -97,7 +104,8 @@ public interface CertificateStore {
*
* @throws IOException in case of an IO-error
*/
- Certificate insertCertificateBySpecialName(String specialName, InputStream data, MergeCallback merge) throws IOException, InterruptedException;
+ Certificate insertCertificateBySpecialName(String specialName, InputStream data, MergeCallback merge)
+ throws IOException, InterruptedException, BadDataException, BadNameException;
/**
* Insert a certificate into the store.
@@ -118,7 +126,8 @@ public interface CertificateStore {
*
* @throws IOException in case of an IO-error
*/
- Certificate tryInsertCertificateBySpecialName(String specialName, InputStream data, MergeCallback merge) throws IOException;
+ Certificate tryInsertCertificateBySpecialName(String specialName, InputStream data, MergeCallback merge)
+ throws IOException, BadDataException, BadNameException;
/**
* Return an {@link Iterator} containing all certificates in the store.
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/BadDataException.java b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/BadDataException.java
similarity index 85%
rename from pgp-cert-d-java/src/main/java/pgp/cert_d/exception/BadDataException.java
rename to pgp-certificate-store/src/main/java/pgp/certificate_store/exception/BadDataException.java
index 7dc8b7d9..3bb7019f 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/BadDataException.java
+++ b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/BadDataException.java
@@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: Apache-2.0
-package pgp.cert_d.exception;
+package pgp.certificate_store.exception;
/**
* The data was not a valid OpenPGP cert or key in binary format.
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/BadNameException.java b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/BadNameException.java
similarity index 59%
rename from pgp-cert-d-java/src/main/java/pgp/cert_d/exception/BadNameException.java
rename to pgp-certificate-store/src/main/java/pgp/certificate_store/exception/BadNameException.java
index a4695c0c..957126e8 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/BadNameException.java
+++ b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/BadNameException.java
@@ -2,11 +2,18 @@
//
// SPDX-License-Identifier: Apache-2.0
-package pgp.cert_d.exception;
+package pgp.certificate_store.exception;
/**
* Provided name was neither a valid fingerprint, nor a known special name.
*/
public class BadNameException extends Exception {
+ public BadNameException() {
+ super();
+ }
+
+ public BadNameException(String message) {
+ super(message);
+ }
}
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/NotAStoreException.java b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/NotAStoreException.java
similarity index 89%
rename from pgp-cert-d-java/src/main/java/pgp/cert_d/exception/NotAStoreException.java
rename to pgp-certificate-store/src/main/java/pgp/certificate_store/exception/NotAStoreException.java
index 734de499..a19aa9c0 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/NotAStoreException.java
+++ b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/NotAStoreException.java
@@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: Apache-2.0
-package pgp.cert_d.exception;
+package pgp.certificate_store.exception;
/**
* The base dir cannot possibly contain a store.
diff --git a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/package-info.java b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/package-info.java
similarity index 87%
rename from pgp-cert-d-java/src/main/java/pgp/cert_d/exception/package-info.java
rename to pgp-certificate-store/src/main/java/pgp/certificate_store/exception/package-info.java
index 9d362808..c06ce065 100644
--- a/pgp-cert-d-java/src/main/java/pgp/cert_d/exception/package-info.java
+++ b/pgp-certificate-store/src/main/java/pgp/certificate_store/exception/package-info.java
@@ -7,4 +7,4 @@
*
* @see Failure Modes
*/
-package pgp.cert_d.exception;
+package pgp.certificate_store.exception;
diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java
index 2fa7b1a9..19d873e7 100644
--- a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java
+++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java
@@ -9,7 +9,7 @@ import org.pgpainless.certificate_store.SharedPGPCertificateDirectoryAdapter;
import pgp.cert_d.SharedPGPCertificateDirectoryImpl;
import pgp.cert_d.cli.commands.Get;
import pgp.cert_d.cli.commands.Import;
-import pgp.cert_d.exception.NotAStoreException;
+import pgp.certificate_store.exception.NotAStoreException;
import pgp.certificate_store.CertificateStore;
import picocli.CommandLine;
diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java
index 2cc5dab0..bbcbe0d8 100644
--- a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java
+++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Get.java
@@ -11,6 +11,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pgp.cert_d.cli.PGPCertDCli;
import pgp.certificate_store.Certificate;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
import picocli.CommandLine;
@CommandLine.Command(name = "get",
@@ -36,7 +38,13 @@ public class Get implements Runnable {
}
Streams.pipeAll(certificate.getInputStream(), System.out);
} catch (IOException e) {
- LOGGER.info("IO Error", e);
+ LOGGER.error("IO Error", e);
+ System.exit(-1);
+ } catch (BadDataException e) {
+ LOGGER.error("Certificate file contains bad data.", e);
+ System.exit(-1);
+ } catch (BadNameException e) {
+ LOGGER.error("Certificate fingerprint mismatch.", e);
System.exit(-1);
}
}
diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Import.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Import.java
index a0f08f58..ce966b5e 100644
--- a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Import.java
+++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Import.java
@@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
import pgp.cert_d.cli.PGPCertDCli;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.MergeCallback;
+import pgp.certificate_store.exception.BadDataException;
import picocli.CommandLine;
@CommandLine.Command(name = "import",
@@ -32,10 +33,13 @@ public class Import implements Runnable {
System.out.println(certificate.getFingerprint());
// CHECKSTYLE:ON
} catch (IOException e) {
- LOGGER.info("IO-Error", e);
+ LOGGER.error("IO-Error.", e);
System.exit(-1);
} catch (InterruptedException e) {
- LOGGER.info("Thread interrupted.", e);
+ LOGGER.error("Thread interrupted.", e);
+ System.exit(-1);
+ } catch (BadDataException e) {
+ LOGGER.error("Certificate contains bad data.", e);
System.exit(-1);
}
}
diff --git a/pgpainless-cert-d/src/main/java/org/pgpainless/certificate_store/SharedPGPCertificateDirectoryAdapter.java b/pgpainless-cert-d/src/main/java/org/pgpainless/certificate_store/SharedPGPCertificateDirectoryAdapter.java
index 4e7ee7c4..66d94f5e 100644
--- a/pgpainless-cert-d/src/main/java/org/pgpainless/certificate_store/SharedPGPCertificateDirectoryAdapter.java
+++ b/pgpainless-cert-d/src/main/java/org/pgpainless/certificate_store/SharedPGPCertificateDirectoryAdapter.java
@@ -10,11 +10,11 @@ import java.util.Iterator;
import pgp.cert_d.SharedPGPCertificateDirectory;
import pgp.cert_d.SpecialNames;
-import pgp.cert_d.exception.BadDataException;
-import pgp.cert_d.exception.BadNameException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.CertificateStore;
import pgp.certificate_store.MergeCallback;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
/**
* Adapter class used to adapt the {@link SharedPGPCertificateDirectory} for use with
@@ -36,98 +36,50 @@ public class SharedPGPCertificateDirectoryAdapter
@Override
public Certificate getCertificate(String identifier)
- throws IOException {
+ throws IOException, BadDataException, BadNameException {
String specialName = SpecialNames.lookupSpecialName(identifier);
if (specialName != null) {
- try {
- return directory.getBySpecialName(specialName);
- } catch (BadNameException e) {
- throw new IllegalArgumentException("Unknown special name " + identifier, e);
- }
+ return directory.getBySpecialName(specialName);
}
- try {
- return directory.getByFingerprint(identifier);
- } catch (BadNameException e) {
- throw new IllegalArgumentException("Invalid fingerprint " + identifier, e);
- } catch (BadDataException e) {
- throw new IOException("Bad data.", e);
- }
+ return directory.getByFingerprint(identifier);
+
}
@Override
public Certificate getCertificateIfChanged(String identifier, String tag)
- throws IOException {
+ throws IOException, BadDataException, BadNameException {
String specialName = SpecialNames.lookupSpecialName(identifier);
if (specialName != null) {
- try {
- return directory.getBySpecialNameIfChanged(specialName, tag);
- } catch (BadNameException e) {
- throw new IllegalArgumentException("Unknown special name " + identifier, e);
- }
+ return directory.getBySpecialNameIfChanged(specialName, tag);
}
- try {
- return directory.getByFingerprintIfChanged(identifier, tag);
- } catch (BadNameException e) {
- throw new IllegalArgumentException("Invalid fingerprint " + identifier, e);
- } catch (BadDataException e) {
- throw new IOException("Bad data.", e);
- }
+ return directory.getByFingerprintIfChanged(identifier, tag);
+
}
@Override
public Certificate insertCertificate(InputStream data, MergeCallback merge)
- throws IOException, InterruptedException {
- try {
- return directory.insert(data, merge);
- } catch (BadDataException e) {
- throw new IOException("Cannot insert certificate due to bad data", e);
- }
+ throws IOException, InterruptedException, BadDataException {
+ return directory.insert(data, merge);
}
@Override
public Certificate tryInsertCertificate(InputStream data, MergeCallback merge)
- throws IOException {
- try {
- return directory.tryInsert(data, merge);
- } catch (BadDataException e) {
- throw new IOException("Cannot insert certificate due to bad data", e);
- }
+ throws IOException, BadDataException {
+ return directory.tryInsert(data, merge);
}
@Override
public Certificate insertCertificateBySpecialName(String specialName, InputStream data, MergeCallback merge)
- throws IOException, InterruptedException {
- try {
- String specialNameValidated = SpecialNames.lookupSpecialName(specialName);
- if (specialNameValidated == null) {
- throw new IllegalArgumentException("Unknown special name " + specialName);
- }
-
- return directory.insertWithSpecialName(specialNameValidated, data, merge);
- } catch (BadNameException e) {
- throw new IllegalArgumentException("Unknown special name " + specialName);
- } catch (BadDataException e) {
- throw new IOException("Cannot insert certificate due to bad data", e);
- }
+ throws IOException, InterruptedException, BadDataException, BadNameException {
+ return directory.insertWithSpecialName(specialName, data, merge);
}
@Override
public Certificate tryInsertCertificateBySpecialName(String specialName, InputStream data, MergeCallback merge)
- throws IOException {
- try {
- String specialNameValidated = SpecialNames.lookupSpecialName(specialName);
- if (specialNameValidated == null) {
- throw new IllegalArgumentException("Unknown special name " + specialName);
- }
-
- return directory.tryInsertWithSpecialName(specialNameValidated, data, merge);
- } catch (BadNameException e) {
- throw new IllegalArgumentException("Unknown special name " + specialName);
- } catch (BadDataException e) {
- throw new IOException("Cannot insert certificate due to bad data", e);
- }
+ throws IOException, BadDataException, BadNameException {
+ return directory.tryInsertWithSpecialName(specialName, data, merge);
}
@Override
diff --git a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java
deleted file mode 100644
index 7abc00e7..00000000
--- a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterMockTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-// SPDX-FileCopyrightText: 2022 Paul Schaub
-//
-// SPDX-License-Identifier: Apache-2.0
-
-package org.pgpainless.cert_d;
-
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.pgpainless.certificate_store.SharedPGPCertificateDirectoryAdapter;
-import pgp.cert_d.SharedPGPCertificateDirectory;
-import pgp.cert_d.exception.BadDataException;
-import pgp.cert_d.exception.BadNameException;
-import pgp.certificate_store.CertificateStore;
-import pgp.certificate_store.MergeCallback;
-
-public class SharedPGPCertificateDirectoryAdapterMockTest {
-
- private static final String invalidSpecialName = "trust-root";
- private static final String invalidFingerprint = "invalidFingerprint";
- private static final String badData = "badData";
-
- private static CertificateStore store;
- private static MergeCallback mergeCallback;
- private static InputStream inputStream;
-
- @BeforeAll
- public static void mockComponents() throws BadNameException, IOException, BadDataException, InterruptedException {
- mergeCallback = mock(MergeCallback.class);
- inputStream = mock(InputStream.class);
- SharedPGPCertificateDirectory mocked = mock(SharedPGPCertificateDirectory.class);
- store = new SharedPGPCertificateDirectoryAdapter(mocked);
- // bad name
- when(mocked.getBySpecialName(invalidSpecialName))
- .thenThrow(new BadNameException());
- when(mocked.getBySpecialNameIfChanged(eq(invalidSpecialName), any()))
- .thenThrow(new BadNameException());
- when(mocked.getByFingerprint(invalidFingerprint))
- .thenThrow(new BadNameException());
- when(mocked.getByFingerprintIfChanged(eq(invalidFingerprint), any()))
- .thenThrow(new BadNameException());
- // bad data
- when(mocked.getByFingerprint(badData))
- .thenThrow(new BadDataException());
- when(mocked.getByFingerprintIfChanged(eq(badData), any()))
- .thenThrow(new BadDataException());
- when(mocked.insert(any(), any()))
- .thenThrow(new BadDataException());
- when(mocked.tryInsert(any(), any()))
- .thenThrow(new BadDataException());
- when(mocked.insertWithSpecialName(eq(invalidSpecialName), any(), any()))
- .thenThrow(new BadDataException());
- when(mocked.tryInsertWithSpecialName(eq(invalidSpecialName), any(), any()))
- .thenThrow(new BadDataException());
- }
-
- @Test
- public void testGetUsingFingerprint_BadNameIsMappedToIAE() {
- assertThrows(IllegalArgumentException.class, () -> store.getCertificate(invalidFingerprint));
- assertThrows(IllegalArgumentException.class, () -> store.getCertificateIfChanged(invalidFingerprint, "tag"));
- }
-
- @Test
- public void testGetUsingSpecialName_BadNameIsMappedToIAE() {
- assertThrows(IllegalArgumentException.class, () -> store.getCertificate(invalidSpecialName));
- assertThrows(IllegalArgumentException.class, () -> store.getCertificateIfChanged(invalidSpecialName, "tag"));
- }
-
- @Test
- public void testGet_BadDataIsMappedToIOE() {
- assertThrows(IOException.class, () -> store.getCertificate(badData));
- assertThrows(IOException.class, () -> store.getCertificateIfChanged(badData, "tag"));
- }
-
- @Test
- public void testInsert_BadDataIsMappedToIOE() {
- assertThrows(IOException.class, () -> store.insertCertificate(inputStream, mergeCallback));
- assertThrows(IOException.class, () -> store.insertCertificateBySpecialName(invalidSpecialName, inputStream, mergeCallback));
-
- assertThrows(IOException.class, () -> store.tryInsertCertificate(inputStream, mergeCallback));
- assertThrows(IOException.class, () -> store.tryInsertCertificateBySpecialName(invalidSpecialName, inputStream, mergeCallback));
- }
-}
diff --git a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterTest.java b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterTest.java
index 1470b9f7..c3ede5e0 100644
--- a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterTest.java
+++ b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryAdapterTest.java
@@ -27,7 +27,9 @@ import org.junit.jupiter.api.Test;
import org.pgpainless.certificate_store.CertificateReader;
import org.pgpainless.certificate_store.SharedPGPCertificateDirectoryAdapter;
import pgp.cert_d.SharedPGPCertificateDirectoryImpl;
-import pgp.cert_d.exception.NotAStoreException;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
+import pgp.certificate_store.exception.NotAStoreException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.CertificateStore;
@@ -53,18 +55,18 @@ public class SharedPGPCertificateDirectoryAdapterTest {
}
@Test
- public void getNonExistentCertIsNull() throws IOException {
+ public void getNonExistentCertIsNull() throws IOException, BadDataException, BadNameException {
assertNull(store.getCertificate("trust-root"));
assertNull(store.getCertificate("eb85bb5fa33a75e15e944e63f231550c4f47e38e"));
}
@Test
public void getInvalidIdentifierThrows() {
- assertThrows(IllegalArgumentException.class, () -> store.getCertificate("invalid"));
+ assertThrows(BadNameException.class, () -> store.getCertificate("invalid"));
}
@Test
- public void insertAndGet() throws IOException, InterruptedException {
+ public void insertAndGet() throws IOException, InterruptedException, BadDataException, BadNameException {
byte[] bytes = Hex.decode(testCertificate);
ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes);
String fingerprint = testCertFingerprint;
@@ -83,7 +85,7 @@ public class SharedPGPCertificateDirectoryAdapterTest {
@Test
- public void tryInsertAndGet() throws IOException {
+ public void tryInsertAndGet() throws IOException, BadDataException, BadNameException {
byte[] bytes = Hex.decode(testCertificate);
ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes);
String fingerprint = testCertFingerprint;
@@ -102,7 +104,7 @@ public class SharedPGPCertificateDirectoryAdapterTest {
@Test
- public void insertAndGetIfChanged() throws IOException, InterruptedException {
+ public void insertAndGetIfChanged() throws IOException, InterruptedException, BadDataException, BadNameException {
byte[] bytes = Hex.decode(testCertificate);
ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes);
String fingerprint = testCertFingerprint;
@@ -115,7 +117,7 @@ public class SharedPGPCertificateDirectoryAdapterTest {
}
@Test
- public void insertBySpecialNameAndGet() throws IOException, InterruptedException {
+ public void insertBySpecialNameAndGet() throws IOException, InterruptedException, BadDataException, BadNameException {
byte[] bytes = Hex.decode(testCertificate);
ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes);
String fingerprint = testCertFingerprint;
@@ -134,7 +136,7 @@ public class SharedPGPCertificateDirectoryAdapterTest {
}
@Test
- public void tryInsertBySpecialNameAndGet() throws IOException {
+ public void tryInsertBySpecialNameAndGet() throws IOException, BadDataException, BadNameException {
byte[] bytes = Hex.decode(testCertificate);
ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes);
String fingerprint = testCertFingerprint;
@@ -153,7 +155,7 @@ public class SharedPGPCertificateDirectoryAdapterTest {
}
@Test
- public void insertBySpecialNameAndGetIfChanged() throws IOException, InterruptedException {
+ public void insertBySpecialNameAndGetIfChanged() throws IOException, InterruptedException, BadDataException, BadNameException {
byte[] bytes = Hex.decode(testCertificate);
ByteArrayInputStream byteIn = new ByteArrayInputStream(bytes);
String fingerprint = testCertFingerprint;
@@ -170,7 +172,7 @@ public class SharedPGPCertificateDirectoryAdapterTest {
}
@Test
- public void getItemsAndFingerprints() throws IOException, InterruptedException {
+ public void getItemsAndFingerprints() throws IOException, InterruptedException, BadDataException, BadNameException {
byte[] bytes1 = Hex.decode(testCertificate);
ByteArrayInputStream byteIn1 = new ByteArrayInputStream(bytes1);
Certificate firstCert = store.insertCertificate(byteIn1, (data, existing) -> data);
diff --git a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java
index cff690c7..78267468 100644
--- a/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java
+++ b/pgpainless-cert-d/src/test/java/org/pgpainless/cert_d/SharedPGPCertificateDirectoryTest.java
@@ -41,9 +41,9 @@ import pgp.cert_d.CachingSharedPGPCertificateDirectoryWrapper;
import pgp.cert_d.FileLockingMechanism;
import pgp.cert_d.SharedPGPCertificateDirectory;
import pgp.cert_d.SharedPGPCertificateDirectoryImpl;
-import pgp.cert_d.exception.BadDataException;
-import pgp.cert_d.exception.BadNameException;
-import pgp.cert_d.exception.NotAStoreException;
+import pgp.certificate_store.exception.BadDataException;
+import pgp.certificate_store.exception.BadNameException;
+import pgp.certificate_store.exception.NotAStoreException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.MergeCallback;