diff --git a/build.gradle b/build.gradle
index 0e9c7a08..6a270c7e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,43 +1,109 @@
-plugins {
- id 'java'
- id 'maven'
- id 'maven-publish'
- id 'ru.vyarus.animalsniffer' version '1.4.3'
+buildscript {
+
+ repositories {
+
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
+
+ jcenter()
+ mavenLocal()
+ mavenCentral()
+ }
}
-apply plugin: 'eclipse'
+apply from: 'version.gradle'
-apply plugin: 'ru.vyarus.animalsniffer'
-dependencies {
- signature "net.sf.androidscents.signature:android-api-level-9:2.3.1_r2@signature"
+allprojects {
+
+ apply from: 'plugins.gradle'
+
+ group 'org.pgpainless'
+ description = "Simple to use OpenPGP API for Java based on Bouncycastle"
+ version = shortVersion
+
+ sourceCompatibility = javaSourceCompatibility
+
+ repositories {
+ mavenCentral()
+ }
}
-animalsniffer {
- sourceSets = [sourceSets.main]
+subprojects {
+ apply plugin: 'maven'
+ apply plugin: 'signing'
+
+ task sourcesJar(type: Jar, dependsOn: classes) {
+ classifier = 'sources'
+ from sourceSets.main.allSource
+ }
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from javadoc.destinationDir
+ }
+ task testJar(type: Jar, dependsOn: testClasses) {
+ classifier = 'tests'
+ from sourceSets.test.output
+ }
+
+ artifacts {
+ archives sourcesJar
+ archives javadocJar
+ archives testJar
+ }
+
+ uploadArchives {
+ repositories {
+ mavenDeployer {
+ if (signingRequired) {
+ beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+ }
+ repository(url: project.sonatypeStagingUrl) {
+ if (sonatypeCredentialsAvailable) {
+ authentication(userName: sonatypeUsername, password: sonatypePassword)
+ }
+ }
+ snapshotRepository(url: project.sonatypeSnapshotUrl) {
+ if (sonatypeCredentialsAvailable) {
+ authentication(userName: sonatypeUsername, password: sonatypePassword)
+ }
+ }
+
+ pom.project {
+ name 'PGPainless'
+ description 'Simple to use OpenPGP API for Java based on Bouncycastle'
+ url 'https://github.com/pgpainless/pgpainless'
+ inceptionYear '2018'
+
+ scm {
+ url 'https://github.com/pgpainless/pgpainless'
+ connection 'scm:https://github.com/pgpainless/pgpainless'
+ developerConnection 'scm:git://github.com/pgpainless/pgpainless.git'
+ }
+
+ licenses {
+ license {
+ name 'The Apache Software License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ distribution 'repo'
+ }
+ }
+
+ developers {
+ developer {
+ id 'vanitasvitae'
+ name 'Paul Schaub'
+ email 'vanitasvitae@fsfe.org'
+ }
+ }
+ }
+ }
+ }
+ }
+
+ signing {
+ required { signingRequired }
+ sign configurations.archives
+ }
}
-apply plugin: 'checkstyle'
-
-checkstyle {
- configFile = 'config/checkstyle.xml' as File
- toolVersion = '8.10'
-}
-
-group 'org.pgpainless'
-version '0.1-SNAPSHOT'
-
-sourceCompatibility = 1.8
-
-repositories {
- mavenCentral()
-}
-
-dependencies {
- testCompile group: 'junit', name: 'junit', version: '4.12'
- /*
- compile 'org.bouncycastle:bcprov-debug-jdk15on:1.60'
- /*/
- compile 'org.bouncycastle:bcprov-jdk15on:1.60'
- //*/
- compile 'org.bouncycastle:bcpg-jdk15on:1.60'
-}
diff --git a/config/checkstyle.xml b/config/checkstyle.xml
index cdf0c1ce..14e2cbc6 100644
--- a/config/checkstyle.xml
+++ b/config/checkstyle.xml
@@ -224,7 +224,7 @@
-
+
diff --git a/painless-core/build.gradle b/painless-core/build.gradle
new file mode 100644
index 00000000..54ef2009
--- /dev/null
+++ b/painless-core/build.gradle
@@ -0,0 +1,10 @@
+
+dependencies {
+ testCompile group: 'junit', name: 'junit', version: '4.12'
+ /*
+ compile 'org.bouncycastle:bcprov-debug-jdk15on:1.60'
+ /*/
+ compile 'org.bouncycastle:bcprov-jdk15on:1.60'
+ //*/
+ compile 'org.bouncycastle:bcpg-jdk15on:1.60'
+}
diff --git a/src/main/java/org/pgpainless/pgpainless/PGPainless.java b/painless-core/src/main/java/org/pgpainless/PGPainless.java
similarity index 79%
rename from src/main/java/org/pgpainless/pgpainless/PGPainless.java
rename to painless-core/src/main/java/org/pgpainless/PGPainless.java
index 4bf2a8cf..306b3119 100644
--- a/src/main/java/org/pgpainless/pgpainless/PGPainless.java
+++ b/painless-core/src/main/java/org/pgpainless/PGPainless.java
@@ -13,19 +13,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import org.bouncycastle.openpgp.PGPException;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.decryption_verification.DecryptionBuilder;
-import org.pgpainless.pgpainless.decryption_verification.DecryptionStream;
-import org.pgpainless.pgpainless.encryption_signing.EncryptionBuilder;
-import org.pgpainless.pgpainless.encryption_signing.EncryptionStream;
-import org.pgpainless.pgpainless.key.parsing.KeyRingReader;
-import org.pgpainless.pgpainless.key.generation.KeyRingBuilder;
-import org.pgpainless.pgpainless.symmetric_encryption.SymmetricEncryptorDecryptor;
-import org.pgpainless.pgpainless.util.Passphrase;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.decryption_verification.DecryptionBuilder;
+import org.pgpainless.decryption_verification.DecryptionStream;
+import org.pgpainless.encryption_signing.EncryptionBuilder;
+import org.pgpainless.encryption_signing.EncryptionStream;
+import org.pgpainless.key.generation.KeyRingBuilder;
+import org.pgpainless.key.parsing.KeyRingReader;
+import org.pgpainless.symmetric_encryption.SymmetricEncryptorDecryptor;
+import org.pgpainless.util.Passphrase;
import java.io.IOException;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/AlgorithmSuite.java b/painless-core/src/main/java/org/pgpainless/algorithm/AlgorithmSuite.java
similarity index 98%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/AlgorithmSuite.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/AlgorithmSuite.java
index 28f7894e..3cce51f3 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/AlgorithmSuite.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/AlgorithmSuite.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/CompressionAlgorithm.java b/painless-core/src/main/java/org/pgpainless/algorithm/CompressionAlgorithm.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/CompressionAlgorithm.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/CompressionAlgorithm.java
index 16b465e2..5c2be73f 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/CompressionAlgorithm.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/CompressionAlgorithm.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/Feature.java b/painless-core/src/main/java/org/pgpainless/algorithm/Feature.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/Feature.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/Feature.java
index ff533e89..d3fa5293 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/Feature.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/Feature.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/HashAlgorithm.java b/painless-core/src/main/java/org/pgpainless/algorithm/HashAlgorithm.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/HashAlgorithm.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/HashAlgorithm.java
index 56877bb6..896acdde 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/HashAlgorithm.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/HashAlgorithm.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/KeyFlag.java b/painless-core/src/main/java/org/pgpainless/algorithm/KeyFlag.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/KeyFlag.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/KeyFlag.java
index ad8b0f8b..82e7fe5c 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/KeyFlag.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/KeyFlag.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/PublicKeyAlgorithm.java b/painless-core/src/main/java/org/pgpainless/algorithm/PublicKeyAlgorithm.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/PublicKeyAlgorithm.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/PublicKeyAlgorithm.java
index 9b027eba..b598b125 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/PublicKeyAlgorithm.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/PublicKeyAlgorithm.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/SymmetricKeyAlgorithm.java b/painless-core/src/main/java/org/pgpainless/algorithm/SymmetricKeyAlgorithm.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/SymmetricKeyAlgorithm.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/SymmetricKeyAlgorithm.java
index 1ffd8b69..36a28651 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/SymmetricKeyAlgorithm.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/SymmetricKeyAlgorithm.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/org/pgpainless/pgpainless/algorithm/package-info.java b/painless-core/src/main/java/org/pgpainless/algorithm/package-info.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/algorithm/package-info.java
rename to painless-core/src/main/java/org/pgpainless/algorithm/package-info.java
index 27b18dbc..5a1d3643 100644
--- a/src/main/java/org/pgpainless/pgpainless/algorithm/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/algorithm/package-info.java
@@ -16,4 +16,4 @@
/**
* Enums which map to OpenPGP's algorithm IDs.
*/
-package org.pgpainless.pgpainless.algorithm;
+package org.pgpainless.algorithm;
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionBuilder.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionBuilder.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionBuilder.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionBuilder.java
index f9431f62..827c2d81 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionBuilder.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionBuilder.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import java.io.IOException;
import java.io.InputStream;
@@ -25,8 +25,8 @@ import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
public class DecryptionBuilder implements DecryptionBuilderInterface {
@@ -34,7 +34,7 @@ public class DecryptionBuilder implements DecryptionBuilderInterface {
private PGPSecretKeyRingCollection decryptionKeys;
private SecretKeyRingProtector decryptionKeyDecryptor;
private Set verificationKeys = new HashSet<>();
- private org.pgpainless.pgpainless.decryption_verification.MissingPublicKeyCallback missingPublicKeyCallback = null;
+ private MissingPublicKeyCallback missingPublicKeyCallback = null;
@Override
public DecryptWith onInputStream(InputStream inputStream) {
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionBuilderInterface.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionBuilderInterface.java
similarity index 90%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionBuilderInterface.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionBuilderInterface.java
index ec9b85d5..14d3030f 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionBuilderInterface.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionBuilderInterface.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import java.io.IOException;
import java.io.InputStream;
@@ -23,8 +23,8 @@ import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
public interface DecryptionBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionStream.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionStream.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionStream.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionStream.java
index 87ea4517..806c281b 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionStream.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionStream.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import java.io.IOException;
import java.io.InputStream;
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionStreamFactory.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionStreamFactory.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionStreamFactory.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionStreamFactory.java
index 56f04549..348f16ea 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/DecryptionStreamFactory.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/DecryptionStreamFactory.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import java.io.IOException;
import java.io.InputStream;
@@ -46,10 +46,10 @@ import org.bouncycastle.openpgp.operator.PublicKeyDataDecryptorFactory;
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
import org.bouncycastle.openpgp.operator.bc.BcPGPContentVerifierBuilderProvider;
import org.bouncycastle.openpgp.operator.bc.BcPublicKeyDataDecryptorFactory;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
public final class DecryptionStreamFactory {
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/MissingPublicKeyCallback.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/MissingPublicKeyCallback.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/MissingPublicKeyCallback.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/MissingPublicKeyCallback.java
index 881ac9c9..f41b60ed 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/MissingPublicKeyCallback.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/MissingPublicKeyCallback.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import org.bouncycastle.openpgp.PGPPublicKey;
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/PainlessResult.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/PainlessResult.java
similarity index 95%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/PainlessResult.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/PainlessResult.java
index f66ffbd7..e765651e 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/PainlessResult.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/PainlessResult.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import java.util.Collections;
import java.util.HashSet;
@@ -21,9 +21,9 @@ import java.util.Set;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
public class PainlessResult {
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/SignatureVerifyingInputStream.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/SignatureVerifyingInputStream.java
similarity index 98%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/SignatureVerifyingInputStream.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/SignatureVerifyingInputStream.java
index 3343ac00..231617b0 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/SignatureVerifyingInputStream.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/SignatureVerifyingInputStream.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
import java.io.FilterInputStream;
import java.io.IOException;
@@ -28,7 +28,7 @@ import org.bouncycastle.openpgp.PGPObjectFactory;
import org.bouncycastle.openpgp.PGPOnePassSignature;
import org.bouncycastle.openpgp.PGPSignature;
import org.bouncycastle.openpgp.PGPSignatureList;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
public class SignatureVerifyingInputStream extends FilterInputStream {
diff --git a/src/main/java/org/pgpainless/pgpainless/decryption_verification/package-info.java b/painless-core/src/main/java/org/pgpainless/decryption_verification/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/decryption_verification/package-info.java
rename to painless-core/src/main/java/org/pgpainless/decryption_verification/package-info.java
index 8db36bb0..37376629 100644
--- a/src/main/java/org/pgpainless/pgpainless/decryption_verification/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/decryption_verification/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes used to decryption and verification of OpenPGP encrypted / signed data.
*/
-package org.pgpainless.pgpainless.decryption_verification;
+package org.pgpainless.decryption_verification;
diff --git a/src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionBuilder.java b/painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionBuilder.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionBuilder.java
rename to painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionBuilder.java
index 56e7ce6c..b8502821 100644
--- a/src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionBuilder.java
+++ b/painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionBuilder.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.encryption_signing;
+package org.pgpainless.encryption_signing;
import java.io.IOException;
import java.io.OutputStream;
@@ -29,19 +29,19 @@ import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
import org.bouncycastle.openpgp.PGPSecretKey;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.SecretKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.impl.And;
-import org.pgpainless.pgpainless.key.selection.key.impl.EncryptionKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.impl.NoRevocation;
-import org.pgpainless.pgpainless.key.selection.key.impl.SignatureKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.SecretKeySelectionStrategy;
+import org.pgpainless.key.selection.key.impl.And;
+import org.pgpainless.key.selection.key.impl.EncryptionKeySelectionStrategy;
+import org.pgpainless.key.selection.key.impl.NoRevocation;
+import org.pgpainless.key.selection.key.impl.SignatureKeySelectionStrategy;
+import org.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
+import org.pgpainless.util.MultiMap;
public class EncryptionBuilder implements EncryptionBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionBuilderInterface.java b/painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionBuilderInterface.java
similarity index 82%
rename from src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionBuilderInterface.java
rename to painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionBuilderInterface.java
index e2e4f703..c6cff4b0 100644
--- a/src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionBuilderInterface.java
+++ b/painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionBuilderInterface.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.encryption_signing;
+package org.pgpainless.encryption_signing;
import java.io.IOException;
import java.io.OutputStream;
@@ -25,14 +25,14 @@ import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
import org.bouncycastle.openpgp.PGPSecretKey;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
-import org.pgpainless.pgpainless.exception.SecretKeyNotFoundException;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
-import org.pgpainless.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.exception.SecretKeyNotFoundException;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
+import org.pgpainless.util.MultiMap;
public interface EncryptionBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionStream.java b/painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionStream.java
rename to painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java
index 5ab0a08a..c962d023 100644
--- a/src/main/java/org/pgpainless/pgpainless/encryption_signing/EncryptionStream.java
+++ b/painless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.encryption_signing;
+package org.pgpainless.encryption_signing;
import java.io.IOException;
import java.io.OutputStream;
@@ -40,10 +40,10 @@ import org.bouncycastle.openpgp.PGPSignatureGenerator;
import org.bouncycastle.openpgp.operator.bc.BcPGPContentSignerBuilder;
import org.bouncycastle.openpgp.operator.bc.BcPGPDataEncryptorBuilder;
import org.bouncycastle.openpgp.operator.bc.BcPublicKeyKeyEncryptionMethodGenerator;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.decryption_verification.PainlessResult;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.decryption_verification.PainlessResult;
/**
* This class is based upon Jens Neuhalfen's Bouncy-GPG PGPEncryptingStream.
diff --git a/src/main/java/org/pgpainless/pgpainless/encryption_signing/package-info.java b/painless-core/src/main/java/org/pgpainless/encryption_signing/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/encryption_signing/package-info.java
rename to painless-core/src/main/java/org/pgpainless/encryption_signing/package-info.java
index 22bfa79e..c7e05044 100644
--- a/src/main/java/org/pgpainless/pgpainless/encryption_signing/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/encryption_signing/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes used to encrypt or sign data using OpenPGP.
*/
-package org.pgpainless.pgpainless.encryption_signing;
+package org.pgpainless.encryption_signing;
diff --git a/src/main/java/org/pgpainless/pgpainless/exception/PublicKeyNotFoundException.java b/painless-core/src/main/java/org/pgpainless/exception/PublicKeyNotFoundException.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/exception/PublicKeyNotFoundException.java
rename to painless-core/src/main/java/org/pgpainless/exception/PublicKeyNotFoundException.java
index 962c7d05..469f7596 100644
--- a/src/main/java/org/pgpainless/pgpainless/exception/PublicKeyNotFoundException.java
+++ b/painless-core/src/main/java/org/pgpainless/exception/PublicKeyNotFoundException.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.exception;
+package org.pgpainless.exception;
import org.bouncycastle.openpgp.PGPException;
diff --git a/src/main/java/org/pgpainless/pgpainless/exception/SecretKeyNotFoundException.java b/painless-core/src/main/java/org/pgpainless/exception/SecretKeyNotFoundException.java
similarity index 95%
rename from src/main/java/org/pgpainless/pgpainless/exception/SecretKeyNotFoundException.java
rename to painless-core/src/main/java/org/pgpainless/exception/SecretKeyNotFoundException.java
index cd683f2b..61966203 100644
--- a/src/main/java/org/pgpainless/pgpainless/exception/SecretKeyNotFoundException.java
+++ b/painless-core/src/main/java/org/pgpainless/exception/SecretKeyNotFoundException.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.exception;
+package org.pgpainless.exception;
public class SecretKeyNotFoundException extends Exception {
diff --git a/src/main/java/org/pgpainless/pgpainless/exception/package-info.java b/painless-core/src/main/java/org/pgpainless/exception/package-info.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/exception/package-info.java
rename to painless-core/src/main/java/org/pgpainless/exception/package-info.java
index c6772dc1..1d5adbd2 100644
--- a/src/main/java/org/pgpainless/pgpainless/exception/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/exception/package-info.java
@@ -16,4 +16,4 @@
/**
* Exceptions.
*/
-package org.pgpainless.pgpainless.exception;
+package org.pgpainless.exception;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/OpenPgpV4Fingerprint.java b/painless-core/src/main/java/org/pgpainless/key/OpenPgpV4Fingerprint.java
similarity index 99%
rename from src/main/java/org/pgpainless/pgpainless/key/OpenPgpV4Fingerprint.java
rename to painless-core/src/main/java/org/pgpainless/key/OpenPgpV4Fingerprint.java
index 4a87dfe3..92984793 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/OpenPgpV4Fingerprint.java
+++ b/painless-core/src/main/java/org/pgpainless/key/OpenPgpV4Fingerprint.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key;
+package org.pgpainless.key;
import java.math.BigInteger;
import java.nio.ByteBuffer;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/collection/KeyRingCollection.java b/painless-core/src/main/java/org/pgpainless/key/collection/KeyRingCollection.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/key/collection/KeyRingCollection.java
rename to painless-core/src/main/java/org/pgpainless/key/collection/KeyRingCollection.java
index e8101eee..afe4b332 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/collection/KeyRingCollection.java
+++ b/painless-core/src/main/java/org/pgpainless/key/collection/KeyRingCollection.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.collection;
+package org.pgpainless.key.collection;
import java.io.File;
import java.io.FileInputStream;
@@ -27,7 +27,7 @@ import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
-import org.pgpainless.pgpainless.PGPainless;
+import org.pgpainless.PGPainless;
public class KeyRingCollection {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/collection/PGPKeyRing.java b/painless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRing.java
similarity index 95%
rename from src/main/java/org/pgpainless/pgpainless/key/collection/PGPKeyRing.java
rename to painless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRing.java
index 68b5863a..fa4388a5 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/collection/PGPKeyRing.java
+++ b/painless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRing.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.collection;
+package org.pgpainless.key.collection;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
public class PGPKeyRing {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/collection/package-info.java b/painless-core/src/main/java/org/pgpainless/key/collection/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/key/collection/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/collection/package-info.java
index f6db8780..30920119 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/collection/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/collection/package-info.java
@@ -16,4 +16,4 @@
/**
* OpenPGP key collections.
*/
-package org.pgpainless.pgpainless.key.collection;
+package org.pgpainless.key.collection;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/KeyRingBuilder.java b/painless-core/src/main/java/org/pgpainless/key/generation/KeyRingBuilder.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/KeyRingBuilder.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/KeyRingBuilder.java
index 52a73207..f6e79849 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/KeyRingBuilder.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/KeyRingBuilder.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation;
+package org.pgpainless.key.generation;
import java.nio.charset.Charset;
@@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import org.bouncycastle.bcpg.HashAlgorithmTags;
import org.bouncycastle.bcpg.sig.KeyFlags;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.openpgp.PGPEncryptedData;
@@ -44,17 +43,17 @@ import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentSignerBuilder;
import org.bouncycastle.openpgp.operator.jcajce.JcaPGPDigestCalculatorProviderBuilder;
import org.bouncycastle.openpgp.operator.jcajce.JcaPGPKeyPair;
import org.bouncycastle.openpgp.operator.jcajce.JcePBESecretKeyEncryptorBuilder;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.KeyFlag;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
-import org.pgpainless.pgpainless.key.generation.type.ECDH;
-import org.pgpainless.pgpainless.key.generation.type.ECDSA;
-import org.pgpainless.pgpainless.key.generation.type.KeyType;
-import org.pgpainless.pgpainless.key.generation.type.RSA_GENERAL;
-import org.pgpainless.pgpainless.key.generation.type.curve.EllipticCurve;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
-import org.pgpainless.pgpainless.util.KeyRingSubKeyFix;
-import org.pgpainless.pgpainless.util.Passphrase;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.KeyFlag;
+import org.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.key.generation.type.ECDH;
+import org.pgpainless.key.generation.type.ECDSA;
+import org.pgpainless.key.generation.type.KeyType;
+import org.pgpainless.key.generation.type.RSA_GENERAL;
+import org.pgpainless.key.generation.type.curve.EllipticCurve;
+import org.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.util.KeyRingSubKeyFix;
+import org.pgpainless.util.Passphrase;
public class KeyRingBuilder implements KeyRingBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/KeyRingBuilderInterface.java b/painless-core/src/main/java/org/pgpainless/key/generation/KeyRingBuilderInterface.java
similarity index 89%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/KeyRingBuilderInterface.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/KeyRingBuilderInterface.java
index f344be47..76159f2f 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/KeyRingBuilderInterface.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/KeyRingBuilderInterface.java
@@ -13,15 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation;
+package org.pgpainless.key.generation;
import java.security.InvalidAlgorithmParameterException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import org.bouncycastle.openpgp.PGPException;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
-import org.pgpainless.pgpainless.util.Passphrase;
+import org.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.util.Passphrase;
public interface KeyRingBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/KeySpec.java b/painless-core/src/main/java/org/pgpainless/key/generation/KeySpec.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/KeySpec.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/KeySpec.java
index 1c58bf4d..ec9fbe20 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/KeySpec.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/KeySpec.java
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation;
+package org.pgpainless.key.generation;
import org.bouncycastle.openpgp.PGPSignatureSubpacketGenerator;
import org.bouncycastle.openpgp.PGPSignatureSubpacketVector;
-import org.pgpainless.pgpainless.key.generation.type.KeyType;
+import org.pgpainless.key.generation.type.KeyType;
public class KeySpec {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/KeySpecBuilder.java b/painless-core/src/main/java/org/pgpainless/key/generation/KeySpecBuilder.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/KeySpecBuilder.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/KeySpecBuilder.java
index f83e08eb..a4d00670 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/KeySpecBuilder.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/KeySpecBuilder.java
@@ -13,17 +13,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation;
+package org.pgpainless.key.generation;
import org.bouncycastle.bcpg.sig.Features;
import org.bouncycastle.openpgp.PGPSignatureSubpacketGenerator;
-import org.pgpainless.pgpainless.algorithm.AlgorithmSuite;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.Feature;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.KeyFlag;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.KeyType;
+import org.pgpainless.algorithm.AlgorithmSuite;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.Feature;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.KeyFlag;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.key.generation.type.KeyType;
public class KeySpecBuilder implements KeySpecBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/KeySpecBuilderInterface.java b/painless-core/src/main/java/org/pgpainless/key/generation/KeySpecBuilderInterface.java
similarity index 83%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/KeySpecBuilderInterface.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/KeySpecBuilderInterface.java
index ee793c8d..d9dcbcdd 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/KeySpecBuilderInterface.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/KeySpecBuilderInterface.java
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation;
+package org.pgpainless.key.generation;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.Feature;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.KeyFlag;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.Feature;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.KeyFlag;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
public interface KeySpecBuilderInterface {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/package-info.java b/painless-core/src/main/java/org/pgpainless/key/generation/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/package-info.java
index c85ab077..b869e1a7 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes related to OpenPGP key generation.
*/
-package org.pgpainless.pgpainless.key.generation;
+package org.pgpainless.key.generation;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ECDH.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/ECDH.java
similarity index 86%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/ECDH.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/ECDH.java
index 8161fbaa..41e479b3 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ECDH.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/ECDH.java
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
import java.security.spec.AlgorithmParameterSpec;
import org.bouncycastle.jce.spec.ECNamedCurveGenParameterSpec;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.curve.EllipticCurve;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.curve.EllipticCurve;
public class ECDH implements KeyType {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ECDSA.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/ECDSA.java
similarity index 83%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/ECDSA.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/ECDSA.java
index 2ead946c..e3ba0b2d 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ECDSA.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/ECDSA.java
@@ -13,10 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.curve.EllipticCurve;
+
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.curve.EllipticCurve;
public class ECDSA extends ECDH {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ElGamal_ENCRYPT.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/ElGamal_ENCRYPT.java
similarity index 81%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/ElGamal_ENCRYPT.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/ElGamal_ENCRYPT.java
index c90ed579..9c41e434 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ElGamal_ENCRYPT.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/ElGamal_ENCRYPT.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.length.ElGamalLength;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.length.ElGamalLength;
public class ElGamal_ENCRYPT extends ElGamal_GENERAL {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ElGamal_GENERAL.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/ElGamal_GENERAL.java
similarity index 87%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/ElGamal_GENERAL.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/ElGamal_GENERAL.java
index e524881f..94a102c1 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/ElGamal_GENERAL.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/ElGamal_GENERAL.java
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
import java.security.spec.AlgorithmParameterSpec;
import org.bouncycastle.jce.spec.ElGamalParameterSpec;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.length.ElGamalLength;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.length.ElGamalLength;
public class ElGamal_GENERAL implements KeyType {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/KeyType.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/KeyType.java
similarity index 86%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/KeyType.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/KeyType.java
index a9634738..72f181da 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/KeyType.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/KeyType.java
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
import java.security.spec.AlgorithmParameterSpec;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
public interface KeyType {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_ENCRYPT.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_ENCRYPT.java
similarity index 81%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_ENCRYPT.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_ENCRYPT.java
index e9eee26f..c34d989e 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_ENCRYPT.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_ENCRYPT.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.length.RsaLength;
public class RSA_ENCRYPT extends RSA_GENERAL {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_GENERAL.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_GENERAL.java
similarity index 87%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_GENERAL.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_GENERAL.java
index 08818d2f..80810e6e 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_GENERAL.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_GENERAL.java
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.RSAKeyGenParameterSpec;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.length.RsaLength;
public class RSA_GENERAL implements KeyType {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_SIGN.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_SIGN.java
similarity index 81%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_SIGN.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_SIGN.java
index 9a83d056..b18c12b5 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/RSA_SIGN.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/RSA_SIGN.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.key.generation.type.length.RsaLength;
public class RSA_SIGN extends RSA_GENERAL {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/curve/EllipticCurve.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/curve/EllipticCurve.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/curve/EllipticCurve.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/curve/EllipticCurve.java
index 08a20a46..4cdcf9b9 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/curve/EllipticCurve.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/curve/EllipticCurve.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type.curve;
+package org.pgpainless.key.generation.type.curve;
public enum EllipticCurve {
_P256("P-256"),
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/curve/package-info.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/curve/package-info.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/curve/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/curve/package-info.java
index 89c6eb3d..bf7cff10 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/curve/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/curve/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes related to elliptic curve cryptography.
*/
-package org.pgpainless.pgpainless.key.generation.type.curve;
+package org.pgpainless.key.generation.type.curve;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/DiffieHellmanLength.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/DiffieHellmanLength.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/length/DiffieHellmanLength.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/length/DiffieHellmanLength.java
index 263613e5..f1953b30 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/DiffieHellmanLength.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/DiffieHellmanLength.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type.length;
+package org.pgpainless.key.generation.type.length;
public enum DiffieHellmanLength implements KeyLength {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/ElGamalLength.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/ElGamalLength.java
similarity index 99%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/length/ElGamalLength.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/length/ElGamalLength.java
index 31a617ea..61a507d1 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/ElGamalLength.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/ElGamalLength.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type.length;
+package org.pgpainless.key.generation.type.length;
import java.math.BigInteger;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/KeyLength.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/KeyLength.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/length/KeyLength.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/length/KeyLength.java
index 8c9ddb3b..f624c9fb 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/KeyLength.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/KeyLength.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type.length;
+package org.pgpainless.key.generation.type.length;
public interface KeyLength {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/RsaLength.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/RsaLength.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/length/RsaLength.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/length/RsaLength.java
index 59437a6b..823f67ff 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/RsaLength.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/RsaLength.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.generation.type.length;
+package org.pgpainless.key.generation.type.length;
public enum RsaLength implements KeyLength {
@Deprecated
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/package-info.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/package-info.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/length/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/length/package-info.java
index bc5f712e..4864d5e6 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/length/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/length/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes describing the lengths of different public key crypto systems.
*/
-package org.pgpainless.pgpainless.key.generation.type.length;
+package org.pgpainless.key.generation.type.length;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/generation/type/package-info.java b/painless-core/src/main/java/org/pgpainless/key/generation/type/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/key/generation/type/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/generation/type/package-info.java
index 0b525a60..c4cff4c9 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/generation/type/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/generation/type/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes describing different OpenPGP key types.
*/
-package org.pgpainless.pgpainless.key.generation.type;
+package org.pgpainless.key.generation.type;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/package-info.java b/painless-core/src/main/java/org/pgpainless/key/package-info.java
similarity index 94%
rename from src/main/java/org/pgpainless/pgpainless/key/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/package-info.java
index 6e18c27a..04c318c0 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes related to OpenPGP keys.
*/
-package org.pgpainless.pgpainless.key;
+package org.pgpainless.key;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/parsing/KeyRingReader.java b/painless-core/src/main/java/org/pgpainless/key/parsing/KeyRingReader.java
similarity index 98%
rename from src/main/java/org/pgpainless/pgpainless/key/parsing/KeyRingReader.java
rename to painless-core/src/main/java/org/pgpainless/key/parsing/KeyRingReader.java
index 51888e98..e3ff108f 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/parsing/KeyRingReader.java
+++ b/painless-core/src/main/java/org/pgpainless/key/parsing/KeyRingReader.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.parsing;
+package org.pgpainless.key.parsing;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -27,7 +27,7 @@ import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
import org.bouncycastle.openpgp.PGPUtil;
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.key.collection.PGPKeyRing;
public class KeyRingReader {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/parsing/package-info.java b/painless-core/src/main/java/org/pgpainless/key/parsing/package-info.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/key/parsing/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/parsing/package-info.java
index ecc226f9..aa7192a8 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/parsing/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/parsing/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes related to OpenPGP key reading.
*/
-package org.pgpainless.pgpainless.key.parsing;
+package org.pgpainless.key.parsing;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/protection/KeyRingProtectionSettings.java b/painless-core/src/main/java/org/pgpainless/key/protection/KeyRingProtectionSettings.java
similarity index 88%
rename from src/main/java/org/pgpainless/pgpainless/key/protection/KeyRingProtectionSettings.java
rename to painless-core/src/main/java/org/pgpainless/key/protection/KeyRingProtectionSettings.java
index 7d1d0a87..732428e6 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/protection/KeyRingProtectionSettings.java
+++ b/painless-core/src/main/java/org/pgpainless/key/protection/KeyRingProtectionSettings.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.protection;
+package org.pgpainless.key.protection;
-import org.pgpainless.pgpainless.algorithm.HashAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.algorithm.HashAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
public class KeyRingProtectionSettings {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/protection/PassphraseMapKeyRingProtector.java b/painless-core/src/main/java/org/pgpainless/key/protection/PassphraseMapKeyRingProtector.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/key/protection/PassphraseMapKeyRingProtector.java
rename to painless-core/src/main/java/org/pgpainless/key/protection/PassphraseMapKeyRingProtector.java
index b2529aee..2e91d37b 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/protection/PassphraseMapKeyRingProtector.java
+++ b/painless-core/src/main/java/org/pgpainless/key/protection/PassphraseMapKeyRingProtector.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.protection;
+package org.pgpainless.key.protection;
import java.util.HashMap;
import java.util.Map;
@@ -25,7 +25,7 @@ import org.bouncycastle.openpgp.operator.PGPDigestCalculatorProvider;
import org.bouncycastle.openpgp.operator.bc.BcPBESecretKeyDecryptorBuilder;
import org.bouncycastle.openpgp.operator.bc.BcPBESecretKeyEncryptorBuilder;
import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider;
-import org.pgpainless.pgpainless.util.Passphrase;
+import org.pgpainless.util.Passphrase;
/**
* Implementation of the {@link SecretKeyRingProtector} which holds a map of key ids and their passwords.
diff --git a/src/main/java/org/pgpainless/pgpainless/key/protection/SecretKeyRingProtector.java b/painless-core/src/main/java/org/pgpainless/key/protection/SecretKeyRingProtector.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/key/protection/SecretKeyRingProtector.java
rename to painless-core/src/main/java/org/pgpainless/key/protection/SecretKeyRingProtector.java
index ff820ce0..6f0d7ae9 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/protection/SecretKeyRingProtector.java
+++ b/painless-core/src/main/java/org/pgpainless/key/protection/SecretKeyRingProtector.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.protection;
+package org.pgpainless.key.protection;
import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/protection/UnprotectedKeysProtector.java b/painless-core/src/main/java/org/pgpainless/key/protection/UnprotectedKeysProtector.java
similarity index 95%
rename from src/main/java/org/pgpainless/pgpainless/key/protection/UnprotectedKeysProtector.java
rename to painless-core/src/main/java/org/pgpainless/key/protection/UnprotectedKeysProtector.java
index 82711013..304eb004 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/protection/UnprotectedKeysProtector.java
+++ b/painless-core/src/main/java/org/pgpainless/key/protection/UnprotectedKeysProtector.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.protection;
+package org.pgpainless.key.protection;
import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor;
import org.bouncycastle.openpgp.operator.PBESecretKeyEncryptor;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/protection/package-info.java b/painless-core/src/main/java/org/pgpainless/key/protection/package-info.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/key/protection/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/protection/package-info.java
index 57f95712..f177f3ae 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/protection/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/protection/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes related to OpenPGP secret key password protection.
*/
-package org.pgpainless.pgpainless.key.protection;
+package org.pgpainless.key.protection;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/KeySelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/KeySelectionStrategy.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/KeySelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/KeySelectionStrategy.java
index 7b1283b2..0674c9d7 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/KeySelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/KeySelectionStrategy.java
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key;
+package org.pgpainless.key.selection.key;
import java.util.Set;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.util.MultiMap;
/**
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/PublicKeySelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/PublicKeySelectionStrategy.java
similarity index 94%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/PublicKeySelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/PublicKeySelectionStrategy.java
index 88b4aa7d..13d8376d 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/PublicKeySelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/PublicKeySelectionStrategy.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key;
+package org.pgpainless.key.selection.key;
import java.util.HashSet;
import java.util.Iterator;
@@ -21,7 +21,7 @@ import java.util.Set;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.util.MultiMap;
/**
* Key Selection Strategy which accepts {@link PGPPublicKey}s that are accepted by the abstract method
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/SecretKeySelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/SecretKeySelectionStrategy.java
similarity index 94%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/SecretKeySelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/SecretKeySelectionStrategy.java
index 6089268f..e034d907 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/SecretKeySelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/SecretKeySelectionStrategy.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key;
+package org.pgpainless.key.selection.key;
import java.util.HashSet;
import java.util.Iterator;
@@ -21,7 +21,7 @@ import java.util.Set;
import org.bouncycastle.openpgp.PGPSecretKey;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.util.MultiMap;
/**
* Key Selection Strategy which accepts {@link PGPSecretKey}s that are accepted by the abstract method
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/And.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/And.java
similarity index 90%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/And.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/And.java
index 48dbb872..231f8400 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/And.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/And.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPSecretKey;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.SecretKeySelectionStrategy;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.SecretKeySelectionStrategy;
public class And {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/EncryptionKeySelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/EncryptionKeySelectionStrategy.java
similarity index 88%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/EncryptionKeySelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/EncryptionKeySelectionStrategy.java
index 324068a3..c4277a2e 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/EncryptionKeySelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/EncryptionKeySelectionStrategy.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
import org.bouncycastle.openpgp.PGPPublicKey;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
/**
* Key Selection Strategy that only accepts {@link PGPPublicKey}s which are capable of encryption.
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/NoRevocation.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/NoRevocation.java
similarity index 88%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/NoRevocation.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/NoRevocation.java
index 259a3a56..58c2e26d 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/NoRevocation.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/NoRevocation.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPSecretKey;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.SecretKeySelectionStrategy;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.SecretKeySelectionStrategy;
/**
* Key Selection Strategies that do accept only keys, which have no revocation.
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/Or.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/Or.java
similarity index 90%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/Or.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/Or.java
index d334734d..32f110ce 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/Or.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/Or.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPSecretKey;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.SecretKeySelectionStrategy;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.SecretKeySelectionStrategy;
public class Or {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/SignatureKeySelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/SignatureKeySelectionStrategy.java
similarity index 88%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/SignatureKeySelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/SignatureKeySelectionStrategy.java
index fc980d48..a68dfe68 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/SignatureKeySelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/SignatureKeySelectionStrategy.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
import org.bouncycastle.openpgp.PGPSecretKey;
-import org.pgpainless.pgpainless.key.selection.key.SecretKeySelectionStrategy;
+import org.pgpainless.key.selection.key.SecretKeySelectionStrategy;
/**
* Key Selection Strategy that only accepts {@link PGPSecretKey}s which are capable of signing.
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/SignedByMasterKey.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/SignedByMasterKey.java
similarity index 94%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/SignedByMasterKey.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/SignedByMasterKey.java
index c06a7b08..d20a0a04 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/SignedByMasterKey.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/SignedByMasterKey.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
import java.util.Arrays;
import java.util.Iterator;
@@ -24,7 +24,7 @@ import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPSignature;
import org.bouncycastle.openpgp.operator.bc.BcPGPContentVerifierBuilderProvider;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
public class SignedByMasterKey {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/package-info.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/package-info.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/impl/package-info.java
index c43ce212..b1f317ac 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/impl/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/impl/package-info.java
@@ -16,4 +16,4 @@
/**
* Implementations of Key Selection Strategies.
*/
-package org.pgpainless.pgpainless.key.selection.key.impl;
+package org.pgpainless.key.selection.key.impl;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/key/package-info.java b/painless-core/src/main/java/org/pgpainless/key/selection/key/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/key/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/key/package-info.java
index ba523866..36cc3712 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/key/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/key/package-info.java
@@ -16,4 +16,4 @@
/**
* Different Key Selection Strategies.
*/
-package org.pgpainless.pgpainless.key.selection.key;
+package org.pgpainless.key.selection.key;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/KeyRingSelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/KeyRingSelectionStrategy.java
similarity index 89%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/KeyRingSelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/KeyRingSelectionStrategy.java
index 647015ec..7285b1d4 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/KeyRingSelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/KeyRingSelectionStrategy.java
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring;
+package org.pgpainless.key.selection.keyring;
import java.util.Set;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.util.MultiMap;
public interface KeyRingSelectionStrategy {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/PublicKeyRingSelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/PublicKeyRingSelectionStrategy.java
similarity index 94%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/PublicKeyRingSelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/PublicKeyRingSelectionStrategy.java
index 8551982f..427ec042 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/PublicKeyRingSelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/PublicKeyRingSelectionStrategy.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring;
+package org.pgpainless.key.selection.keyring;
import java.util.HashSet;
import java.util.Iterator;
@@ -21,7 +21,7 @@ import java.util.Set;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.util.MultiMap;
public abstract class PublicKeyRingSelectionStrategy implements KeyRingSelectionStrategy {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/SecretKeyRingSelectionStrategy.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/SecretKeyRingSelectionStrategy.java
similarity index 94%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/SecretKeyRingSelectionStrategy.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/SecretKeyRingSelectionStrategy.java
index b8550f59..20c9dd58 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/SecretKeyRingSelectionStrategy.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/SecretKeyRingSelectionStrategy.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring;
+package org.pgpainless.key.selection.keyring;
import java.util.HashSet;
import java.util.Iterator;
@@ -21,7 +21,7 @@ import java.util.Set;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.util.MultiMap;
public abstract class SecretKeyRingSelectionStrategy implements KeyRingSelectionStrategy {
@Override
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Email.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Email.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Email.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Email.java
index 3ed9199f..968980d2 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Email.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Email.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPSecretKey;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/ExactUserId.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/ExactUserId.java
similarity index 85%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/ExactUserId.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/ExactUserId.java
index 99fe7deb..24165fc7 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/ExactUserId.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/ExactUserId.java
@@ -13,14 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
import java.util.Iterator;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
-import org.pgpainless.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
public class ExactUserId {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/PartialUserId.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/PartialUserId.java
similarity index 88%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/PartialUserId.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/PartialUserId.java
index 2b6f688f..6e733cc1 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/PartialUserId.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/PartialUserId.java
@@ -13,14 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
import java.util.Iterator;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPSecretKey;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.SecretKeySelectionStrategy;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.SecretKeySelectionStrategy;
public class PartialUserId {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Whitelist.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Whitelist.java
similarity index 88%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Whitelist.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Whitelist.java
index 2c994dd5..6a894122 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Whitelist.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Whitelist.java
@@ -13,16 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
import java.util.Map;
import java.util.Set;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
-import org.pgpainless.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.util.MultiMap;
+import org.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
+import org.pgpainless.util.MultiMap;
public class Whitelist {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Wildcard.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Wildcard.java
similarity index 83%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Wildcard.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Wildcard.java
index 51682ef4..2528321a 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/Wildcard.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/Wildcard.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
-import org.pgpainless.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.PublicKeyRingSelectionStrategy;
+import org.pgpainless.key.selection.keyring.SecretKeyRingSelectionStrategy;
public class Wildcard {
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/XMPP.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/XMPP.java
similarity index 95%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/XMPP.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/XMPP.java
index ae98e998..34397c4c 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/XMPP.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/XMPP.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/package-info.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/package-info.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/package-info.java
index 8e4ce3f0..2b5b6ab0 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/impl/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/impl/package-info.java
@@ -16,4 +16,4 @@
/**
* Implementations of Key Ring Selection Strategies.
*/
-package org.pgpainless.pgpainless.key.selection.keyring.impl;
+package org.pgpainless.key.selection.keyring.impl;
diff --git a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/package-info.java b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/package-info.java
similarity index 91%
rename from src/main/java/org/pgpainless/pgpainless/key/selection/keyring/package-info.java
rename to painless-core/src/main/java/org/pgpainless/key/selection/keyring/package-info.java
index 756d0037..b4c602fb 100644
--- a/src/main/java/org/pgpainless/pgpainless/key/selection/keyring/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/key/selection/keyring/package-info.java
@@ -16,4 +16,4 @@
/**
* Different Key Ring Selection Strategies.
*/
-package org.pgpainless.pgpainless.key.selection.keyring;
+package org.pgpainless.key.selection.keyring;
diff --git a/src/main/java/org/pgpainless/pgpainless/package-info.java b/painless-core/src/main/java/org/pgpainless/package-info.java
similarity index 87%
rename from src/main/java/org/pgpainless/pgpainless/package-info.java
rename to painless-core/src/main/java/org/pgpainless/package-info.java
index 562f50f8..fdc0fe96 100644
--- a/src/main/java/org/pgpainless/pgpainless/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/package-info.java
@@ -16,6 +16,6 @@
/**
* PGPainless - Use OpenPGP Painlessly!
*
- * @see pgpainless.org
+ * @see org.pgpainless.core.org
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
diff --git a/src/main/java/org/pgpainless/pgpainless/symmetric_encryption/SymmetricEncryptorDecryptor.java b/painless-core/src/main/java/org/pgpainless/symmetric_encryption/SymmetricEncryptorDecryptor.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/symmetric_encryption/SymmetricEncryptorDecryptor.java
rename to painless-core/src/main/java/org/pgpainless/symmetric_encryption/SymmetricEncryptorDecryptor.java
index ae5c2dc7..9e70ec36 100644
--- a/src/main/java/org/pgpainless/pgpainless/symmetric_encryption/SymmetricEncryptorDecryptor.java
+++ b/painless-core/src/main/java/org/pgpainless/symmetric_encryption/SymmetricEncryptorDecryptor.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.symmetric_encryption;
+package org.pgpainless.symmetric_encryption;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
@@ -39,9 +39,9 @@ import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider;
import org.bouncycastle.openpgp.operator.jcajce.JcePBEKeyEncryptionMethodGenerator;
import org.bouncycastle.openpgp.operator.jcajce.JcePGPDataEncryptorBuilder;
import org.bouncycastle.util.io.Streams;
-import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.util.Passphrase;
+import org.pgpainless.algorithm.CompressionAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.util.Passphrase;
/**
* Stolen from
diff --git a/src/main/java/org/pgpainless/pgpainless/symmetric_encryption/package-info.java b/painless-core/src/main/java/org/pgpainless/symmetric_encryption/package-info.java
similarity index 92%
rename from src/main/java/org/pgpainless/pgpainless/symmetric_encryption/package-info.java
rename to painless-core/src/main/java/org/pgpainless/symmetric_encryption/package-info.java
index 7992d53c..a250b706 100644
--- a/src/main/java/org/pgpainless/pgpainless/symmetric_encryption/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/symmetric_encryption/package-info.java
@@ -16,4 +16,4 @@
/**
* Classes related to OpenPGP symmetric encryption.
*/
-package org.pgpainless.pgpainless.symmetric_encryption;
+package org.pgpainless.symmetric_encryption;
diff --git a/src/main/java/org/pgpainless/pgpainless/util/BCUtil.java b/painless-core/src/main/java/org/pgpainless/util/BCUtil.java
similarity index 97%
rename from src/main/java/org/pgpainless/pgpainless/util/BCUtil.java
rename to painless-core/src/main/java/org/pgpainless/util/BCUtil.java
index 395d0809..e4332ac5 100644
--- a/src/main/java/org/pgpainless/pgpainless/util/BCUtil.java
+++ b/painless-core/src/main/java/org/pgpainless/util/BCUtil.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.util;
+package org.pgpainless.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -39,11 +39,11 @@ import org.bouncycastle.openpgp.PGPSignatureSubpacketVector;
import org.bouncycastle.openpgp.PGPUtil;
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
import org.bouncycastle.util.io.Streams;
-import org.pgpainless.pgpainless.algorithm.KeyFlag;
-import org.pgpainless.pgpainless.key.selection.key.PublicKeySelectionStrategy;
-import org.pgpainless.pgpainless.key.selection.key.impl.And;
-import org.pgpainless.pgpainless.key.selection.key.impl.NoRevocation;
-import org.pgpainless.pgpainless.key.selection.key.impl.SignedByMasterKey;
+import org.pgpainless.algorithm.KeyFlag;
+import org.pgpainless.key.selection.key.PublicKeySelectionStrategy;
+import org.pgpainless.key.selection.key.impl.And;
+import org.pgpainless.key.selection.key.impl.NoRevocation;
+import org.pgpainless.key.selection.key.impl.SignedByMasterKey;
public class BCUtil {
diff --git a/src/main/java/org/pgpainless/pgpainless/util/KeyRingSubKeyFix.java b/painless-core/src/main/java/org/pgpainless/util/KeyRingSubKeyFix.java
similarity index 99%
rename from src/main/java/org/pgpainless/pgpainless/util/KeyRingSubKeyFix.java
rename to painless-core/src/main/java/org/pgpainless/util/KeyRingSubKeyFix.java
index 08b42619..a226b55f 100644
--- a/src/main/java/org/pgpainless/pgpainless/util/KeyRingSubKeyFix.java
+++ b/painless-core/src/main/java/org/pgpainless/util/KeyRingSubKeyFix.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.util;
+package org.pgpainless.util;
import java.lang.reflect.Field;
import java.util.ArrayList;
diff --git a/src/main/java/org/pgpainless/pgpainless/util/MultiMap.java b/painless-core/src/main/java/org/pgpainless/util/MultiMap.java
similarity index 98%
rename from src/main/java/org/pgpainless/pgpainless/util/MultiMap.java
rename to painless-core/src/main/java/org/pgpainless/util/MultiMap.java
index 83df5803..178822f7 100644
--- a/src/main/java/org/pgpainless/pgpainless/util/MultiMap.java
+++ b/painless-core/src/main/java/org/pgpainless/util/MultiMap.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.util;
+package org.pgpainless.util;
import java.util.Collection;
import java.util.HashMap;
diff --git a/src/main/java/org/pgpainless/pgpainless/util/Passphrase.java b/painless-core/src/main/java/org/pgpainless/util/Passphrase.java
similarity index 96%
rename from src/main/java/org/pgpainless/pgpainless/util/Passphrase.java
rename to painless-core/src/main/java/org/pgpainless/util/Passphrase.java
index 0938108a..094158ed 100644
--- a/src/main/java/org/pgpainless/pgpainless/util/Passphrase.java
+++ b/painless-core/src/main/java/org/pgpainless/util/Passphrase.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless.util;
+package org.pgpainless.util;
import java.util.Arrays;
diff --git a/src/main/java/org/pgpainless/pgpainless/util/package-info.java b/painless-core/src/main/java/org/pgpainless/util/package-info.java
similarity index 93%
rename from src/main/java/org/pgpainless/pgpainless/util/package-info.java
rename to painless-core/src/main/java/org/pgpainless/util/package-info.java
index cada7f7f..9f7b28ca 100644
--- a/src/main/java/org/pgpainless/pgpainless/util/package-info.java
+++ b/painless-core/src/main/java/org/pgpainless/util/package-info.java
@@ -16,4 +16,4 @@
/**
* Utility classes.
*/
-package org.pgpainless.pgpainless.util;
+package org.pgpainless.util;
diff --git a/src/test/java/org/pgpainless/pgpainless/AbstractPGPainlessTest.java b/painless-core/src/test/java/org/pgpainless/AbstractPGPainlessTest.java
similarity index 96%
rename from src/test/java/org/pgpainless/pgpainless/AbstractPGPainlessTest.java
rename to painless-core/src/test/java/org/pgpainless/AbstractPGPainlessTest.java
index 0fd81952..68722887 100644
--- a/src/test/java/org/pgpainless/pgpainless/AbstractPGPainlessTest.java
+++ b/painless-core/src/test/java/org/pgpainless/AbstractPGPainlessTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import java.security.Security;
diff --git a/src/test/java/org/pgpainless/pgpainless/BCUtilTest.java b/painless-core/src/test/java/org/pgpainless/BCUtilTest.java
similarity index 92%
rename from src/test/java/org/pgpainless/pgpainless/BCUtilTest.java
rename to painless-core/src/test/java/org/pgpainless/BCUtilTest.java
index 3331b9b7..097b5712 100644
--- a/src/test/java/org/pgpainless/pgpainless/BCUtilTest.java
+++ b/painless-core/src/test/java/org/pgpainless/BCUtilTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNotNull;
@@ -29,6 +29,7 @@ import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
+import junit.framework.TestCase;
import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
@@ -37,11 +38,11 @@ import org.bouncycastle.openpgp.PGPSecretKey;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
import org.junit.Test;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
-import org.pgpainless.pgpainless.key.generation.KeySpec;
-import org.pgpainless.pgpainless.key.generation.type.RSA_GENERAL;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
-import org.pgpainless.pgpainless.util.BCUtil;
+import org.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.key.generation.KeySpec;
+import org.pgpainless.key.generation.type.RSA_GENERAL;
+import org.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.util.BCUtil;
public class BCUtilTest extends AbstractPGPainlessTest {
@@ -120,15 +121,15 @@ public class BCUtilTest extends AbstractPGPainlessTest {
}
}
- assertNotNull(subKey);
+ TestCase.assertNotNull(subKey);
PGPSecretKeyRing alice_mallory = PGPSecretKeyRing.insertSecretKey(alice.getSecretKeys(), subKey);
// Check, if alice_mallory contains mallory's key
- assertNotNull(alice_mallory.getSecretKey(subKey.getKeyID()));
+ TestCase.assertNotNull(alice_mallory.getSecretKey(subKey.getKeyID()));
PGPSecretKeyRing cleaned = BCUtil.removeUnassociatedKeysFromKeyRing(alice_mallory, alice.getPublicKeys().getPublicKey());
- assertNull(cleaned.getSecretKey(subKey.getKeyID()));
+ TestCase.assertNull(cleaned.getSecretKey(subKey.getKeyID()));
}
@Test
diff --git a/src/test/java/org/pgpainless/pgpainless/BouncycastleExportSubkeys.java b/painless-core/src/test/java/org/pgpainless/BouncycastleExportSubkeys.java
similarity index 99%
rename from src/test/java/org/pgpainless/pgpainless/BouncycastleExportSubkeys.java
rename to painless-core/src/test/java/org/pgpainless/BouncycastleExportSubkeys.java
index 1ea40509..512d2639 100644
--- a/src/test/java/org/pgpainless/pgpainless/BouncycastleExportSubkeys.java
+++ b/painless-core/src/test/java/org/pgpainless/BouncycastleExportSubkeys.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
diff --git a/src/test/java/org/pgpainless/pgpainless/EncryptDecryptTest.java b/painless-core/src/test/java/org/pgpainless/EncryptDecryptTest.java
similarity index 88%
rename from src/test/java/org/pgpainless/pgpainless/EncryptDecryptTest.java
rename to painless-core/src/test/java/org/pgpainless/EncryptDecryptTest.java
index 8acf13e2..b4db706f 100644
--- a/src/test/java/org/pgpainless/pgpainless/EncryptDecryptTest.java
+++ b/painless-core/src/test/java/org/pgpainless/EncryptDecryptTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertFalse;
@@ -36,21 +36,21 @@ import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.util.io.Streams;
import org.junit.Ignore;
import org.junit.Test;
-import org.pgpainless.pgpainless.algorithm.KeyFlag;
-import org.pgpainless.pgpainless.algorithm.PublicKeyAlgorithm;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.decryption_verification.DecryptionStream;
-import org.pgpainless.pgpainless.decryption_verification.PainlessResult;
-import org.pgpainless.pgpainless.encryption_signing.EncryptionStream;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
-import org.pgpainless.pgpainless.key.generation.KeySpec;
-import org.pgpainless.pgpainless.key.generation.type.ElGamal_GENERAL;
-import org.pgpainless.pgpainless.key.generation.type.RSA_GENERAL;
-import org.pgpainless.pgpainless.key.generation.type.length.ElGamalLength;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
-import org.pgpainless.pgpainless.key.protection.UnprotectedKeysProtector;
-import org.pgpainless.pgpainless.util.BCUtil;
+import org.pgpainless.algorithm.KeyFlag;
+import org.pgpainless.algorithm.PublicKeyAlgorithm;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.decryption_verification.DecryptionStream;
+import org.pgpainless.decryption_verification.PainlessResult;
+import org.pgpainless.encryption_signing.EncryptionStream;
+import org.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.key.generation.KeySpec;
+import org.pgpainless.key.generation.type.ElGamal_GENERAL;
+import org.pgpainless.key.generation.type.RSA_GENERAL;
+import org.pgpainless.key.generation.type.length.ElGamalLength;
+import org.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.key.protection.UnprotectedKeysProtector;
+import org.pgpainless.util.BCUtil;
public class EncryptDecryptTest extends AbstractPGPainlessTest {
diff --git a/src/test/java/org/pgpainless/pgpainless/ImportExportKeyTest.java b/painless-core/src/test/java/org/pgpainless/ImportExportKeyTest.java
similarity index 96%
rename from src/test/java/org/pgpainless/pgpainless/ImportExportKeyTest.java
rename to painless-core/src/test/java/org/pgpainless/ImportExportKeyTest.java
index 0972b190..edcd2784 100644
--- a/src/test/java/org/pgpainless/pgpainless/ImportExportKeyTest.java
+++ b/painless-core/src/test/java/org/pgpainless/ImportExportKeyTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import static junit.framework.TestCase.assertTrue;
@@ -32,7 +32,7 @@ import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
import org.junit.Test;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.key.collection.PGPKeyRing;
public class ImportExportKeyTest {
diff --git a/src/test/java/org/pgpainless/pgpainless/KeyRingSubKeyFixTest.java b/painless-core/src/test/java/org/pgpainless/KeyRingSubKeyFixTest.java
similarity index 90%
rename from src/test/java/org/pgpainless/pgpainless/KeyRingSubKeyFixTest.java
rename to painless-core/src/test/java/org/pgpainless/KeyRingSubKeyFixTest.java
index eda961cc..46e0cb50 100644
--- a/src/test/java/org/pgpainless/pgpainless/KeyRingSubKeyFixTest.java
+++ b/painless-core/src/test/java/org/pgpainless/KeyRingSubKeyFixTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import static junit.framework.TestCase.assertTrue;
@@ -29,9 +29,9 @@ import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.junit.Test;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
-import org.pgpainless.pgpainless.util.BCUtil;
-import org.pgpainless.pgpainless.util.KeyRingSubKeyFix;
+import org.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.util.BCUtil;
+import org.pgpainless.util.KeyRingSubKeyFix;
public class KeyRingSubKeyFixTest {
diff --git a/src/test/java/org/pgpainless/pgpainless/LengthTest.java b/painless-core/src/test/java/org/pgpainless/LengthTest.java
similarity index 94%
rename from src/test/java/org/pgpainless/pgpainless/LengthTest.java
rename to painless-core/src/test/java/org/pgpainless/LengthTest.java
index f006dbab..0b730d65 100644
--- a/src/test/java/org/pgpainless/pgpainless/LengthTest.java
+++ b/painless-core/src/test/java/org/pgpainless/LengthTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -31,10 +31,10 @@ import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.util.io.Streams;
import org.junit.Ignore;
-import org.pgpainless.pgpainless.key.collection.PGPKeyRing;
-import org.pgpainless.pgpainless.key.generation.type.length.RsaLength;
-import org.pgpainless.pgpainless.key.protection.SecretKeyRingProtector;
-import org.pgpainless.pgpainless.key.protection.UnprotectedKeysProtector;
+import org.pgpainless.key.collection.PGPKeyRing;
+import org.pgpainless.key.generation.type.length.RsaLength;
+import org.pgpainless.key.protection.SecretKeyRingProtector;
+import org.pgpainless.key.protection.UnprotectedKeysProtector;
/**
* Class used to determine the length of cipher-text depending on used algorithms.
diff --git a/src/test/java/org/pgpainless/pgpainless/OpenPgpV4FingerprintTest.java b/painless-core/src/test/java/org/pgpainless/OpenPgpV4FingerprintTest.java
similarity index 96%
rename from src/test/java/org/pgpainless/pgpainless/OpenPgpV4FingerprintTest.java
rename to painless-core/src/test/java/org/pgpainless/OpenPgpV4FingerprintTest.java
index e7ba3dda..fe9f25de 100644
--- a/src/test/java/org/pgpainless/pgpainless/OpenPgpV4FingerprintTest.java
+++ b/painless-core/src/test/java/org/pgpainless/OpenPgpV4FingerprintTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import static junit.framework.TestCase.assertEquals;
@@ -21,7 +21,7 @@ import java.io.IOException;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.junit.Test;
-import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
+import org.pgpainless.key.OpenPgpV4Fingerprint;
public class OpenPgpV4FingerprintTest {
diff --git a/src/test/java/org/pgpainless/pgpainless/SymmetricTest.java b/painless-core/src/test/java/org/pgpainless/SymmetricTest.java
similarity index 94%
rename from src/test/java/org/pgpainless/pgpainless/SymmetricTest.java
rename to painless-core/src/test/java/org/pgpainless/SymmetricTest.java
index 82d2f735..27865f05 100644
--- a/src/test/java/org/pgpainless/pgpainless/SymmetricTest.java
+++ b/painless-core/src/test/java/org/pgpainless/SymmetricTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import static junit.framework.TestCase.assertTrue;
@@ -26,8 +26,8 @@ import java.util.logging.Logger;
import org.bouncycastle.bcpg.ArmoredOutputStream;
import org.bouncycastle.openpgp.PGPException;
import org.junit.Test;
-import org.pgpainless.pgpainless.algorithm.SymmetricKeyAlgorithm;
-import org.pgpainless.pgpainless.util.Passphrase;
+import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
+import org.pgpainless.util.Passphrase;
public class SymmetricTest extends AbstractPGPainlessTest {
diff --git a/src/test/java/org/pgpainless/pgpainless/TestKeys.java b/painless-core/src/test/java/org/pgpainless/TestKeys.java
similarity index 99%
rename from src/test/java/org/pgpainless/pgpainless/TestKeys.java
rename to painless-core/src/test/java/org/pgpainless/TestKeys.java
index b708bcda..e4a821bb 100644
--- a/src/test/java/org/pgpainless/pgpainless/TestKeys.java
+++ b/painless-core/src/test/java/org/pgpainless/TestKeys.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
import java.io.ByteArrayInputStream;
import java.io.IOException;
diff --git a/src/test/java/org/pgpainless/pgpainless/TestKeysTest.java b/painless-core/src/test/java/org/pgpainless/TestKeysTest.java
similarity index 86%
rename from src/test/java/org/pgpainless/pgpainless/TestKeysTest.java
rename to painless-core/src/test/java/org/pgpainless/TestKeysTest.java
index 2923c219..d9bb0e9e 100644
--- a/src/test/java/org/pgpainless/pgpainless/TestKeysTest.java
+++ b/painless-core/src/test/java/org/pgpainless/TestKeysTest.java
@@ -13,9 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.pgpainless.pgpainless;
+package org.pgpainless;
-import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertTrue;
import java.io.ByteArrayInputStream;
@@ -25,14 +24,15 @@ import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Collections;
+import junit.framework.TestCase;
import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
import org.bouncycastle.util.io.Streams;
import org.junit.Test;
-import org.pgpainless.pgpainless.decryption_verification.DecryptionStream;
-import org.pgpainless.pgpainless.key.protection.UnprotectedKeysProtector;
+import org.pgpainless.decryption_verification.DecryptionStream;
+import org.pgpainless.key.protection.UnprotectedKeysProtector;
public class TestKeysTest extends AbstractPGPainlessTest {
@@ -46,8 +46,8 @@ public class TestKeysTest extends AbstractPGPainlessTest {
@Test
public void keyIdTest() {
- assertEquals(TestKeys.JULIET_KEY_ID, juliet.getSecretKey().getKeyID());
- assertEquals(TestKeys.ROMEO_KEY_ID, romeo.getSecretKey().getKeyID());
+ TestCase.assertEquals(TestKeys.JULIET_KEY_ID, juliet.getSecretKey().getKeyID());
+ TestCase.assertEquals(TestKeys.ROMEO_KEY_ID, romeo.getSecretKey().getKeyID());
}
@Test
diff --git a/plugins.gradle b/plugins.gradle
new file mode 100644
index 00000000..50445f91
--- /dev/null
+++ b/plugins.gradle
@@ -0,0 +1,27 @@
+plugins {
+ id 'java'
+
+ id 'idea'
+ id 'eclipse'
+
+ id 'maven'
+ id 'maven-publish'
+
+ id 'ru.vyarus.animalsniffer' version '1.4.3'
+
+ id 'checkstyle'
+}
+
+// animalsniffer
+dependencies {
+ signature "net.sf.androidscents.signature:android-api-level-${pgpainlessMinAndroidSdk}:2.3.1_r2@signature"
+}
+animalsniffer {
+ sourceSets = [sourceSets.main]
+}
+
+// checkstyle
+checkstyle {
+ configFile = 'config/checkstyle.xml' as File
+ toolVersion = '8.10'
+}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index eecf6f51..c29a2d92 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,4 @@
-rootProject.name = 'pgpainless'
+rootProject.name = 'PGPainless'
+
+include 'painless-core'
diff --git a/version.gradle b/version.gradle
new file mode 100644
index 00000000..a59615a1
--- /dev/null
+++ b/version.gradle
@@ -0,0 +1,9 @@
+
+allprojects {
+ ext {
+ shortVersion = '0.0.1'
+ isSnapshot = true
+ pgpainlessMinAndroidSdk = 9
+ javaSourceCompatibility = 1.7
+ }
+}
\ No newline at end of file