From a9a5551d95d964b5037fb2e5308081618a33b802 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Fri, 13 Mar 2015 01:55:31 +0100 Subject: remove notiion of nonce/identifier --- .../keychain/pgp/WrappedUserAttribute.java | 5 +++-- .../keychain/pgp/linked/LinkedCookieResource.java | 26 +++++----------------- .../keychain/pgp/linked/LinkedIdentity.java | 20 +++++++---------- .../keychain/pgp/linked/LinkedResource.java | 4 +--- .../keychain/pgp/linked/RawLinkedIdentity.java | 25 ++------------------- .../keychain/pgp/linked/resources/DnsResource.java | 6 ++--- .../pgp/linked/resources/GenericHttpsResource.java | 4 ++-- .../pgp/linked/resources/TwitterResource.java | 5 ----- 8 files changed, 25 insertions(+), 70 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedUserAttribute.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedUserAttribute.java index 49e4d9793..2431cb743 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedUserAttribute.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedUserAttribute.java @@ -41,7 +41,7 @@ public class WrappedUserAttribute implements Serializable { public static final int UAT_NONE = 0; public static final int UAT_IMAGE = UserAttributeSubpacketTags.IMAGE_ATTRIBUTE; - public static final int UAT_LINKED_ID = 100; + public static final int UAT_LINKED_ID = 101; private PGPUserAttributeSubpacketVector mVector; @@ -82,7 +82,7 @@ public class WrappedUserAttribute implements Serializable { public static WrappedUserAttribute fromData (byte[] data) throws IOException { UserAttributeSubpacketInputStream in = new UserAttributeSubpacketInputStream(new ByteArrayInputStream(data)); - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList<>(); while (in.available() > 0) { list.add(in.readPacket()); } @@ -126,6 +126,7 @@ public class WrappedUserAttribute implements Serializable { private void readObjectNoData() throws ObjectStreamException { } + @SuppressWarnings("SimplifiableIfStatement") @Override public boolean equals(Object o) { if (!WrappedUserAttribute.class.isInstance(o)) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java index c92624f65..21a8c8f98 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java @@ -61,16 +61,16 @@ public abstract class LinkedCookieResource extends LinkedResource { return mSubUri; } - public static String generate (Context context, byte[] fingerprint, int nonce) { - return String.format("[Verifying my PGP key: openpgp4fpr:%s#%08x]", - KeyFormattingUtils.convertFingerprintToHex(fingerprint), nonce); + public static String generate (Context context, byte[] fingerprint) { + return String.format("[Verifying my PGP key: openpgp4fpr:%s]", + KeyFormattingUtils.convertFingerprintToHex(fingerprint)); } public static String generatePreview () { return "[Verifying my PGP key: openpgp4fpr:0x…]"; } - public LinkedVerifyResult verify(byte[] fingerprint, int nonce) { + public LinkedVerifyResult verify(byte[] fingerprint) { OperationLog log = new OperationLog(); log.add(LogType.MSG_LV, 0); @@ -84,7 +84,7 @@ public abstract class LinkedCookieResource extends LinkedResource { Log.d(Constants.TAG, "Resource data: '" + res + "'"); - return verifyString(log, 1, res, nonce, fingerprint); + return verifyString(log, 1, res, fingerprint); } @@ -96,7 +96,7 @@ public abstract class LinkedCookieResource extends LinkedResource { protected LinkedVerifyResult verifyString (OperationLog log, int indent, String res, - int nonce, byte[] fingerprint) { + byte[] fingerprint) { log.add(LogType.MSG_LV_MATCH, indent); Matcher match = matchResource(log, indent+1, res); @@ -106,27 +106,13 @@ public abstract class LinkedCookieResource extends LinkedResource { } String candidateFp = match.group(1).toLowerCase(); - try { - int nonceCandidate = (int) Long.parseLong(match.group(2).toLowerCase(), 16); - - if (nonce != nonceCandidate) { - log.add(LogType.MSG_LV_NONCE_ERROR, indent); - return new LinkedVerifyResult(LinkedVerifyResult.RESULT_ERROR, log); - } - } catch (NumberFormatException e) { - log.add(LogType.MSG_LV_NONCE_ERROR, indent); - return new LinkedVerifyResult(LinkedVerifyResult.RESULT_ERROR, log); - } - String fp = KeyFormattingUtils.convertFingerprintToHex(fingerprint); - if (!fp.equals(candidateFp)) { log.add(LogType.MSG_LV_FP_ERROR, indent); return new LinkedVerifyResult(LinkedVerifyResult.RESULT_ERROR, log); } log.add(LogType.MSG_LV_FP_OK, indent); - log.add(LogType.MSG_LV_NONCE_OK, indent); return new LinkedVerifyResult(LinkedVerifyResult.RESULT_OK, log); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedIdentity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedIdentity.java index d529a2a36..ed3031b84 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedIdentity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedIdentity.java @@ -8,8 +8,6 @@ import org.sufficientlysecure.keychain.util.Log; import java.io.IOException; import java.net.URI; -import java.nio.ByteBuffer; -import java.util.Arrays; import android.content.Context; import android.support.annotation.DrawableRes; @@ -19,8 +17,8 @@ public class LinkedIdentity extends RawLinkedIdentity { public final LinkedResource mResource; - protected LinkedIdentity(int nonce, URI uri, LinkedResource resource) { - super(nonce, uri); + protected LinkedIdentity(URI uri, LinkedResource resource) { + super(uri); if (resource == null) { throw new AssertionError("resource must not be null in a LinkedIdentity!"); } @@ -42,29 +40,27 @@ public class LinkedIdentity extends RawLinkedIdentity { * subpacket can not be parsed as a valid linked id. */ static RawLinkedIdentity fromAttributeSubpacket(UserAttributeSubpacket subpacket) { - if (subpacket.getType() != 100) { + if (subpacket.getType() != 101) { return null; } byte[] data = subpacket.getData(); return fromSubpacketData(data); - } static RawLinkedIdentity fromSubpacketData(byte[] data) { try { - int nonce = ByteBuffer.wrap(data).getInt(); - String uriStr = Strings.fromUTF8ByteArray(Arrays.copyOfRange(data, 4, data.length)); + String uriStr = Strings.fromUTF8ByteArray(data); URI uri = URI.create(uriStr); LinkedResource res = LinkedResource.fromUri(uri); if (res == null) { - return new RawLinkedIdentity(nonce, uri); + return new RawLinkedIdentity(uri); } - return new LinkedIdentity(nonce, uri, res); + return new LinkedIdentity(uri, res); } catch (IllegalArgumentException e) { Log.e(Constants.TAG, "error parsing uri in (suspected) linked id packet"); @@ -72,8 +68,8 @@ public class LinkedIdentity extends RawLinkedIdentity { } } - public static RawLinkedIdentity fromResource (LinkedCookieResource res, int nonce) { - return new RawLinkedIdentity(nonce, res.toUri()); + public static RawLinkedIdentity fromResource (LinkedCookieResource res) { + return new RawLinkedIdentity(res.toUri()); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java index 095fd4ac7..e954a514c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java @@ -23,7 +23,7 @@ public abstract class LinkedResource { protected final HashMap mParams; static Pattern magicPattern = - Pattern.compile("\\[Verifying my PGP key: openpgp4fpr:([a-zA-Z0-9]+)#([a-zA-Z0-9]+)\\]"); + Pattern.compile("\\[Verifying my PGP key: openpgp4fpr:([a-zA-Z0-9]+)]"); protected LinkedResource(Set flags, HashMap params, URI uri) { mFlags = flags; @@ -31,8 +31,6 @@ public abstract class LinkedResource { mSubUri = uri; } - public abstract URI toUri(); - public Set getFlags () { return new HashSet<>(mFlags); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/RawLinkedIdentity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/RawLinkedIdentity.java index 8f0467734..b3acc6790 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/RawLinkedIdentity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/RawLinkedIdentity.java @@ -5,48 +5,27 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute; import java.net.URI; -import java.nio.ByteBuffer; import android.content.Context; -import android.content.Intent; import android.support.annotation.DrawableRes; /** The RawLinkedIdentity contains raw parsed data from a Linked Identity subpacket. */ public class RawLinkedIdentity { - public final int mNonce; public final URI mUri; - protected RawLinkedIdentity(int nonce, URI uri) { - mNonce = nonce; + protected RawLinkedIdentity(URI uri) { mUri = uri; } public byte[] getEncoded() { - byte[] uriData = Strings.toUTF8ByteArray(mUri.toASCIIString()); - - ByteBuffer buf = ByteBuffer.allocate(4 + uriData.length); - - buf.putInt(mNonce); - buf.put(uriData); - - return buf.array(); + return Strings.toUTF8ByteArray(mUri.toASCIIString()); } public WrappedUserAttribute toUserAttribute () { return WrappedUserAttribute.fromSubpacket(WrappedUserAttribute.UAT_LINKED_ID, getEncoded()); } - public static int generateNonce() { - // TODO make this actually random - // byte[] data = new byte[4]; - // new SecureRandom().nextBytes(data); - // return Hex.toHexString(data); - - // debug for now - return 0x8a9bad32; - } - public @DrawableRes int getDisplayIcon() { return R.drawable.ic_warning_grey_24dp; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java index cd0706ff3..253e611a8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java @@ -41,10 +41,10 @@ public class DnsResource extends LinkedCookieResource { mType = type; } - public static String generateText (Context context, byte[] fingerprint, int nonce) { + public static String generateText (Context context, byte[] fingerprint) { - return String.format("pgpid+cookie=%s;%08x", - KeyFormattingUtils.convertFingerprintToHex(fingerprint), nonce); + return String.format("pgpid+cookie=%s", + KeyFormattingUtils.convertFingerprintToHex(fingerprint)); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/GenericHttpsResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/GenericHttpsResource.java index eebe0b5ec..1e872c6cb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/GenericHttpsResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/GenericHttpsResource.java @@ -31,8 +31,8 @@ public class GenericHttpsResource extends LinkedCookieResource { super(flags, params, uri); } - public static String generateText (Context context, byte[] fingerprint, int nonce) { - String cookie = LinkedCookieResource.generate(context, fingerprint, nonce); + public static String generateText (Context context, byte[] fingerprint) { + String cookie = LinkedCookieResource.generate(context, fingerprint); return String.format(context.getResources().getString(R.string.linked_id_generic_text), cookie, "0x" + KeyFormattingUtils.convertFingerprintToHex(fingerprint).substring(24)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/TwitterResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/TwitterResource.java index dc68be7f5..32bf92a99 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/TwitterResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/TwitterResource.java @@ -72,11 +72,6 @@ public class TwitterResource extends LinkedCookieResource { } - public static String generateText (Context context, byte[] fingerprint, int nonce) { - // nothing special here for now, might change this later - return LinkedCookieResource.generate(context, fingerprint, nonce); - } - @Override protected String fetchResource(OperationLog log, int indent) { -- cgit v1.2.3