pgpainless/pgpainless-core/src/test/java/org/pgpainless/key/OpenPgpV4FingerprintTest.java

99 lines
3.7 KiB
Java
Raw Normal View History

2018-07-08 19:31:53 +02:00
/*
* Copyright 2018 Paul Schaub.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.pgpainless.key;
2018-07-08 19:31:53 +02:00
2020-11-13 16:31:59 +01:00
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
2018-07-08 19:31:53 +02:00
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
2018-07-08 19:31:53 +02:00
import org.bouncycastle.openpgp.PGPPublicKey;
2020-11-13 16:31:59 +01:00
import org.junit.jupiter.api.Test;
2018-07-08 19:31:53 +02:00
public class OpenPgpV4FingerprintTest {
2018-07-08 19:31:53 +02:00
2020-11-13 16:31:59 +01:00
@Test
public void fpTooShort() {
2018-07-08 19:31:53 +02:00
String fp = "484f57414c495645"; // Asking Mark
2020-11-13 16:31:59 +01:00
assertThrows(IllegalArgumentException.class, () -> new OpenPgpV4Fingerprint(fp));
2018-07-08 19:31:53 +02:00
}
2020-11-13 16:31:59 +01:00
@Test
public void invalidHexTest() {
2018-07-08 19:31:53 +02:00
String fp = "UNFORTUNATELYTHISISNOVALIDHEXADECIMALDOH";
2020-11-13 16:31:59 +01:00
assertThrows(IllegalArgumentException.class, () -> new OpenPgpV4Fingerprint(fp));
2018-07-08 19:31:53 +02:00
}
@Test
public void validFingerprintTest() {
2018-07-08 19:31:53 +02:00
String fp = "4A4F48414E4E53454E2049532041204E45524421";
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint(fp);
assertEquals(fp, finger.toString());
2018-07-24 14:28:41 +02:00
assertEquals(fp.length(), finger.length());
for (int i = 0; i < finger.length(); i++) {
assertEquals(fp.charAt(i), finger.charAt(i));
}
assertEquals("4A4F", finger.subSequence(0, 4));
2018-07-08 19:31:53 +02:00
}
@Test
public void convertsToUpperCaseTest() {
2018-07-08 19:31:53 +02:00
String fp = "444f4e5420552048415645204120484f4242593f";
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint(fp);
assertEquals("444F4E5420552048415645204120484F4242593F", finger.toString());
}
@Test
public void equalsOtherFingerprintTest() {
2018-07-08 19:31:53 +02:00
OpenPgpV4Fingerprint finger = new OpenPgpV4Fingerprint("5448452043414b452049532041204c4945212121");
assertEquals(finger, new OpenPgpV4Fingerprint("5448452043414B452049532041204C4945212121"));
2018-07-24 14:28:41 +02:00
assertEquals(0, finger.compareTo(new OpenPgpV4Fingerprint("5448452043414B452049532041204C4945212121")));
assertNotEquals(finger, new OpenPgpV4Fingerprint("0000000000000000000000000000000000000000"));
assertNotEquals(finger, null);
assertNotEquals(finger, new Object());
2018-07-08 19:31:53 +02:00
}
@Test
public void assertFingerprintGetKeyIdEqualsKeyId() throws IOException {
2018-07-08 19:31:53 +02:00
PGPPublicKey key = TestKeys.getJulietPublicKeyRing().getPublicKey();
long keyId = key.getKeyID();
OpenPgpV4Fingerprint fingerprint = new OpenPgpV4Fingerprint(key);
assertEquals(keyId, fingerprint.getKeyId());
}
@Test
public void testToUri() {
OpenPgpV4Fingerprint fingerprint = new OpenPgpV4Fingerprint("5448452043414B452049532041204C4945212121");
URI uri = fingerprint.toUri();
assertEquals("openpgp4fpr:5448452043414B452049532041204C4945212121", uri.toString());
OpenPgpV4Fingerprint parsed = OpenPgpV4Fingerprint.fromUri(uri);
assertEquals(fingerprint, parsed);
}
2020-11-13 16:31:59 +01:00
@Test
public void testFromUriThrowsIfWrongScheme() throws URISyntaxException {
URI uri = new URI(null, "5448452043414B452049532041204C4945212121", null);
2020-11-13 16:31:59 +01:00
assertThrows(IllegalArgumentException.class, () -> OpenPgpV4Fingerprint.fromUri(uri));
}
2018-07-08 19:31:53 +02:00
}