affirmation -> linked identity

This commit is contained in:
Vincent Breitmoser
2015-01-15 16:59:11 +01:00
parent c03bcc2799
commit 92b8d874ed
29 changed files with 177 additions and 205 deletions

View File

@@ -39,6 +39,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;
private PGPUserAttributeSubpacketVector mVector;

View File

@@ -1,7 +1,6 @@
package org.sufficientlysecure.keychain.pgp.affirmation;
package org.sufficientlysecure.keychain.pgp.linked;
import org.spongycastle.bcpg.UserAttributeSubpacket;
import org.spongycastle.openpgp.PGPUserAttributeSubpacketVector;
import org.spongycastle.util.Strings;
import org.spongycastle.util.encoders.Hex;
import org.sufficientlysecure.keychain.Constants;
@@ -92,10 +91,10 @@ public class LinkedIdentity {
return result;
}
/** This method parses an affirmation from a UserAttributeSubpacket, or returns null if the
* subpacket can not be parsed as a valid affirmation.
/** This method parses a linked id from a UserAttributeSubpacket, or returns null if the
* subpacket can not be parsed as a valid linked id.
*/
static LinkedIdentity parseAffirmation(UserAttributeSubpacket subpacket) {
static LinkedIdentity parseAttributeSubpacket(UserAttributeSubpacket subpacket) {
if (subpacket.getType() != 100) {
return null;
}
@@ -107,7 +106,7 @@ public class LinkedIdentity {
return parseUri(nonce, Strings.fromUTF8ByteArray(Arrays.copyOfRange(data, 12, data.length)));
} catch (IllegalArgumentException e) {
Log.e(Constants.TAG, "error parsing uri in (suspected) affirmation packet");
Log.e(Constants.TAG, "error parsing uri in (suspected) linked id packet");
return null;
}
}
@@ -116,18 +115,18 @@ public class LinkedIdentity {
URI uri = URI.create(uriString);
if ("pgpid".equals(uri.getScheme())) {
Log.e(Constants.TAG, "unknown uri scheme in (suspected) affirmation packet");
Log.e(Constants.TAG, "unknown uri scheme in (suspected) linked id packet");
return null;
}
if (!uri.isOpaque()) {
Log.e(Constants.TAG, "non-opaque uri in (suspected) affirmation packet");
Log.e(Constants.TAG, "non-opaque uri in (suspected) linked id packet");
return null;
}
String specific = uri.getSchemeSpecificPart();
if (!specific.contains("@")) {
Log.e(Constants.TAG, "unknown uri scheme in affirmation packet");
Log.e(Constants.TAG, "unknown uri scheme in linked id packet");
return null;
}
@@ -152,7 +151,7 @@ public class LinkedIdentity {
}
public static LinkedIdentity fromResource (AffirmationResource res, String nonce) {
public static LinkedIdentity fromResource (LinkedResource res, String nonce) {
return new LinkedIdentity(nonce, res.getFlags(), res.getParams(), res.getSubUri());
}

View File

@@ -1,4 +1,4 @@
package org.sufficientlysecure.keychain.pgp.affirmation;
package org.sufficientlysecure.keychain.pgp.linked;
import android.content.Context;
@@ -6,8 +6,8 @@ import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.operations.results.LinkedVerifyResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
import org.sufficientlysecure.keychain.pgp.affirmation.resources.GenericHttpsResource;
import org.sufficientlysecure.keychain.pgp.affirmation.resources.UnknownResource;
import org.sufficientlysecure.keychain.pgp.linked.resources.GenericHttpsResource;
import org.sufficientlysecure.keychain.pgp.linked.resources.UnknownResource;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.util.Log;
@@ -18,7 +18,7 @@ import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public abstract class AffirmationResource {
public abstract class LinkedResource {
protected final URI mSubUri;
protected final Set<String> mFlags;
@@ -27,7 +27,7 @@ public abstract class AffirmationResource {
static Pattern magicPattern =
Pattern.compile("\\[Verifying my PGP key: pgpid\\+cookie:([a-zA-Z0-9]+)#([a-zA-Z0-9]+)\\]");
protected AffirmationResource(Set<String> flags, HashMap<String,String> params, URI uri) {
protected LinkedResource(Set<String> flags, HashMap<String, String> params, URI uri) {
mFlags = flags;
mParams = params;
mSubUri = uri;
@@ -108,10 +108,10 @@ public abstract class AffirmationResource {
}
public static AffirmationResource findResourceType
public static LinkedResource findResourceType
(Set<String> flags, HashMap<String,String> params, URI uri) {
AffirmationResource res;
LinkedResource res;
res = GenericHttpsResource.create(flags, params, uri);
if (res != null) {

View File

@@ -1,9 +1,9 @@
package org.sufficientlysecure.keychain.pgp.affirmation.resources;
package org.sufficientlysecure.keychain.pgp.linked.resources;
import android.content.Context;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
import org.sufficientlysecure.keychain.pgp.affirmation.AffirmationResource;
import org.sufficientlysecure.keychain.pgp.linked.LinkedResource;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import java.net.URI;
@@ -20,7 +20,7 @@ import de.measite.minidns.Record;
import de.measite.minidns.Record.TYPE;
import de.measite.minidns.record.TXT;
public class DnsResource extends AffirmationResource {
public class DnsResource extends LinkedResource {
static Pattern magicPattern =
Pattern.compile("pgpid\\+cookie=([a-zA-Z0-9]+)(?:#|;)([a-zA-Z0-9]+)");

View File

@@ -1,4 +1,4 @@
package org.sufficientlysecure.keychain.pgp.affirmation.resources;
package org.sufficientlysecure.keychain.pgp.linked.resources;
import android.content.Context;
@@ -8,8 +8,7 @@ import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
import org.sufficientlysecure.keychain.pgp.affirmation.AffirmationResource;
import org.sufficientlysecure.keychain.pgp.affirmation.LinkedIdentity;
import org.sufficientlysecure.keychain.pgp.linked.LinkedResource;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.util.Log;
@@ -23,14 +22,14 @@ import java.util.Set;
import javax.net.ssl.HttpsURLConnection;
public class GenericHttpsResource extends AffirmationResource {
public class GenericHttpsResource extends LinkedResource {
GenericHttpsResource(Set<String> flags, HashMap<String,String> params, URI uri) {
super(flags, params, uri);
}
public static String generateText (Context context, byte[] fingerprint, String nonce) {
String cookie = AffirmationResource.generate(context, fingerprint, nonce);
String cookie = LinkedResource.generate(context, fingerprint, nonce);
return String.format(context.getResources().getString(R.string.linked_id_generic_text),
cookie, "0x" + KeyFormattingUtils.convertFingerprintToHex(fingerprint).substring(24));

View File

@@ -1,4 +1,4 @@
package org.sufficientlysecure.keychain.pgp.affirmation.resources;
package org.sufficientlysecure.keychain.pgp.linked.resources;
import android.content.Context;
import android.util.Base64;
@@ -17,7 +17,7 @@ import org.apache.http.params.BasicHttpParams;
import org.json.JSONException;
import org.json.JSONObject;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
import org.sufficientlysecure.keychain.pgp.affirmation.AffirmationResource;
import org.sufficientlysecure.keychain.pgp.linked.LinkedResource;
import java.io.BufferedReader;
import java.io.IOException;
@@ -29,7 +29,7 @@ import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Set;
public class TwitterResource extends AffirmationResource {
public class TwitterResource extends LinkedResource {
TwitterResource(Set<String> flags, HashMap<String,String> params, URI uri) {
super(flags, params, uri);
@@ -37,7 +37,7 @@ public class TwitterResource extends AffirmationResource {
public static String generateText (Context context, byte[] fingerprint, String nonce) {
// nothing special here for now, might change this later
return AffirmationResource.generate(context, fingerprint, nonce);
return LinkedResource.generate(context, fingerprint, nonce);
}
private String getTwitterStream(String screenName) {

View File

@@ -1,14 +1,13 @@
package org.sufficientlysecure.keychain.pgp.affirmation.resources;
package org.sufficientlysecure.keychain.pgp.linked.resources;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
import org.sufficientlysecure.keychain.pgp.affirmation.AffirmationResource;
import org.sufficientlysecure.keychain.pgp.linked.LinkedResource;
import java.io.IOException;
import java.net.URI;
import java.util.HashMap;
import java.util.Set;
public class UnknownResource extends AffirmationResource {
public class UnknownResource extends LinkedResource {
public UnknownResource(Set<String> flags, HashMap<String,String> params, URI uri) {
super(flags, params, uri);