mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-11-26 22:32:07 +01:00
Do not throw PGPException in OpenPgpV4Fingerprint
This commit is contained in:
parent
6fa7c33b7a
commit
260ecaaea3
5 changed files with 18 additions and 28 deletions
|
@ -76,12 +76,7 @@ public class DecryptionBuilder implements DecryptionBuilderInterface {
|
||||||
Set<PGPPublicKeyRing> publicKeyRings = new HashSet<>();
|
Set<PGPPublicKeyRing> publicKeyRings = new HashSet<>();
|
||||||
for (Iterator<PGPPublicKeyRing> i = publicKeyRingCollection.getKeyRings(); i.hasNext(); ) {
|
for (Iterator<PGPPublicKeyRing> i = publicKeyRingCollection.getKeyRings(); i.hasNext(); ) {
|
||||||
PGPPublicKeyRing p = i.next();
|
PGPPublicKeyRing p = i.next();
|
||||||
OpenPgpV4Fingerprint fingerprint;
|
OpenPgpV4Fingerprint fingerprint = new OpenPgpV4Fingerprint(p);
|
||||||
try {
|
|
||||||
fingerprint = new OpenPgpV4Fingerprint(p);
|
|
||||||
} catch (PGPException e) {
|
|
||||||
throw new IllegalArgumentException(e);
|
|
||||||
}
|
|
||||||
if (trustedKeyIds.contains(fingerprint)) {
|
if (trustedKeyIds.contains(fingerprint)) {
|
||||||
publicKeyRings.add(p);
|
publicKeyRings.add(p);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bouncycastle.openpgp.PGPException;
|
|
||||||
import org.bouncycastle.openpgp.PGPPublicKey;
|
import org.bouncycastle.openpgp.PGPPublicKey;
|
||||||
import org.bouncycastle.openpgp.PGPPublicKeyRing;
|
import org.bouncycastle.openpgp.PGPPublicKeyRing;
|
||||||
import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
|
import org.pgpainless.pgpainless.algorithm.CompressionAlgorithm;
|
||||||
|
@ -94,7 +93,7 @@ public class PainlessResult {
|
||||||
return !verifiedSignaturesFingerprints.isEmpty();
|
return !verifiedSignaturesFingerprints.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean containsVerifiedSignatureFrom(PGPPublicKeyRing publicKeys) throws PGPException {
|
public boolean containsVerifiedSignatureFrom(PGPPublicKeyRing publicKeys) {
|
||||||
for (PGPPublicKey key : publicKeys) {
|
for (PGPPublicKey key : publicKeys) {
|
||||||
OpenPgpV4Fingerprint fingerprint = new OpenPgpV4Fingerprint(key);
|
OpenPgpV4Fingerprint fingerprint = new OpenPgpV4Fingerprint(key);
|
||||||
if (verifiedSignaturesFingerprints.contains(fingerprint)) {
|
if (verifiedSignaturesFingerprints.contains(fingerprint)) {
|
||||||
|
|
|
@ -20,7 +20,6 @@ import java.nio.ByteBuffer;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import org.bouncycastle.openpgp.PGPException;
|
|
||||||
import org.bouncycastle.openpgp.PGPPublicKey;
|
import org.bouncycastle.openpgp.PGPPublicKey;
|
||||||
import org.bouncycastle.openpgp.PGPPublicKeyRing;
|
import org.bouncycastle.openpgp.PGPPublicKeyRing;
|
||||||
import org.bouncycastle.openpgp.PGPSecretKey;
|
import org.bouncycastle.openpgp.PGPSecretKey;
|
||||||
|
@ -40,38 +39,38 @@ public class OpenPgpV4Fingerprint implements CharSequence, Comparable<OpenPgpV4F
|
||||||
* XEP-0373 §4.1: The OpenPGP Public-Key Data Node about how to obtain the fingerprint</a>
|
* XEP-0373 §4.1: The OpenPGP Public-Key Data Node about how to obtain the fingerprint</a>
|
||||||
* @param fingerprint hexadecimal representation of the fingerprint.
|
* @param fingerprint hexadecimal representation of the fingerprint.
|
||||||
*/
|
*/
|
||||||
public OpenPgpV4Fingerprint(String fingerprint) throws PGPException {
|
public OpenPgpV4Fingerprint(String fingerprint) {
|
||||||
if (fingerprint == null) {
|
if (fingerprint == null) {
|
||||||
throw new NullPointerException("Fingerprint MUST NOT be null.");
|
throw new NullPointerException("Fingerprint MUST NOT be null.");
|
||||||
}
|
}
|
||||||
String fp = fingerprint.trim().toUpperCase();
|
String fp = fingerprint.trim().toUpperCase();
|
||||||
if (!isValid(fp)) {
|
if (!isValid(fp)) {
|
||||||
throw new PGPException("Fingerprint " + fingerprint +
|
throw new IllegalArgumentException("Fingerprint " + fingerprint +
|
||||||
" does not appear to be a valid OpenPGP v4 fingerprint.");
|
" does not appear to be a valid OpenPGP v4 fingerprint.");
|
||||||
}
|
}
|
||||||
this.fingerprint = fp;
|
this.fingerprint = fp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpenPgpV4Fingerprint(byte[] bytes) throws PGPException {
|
public OpenPgpV4Fingerprint(byte[] bytes) {
|
||||||
this(new String(bytes, Charset.forName("UTF-8")));
|
this(new String(bytes, Charset.forName("UTF-8")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpenPgpV4Fingerprint(PGPPublicKey key) throws PGPException {
|
public OpenPgpV4Fingerprint(PGPPublicKey key) {
|
||||||
this(Hex.encode(key.getFingerprint()));
|
this(Hex.encode(key.getFingerprint()));
|
||||||
if (key.getVersion() != 4) {
|
if (key.getVersion() != 4) {
|
||||||
throw new PGPException("Key is not a v4 OpenPgp key.");
|
throw new IllegalArgumentException("Key is not a v4 OpenPgp key.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpenPgpV4Fingerprint(PGPSecretKey key) throws PGPException {
|
public OpenPgpV4Fingerprint(PGPSecretKey key) {
|
||||||
this(key.getPublicKey());
|
this(key.getPublicKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpenPgpV4Fingerprint(PGPPublicKeyRing ring) throws PGPException {
|
public OpenPgpV4Fingerprint(PGPPublicKeyRing ring) {
|
||||||
this(ring.getPublicKey());
|
this(ring.getPublicKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OpenPgpV4Fingerprint(PGPSecretKeyRing ring) throws PGPException {
|
public OpenPgpV4Fingerprint(PGPSecretKeyRing ring) {
|
||||||
this(ring.getPublicKey());
|
this(ring.getPublicKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,6 @@ import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.lang.reflect.Constructor;
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
|
@ -19,47 +19,46 @@ import static junit.framework.TestCase.assertEquals;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.bouncycastle.openpgp.PGPException;
|
|
||||||
import org.bouncycastle.openpgp.PGPPublicKey;
|
import org.bouncycastle.openpgp.PGPPublicKey;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
|
import org.pgpainless.pgpainless.key.OpenPgpV4Fingerprint;
|
||||||
|
|
||||||
public class OpenPgpV4FingerprintTest {
|
public class OpenPgpV4FingerprintTest {
|
||||||
|
|
||||||
@Test(expected = PGPException.class)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
public void fpTooShort() throws PGPException {
|
public void fpTooShort() {
|
||||||
String fp = "484f57414c495645"; // Asking Mark
|
String fp = "484f57414c495645"; // Asking Mark
|
||||||
new OpenPgpV4Fingerprint(fp);
|
new OpenPgpV4Fingerprint(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = PGPException.class)
|
@Test(expected = IllegalArgumentException.class)
|
||||||
public void invalidHexTest() throws PGPException {
|
public void invalidHexTest() {
|
||||||
String fp = "UNFORTUNATELYTHISISNOVALIDHEXADECIMALDOH";
|
String fp = "UNFORTUNATELYTHISISNOVALIDHEXADECIMALDOH";
|
||||||
new OpenPgpV4Fingerprint(fp);
|
new OpenPgpV4Fingerprint(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void validFingerprintTest() throws PGPException {
|
public void validFingerprintTest() {
|
||||||
String fp = "4A4F48414E4E53454E2049532041204E45524421";
|
String fp = "4A4F48414E4E53454E2049532041204E45524421";
|
||||||
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint(fp);
|
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint(fp);
|
||||||
assertEquals(fp, finger.toString());
|
assertEquals(fp, finger.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void convertsToUpperCaseTest() throws PGPException {
|
public void convertsToUpperCaseTest() {
|
||||||
String fp = "444f4e5420552048415645204120484f4242593f";
|
String fp = "444f4e5420552048415645204120484f4242593f";
|
||||||
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint(fp);
|
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint(fp);
|
||||||
assertEquals("444F4E5420552048415645204120484F4242593F", finger.toString());
|
assertEquals("444F4E5420552048415645204120484F4242593F", finger.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void equalsOtherFingerprintTest() throws PGPException {
|
public void equalsOtherFingerprintTest() {
|
||||||
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint("5448452043414b452049532041204c4945212121");
|
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint("5448452043414b452049532041204c4945212121");
|
||||||
assertEquals(finger, new OpenPgpV4Fingerprint("5448452043414B452049532041204C4945212121"));
|
assertEquals(finger, new OpenPgpV4Fingerprint("5448452043414B452049532041204C4945212121"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void keyIdTest() throws IOException, PGPException {
|
public void keyIdTest() throws IOException {
|
||||||
PGPPublicKey key = TestKeys.getJulietPublicKeyRing().getPublicKey();
|
PGPPublicKey key = TestKeys.getJulietPublicKeyRing().getPublicKey();
|
||||||
long keyId = key.getKeyID();
|
long keyId = key.getKeyID();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue