mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-16 22:05:05 -05:00
parse string util method, better help text for access screen
This commit is contained in:
parent
3b0f76bf60
commit
52f1c930eb
@ -16,5 +16,7 @@
|
|||||||
|
|
||||||
package org.openintents.openpgp;
|
package org.openintents.openpgp;
|
||||||
|
|
||||||
|
import org.openintents.openpgp.OpenPgpError;
|
||||||
|
|
||||||
// Declare OpenPgpError so AIDL can find it and knows that it implements the parcelable protocol.
|
// Declare OpenPgpError so AIDL can find it and knows that it implements the parcelable protocol.
|
||||||
parcelable OpenPgpError;
|
parcelable OpenPgpError;
|
@ -16,5 +16,7 @@
|
|||||||
|
|
||||||
package org.openintents.openpgp;
|
package org.openintents.openpgp;
|
||||||
|
|
||||||
|
import org.openintents.openpgp.OpenPgpSignatureResult;
|
||||||
|
|
||||||
// Declare OpenPgpSignatureResult so AIDL can find it and knows that it implements the parcelable protocol.
|
// Declare OpenPgpSignatureResult so AIDL can find it and knows that it implements the parcelable protocol.
|
||||||
parcelable OpenPgpSignatureResult;
|
parcelable OpenPgpSignatureResult;
|
@ -32,6 +32,8 @@ public class OpenPgpConstants {
|
|||||||
// (for encrypt method)
|
// (for encrypt method)
|
||||||
public static final String PARAMS_USER_IDS = "user_ids";
|
public static final String PARAMS_USER_IDS = "user_ids";
|
||||||
public static final String PARAMS_KEY_IDS = "key_ids";
|
public static final String PARAMS_KEY_IDS = "key_ids";
|
||||||
|
// optional parameter:
|
||||||
|
public static final String PARAMS_PASSPHRASE = "passphrase";
|
||||||
|
|
||||||
/* Service Bundle returns */
|
/* Service Bundle returns */
|
||||||
public static final String RESULT_CODE = "result_code";
|
public static final String RESULT_CODE = "result_code";
|
||||||
|
@ -16,16 +16,11 @@
|
|||||||
|
|
||||||
package org.openintents.openpgp.util;
|
package org.openintents.openpgp.util;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.ServiceInfo;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.preference.DialogPreference;
|
import android.preference.DialogPreference;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
@ -35,6 +30,9 @@ import android.widget.ArrayAdapter;
|
|||||||
import android.widget.ListAdapter;
|
import android.widget.ListAdapter;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class OpenPgpListPreference extends DialogPreference {
|
public class OpenPgpListPreference extends DialogPreference {
|
||||||
ArrayList<OpenPgpProviderEntry> mProviderList = new ArrayList<OpenPgpProviderEntry>();
|
ArrayList<OpenPgpProviderEntry> mProviderList = new ArrayList<OpenPgpProviderEntry>();
|
||||||
private String mSelectedPackage;
|
private String mSelectedPackage;
|
||||||
@ -42,8 +40,8 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
public OpenPgpListPreference(Context context, AttributeSet attrs) {
|
public OpenPgpListPreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
|
||||||
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(
|
Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT);
|
||||||
new Intent(OpenPgpConstants.SERVICE_INTENT), PackageManager.GET_META_DATA);
|
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(intent, 0);
|
||||||
if (!resInfo.isEmpty()) {
|
if (!resInfo.isEmpty()) {
|
||||||
for (ResolveInfo resolveInfo : resInfo) {
|
for (ResolveInfo resolveInfo : resInfo) {
|
||||||
if (resolveInfo.serviceInfo == null)
|
if (resolveInfo.serviceInfo == null)
|
||||||
@ -54,12 +52,7 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
.getPackageManager()));
|
.getPackageManager()));
|
||||||
Drawable icon = resolveInfo.serviceInfo.loadIcon(context.getPackageManager());
|
Drawable icon = resolveInfo.serviceInfo.loadIcon(context.getPackageManager());
|
||||||
|
|
||||||
// get api version
|
mProviderList.add(new OpenPgpProviderEntry(packageName, simpleName, icon));
|
||||||
ServiceInfo si = resolveInfo.serviceInfo;
|
|
||||||
int apiVersion = si.metaData.getInt("api_version");
|
|
||||||
|
|
||||||
mProviderList.add(new OpenPgpProviderEntry(packageName, simpleName, icon,
|
|
||||||
apiVersion));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,10 +68,8 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
* @param simpleName
|
* @param simpleName
|
||||||
* @param icon
|
* @param icon
|
||||||
*/
|
*/
|
||||||
public void addProvider(int position, String packageName, String simpleName, Drawable icon,
|
public void addProvider(int position, String packageName, String simpleName, Drawable icon) {
|
||||||
int apiVersion) {
|
mProviderList.add(position, new OpenPgpProviderEntry(packageName, simpleName, icon));
|
||||||
mProviderList.add(position, new OpenPgpProviderEntry(packageName, simpleName, icon,
|
|
||||||
apiVersion));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -99,15 +90,6 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
int dp10 = (int) (10 * getContext().getResources().getDisplayMetrics().density + 0.5f);
|
int dp10 = (int) (10 * getContext().getResources().getDisplayMetrics().density + 0.5f);
|
||||||
tv.setCompoundDrawablePadding(dp10);
|
tv.setCompoundDrawablePadding(dp10);
|
||||||
|
|
||||||
// disable if it has the wrong api_version
|
|
||||||
if (mProviderList.get(position).apiVersion == OpenPgpConstants.API_VERSION) {
|
|
||||||
tv.setEnabled(true);
|
|
||||||
} else {
|
|
||||||
tv.setEnabled(false);
|
|
||||||
tv.setText(tv.getText() + " (API v" + mProviderList.get(position).apiVersion
|
|
||||||
+ ", needs v" + OpenPgpConstants.API_VERSION + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -183,14 +165,11 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
private String packageName;
|
private String packageName;
|
||||||
private String simpleName;
|
private String simpleName;
|
||||||
private Drawable icon;
|
private Drawable icon;
|
||||||
private int apiVersion;
|
|
||||||
|
|
||||||
public OpenPgpProviderEntry(String packageName, String simpleName, Drawable icon,
|
public OpenPgpProviderEntry(String packageName, String simpleName, Drawable icon) {
|
||||||
int apiVersion) {
|
|
||||||
this.packageName = packageName;
|
this.packageName = packageName;
|
||||||
this.simpleName = simpleName;
|
this.simpleName = simpleName;
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
this.apiVersion = apiVersion;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -61,11 +61,12 @@ public class OpenPgpServiceConnection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* If not already bound, bind!
|
* If not already bound, bind!
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean bindToService() {
|
public boolean bindToService() {
|
||||||
if (mService == null && !mBound) { // if not already connected
|
// if not already connected
|
||||||
|
if (mService == null && !mBound) {
|
||||||
try {
|
try {
|
||||||
Log.d(OpenPgpConstants.TAG, "not bound yet");
|
Log.d(OpenPgpConstants.TAG, "not bound yet");
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package org.openintents.openpgp.util;
|
package org.openintents.openpgp.util;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -24,22 +25,33 @@ import android.content.Intent;
|
|||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
|
|
||||||
public class OpenPgpUtils {
|
public class OpenPgpUtils {
|
||||||
private Context context;
|
|
||||||
|
|
||||||
public static Pattern PGP_MESSAGE = Pattern.compile(
|
public static final Pattern PGP_MESSAGE = Pattern.compile(
|
||||||
".*?(-----BEGIN PGP MESSAGE-----.*?-----END PGP MESSAGE-----).*", Pattern.DOTALL);
|
".*?(-----BEGIN PGP MESSAGE-----.*?-----END PGP MESSAGE-----).*",
|
||||||
|
Pattern.DOTALL);
|
||||||
|
|
||||||
public static Pattern PGP_SIGNED_MESSAGE = Pattern
|
public static final Pattern PGP_SIGNED_MESSAGE = Pattern.compile(
|
||||||
.compile(
|
".*?(-----BEGIN PGP SIGNED MESSAGE-----.*?-----BEGIN PGP SIGNATURE-----.*?-----END PGP SIGNATURE-----).*",
|
||||||
".*?(-----BEGIN PGP SIGNED MESSAGE-----.*?-----BEGIN PGP SIGNATURE-----.*?-----END PGP SIGNATURE-----).*",
|
Pattern.DOTALL);
|
||||||
Pattern.DOTALL);
|
|
||||||
|
|
||||||
public OpenPgpUtils(Context context) {
|
public static final int PARSE_RESULT_NO_PGP = -1;
|
||||||
super();
|
public static final int PARSE_RESULT_MESSAGE = 0;
|
||||||
this.context = context;
|
public static final int PARSE_RESULT_SIGNED_MESSAGE = 1;
|
||||||
|
|
||||||
|
public static int parseMessage(String message) {
|
||||||
|
Matcher matcherSigned = PGP_SIGNED_MESSAGE.matcher(message);
|
||||||
|
Matcher matcherMessage = PGP_MESSAGE.matcher(message);
|
||||||
|
|
||||||
|
if (matcherMessage.matches()) {
|
||||||
|
return PARSE_RESULT_MESSAGE;
|
||||||
|
} else if (matcherSigned.matches()) {
|
||||||
|
return PARSE_RESULT_SIGNED_MESSAGE;
|
||||||
|
} else {
|
||||||
|
return PARSE_RESULT_NO_PGP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAvailable() {
|
public static boolean isAvailable(Context context) {
|
||||||
Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT);
|
Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT);
|
||||||
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(intent, 0);
|
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(intent, 0);
|
||||||
if (!resInfo.isEmpty()) {
|
if (!resInfo.isEmpty()) {
|
||||||
|
@ -138,7 +138,8 @@ public class OpenPgpService extends RemoteService {
|
|||||||
|
|
||||||
|
|
||||||
// TODO: asciiArmor?!
|
// TODO: asciiArmor?!
|
||||||
private Bundle signImpl(Bundle params, ParcelFileDescriptor input, ParcelFileDescriptor output, AppSettings appSettings) {
|
private Bundle signImpl(Bundle params, ParcelFileDescriptor input, ParcelFileDescriptor output,
|
||||||
|
AppSettings appSettings) {
|
||||||
try {
|
try {
|
||||||
// get passphrase from cache, if key has "no" passphrase, this returns an empty String
|
// get passphrase from cache, if key has "no" passphrase, this returns an empty String
|
||||||
String passphrase;
|
String passphrase;
|
||||||
|
@ -383,7 +383,7 @@
|
|||||||
<string name="api_settings_revoke">Revoke access</string>
|
<string name="api_settings_revoke">Revoke access</string>
|
||||||
<string name="api_settings_package_name">Package Name</string>
|
<string name="api_settings_package_name">Package Name</string>
|
||||||
<string name="api_settings_package_signature">SHA-256 of Package Signature</string>
|
<string name="api_settings_package_signature">SHA-256 of Package Signature</string>
|
||||||
<string name="api_register_text">The following application requests access to OpenPGP Keychain.\n\nAllow access (you can revoke it later)?</string>
|
<string name="api_register_text">The displayed application requests access to OpenPGP Keychain.\nAllow access?\n\nWARNING: If you do not know why this screen appeared, disallow access! You can revoke access later using the \'Registered Applications\' screen.</string>
|
||||||
<string name="api_register_allow">Allow access</string>
|
<string name="api_register_allow">Allow access</string>
|
||||||
<string name="api_register_disallow">Disallow access</string>
|
<string name="api_register_disallow">Disallow access</string>
|
||||||
<string name="api_register_error_select_key">Please select a key!</string>
|
<string name="api_register_error_select_key">Please select a key!</string>
|
||||||
|
@ -16,5 +16,7 @@
|
|||||||
|
|
||||||
package org.openintents.openpgp;
|
package org.openintents.openpgp;
|
||||||
|
|
||||||
|
import org.openintents.openpgp.OpenPgpError;
|
||||||
|
|
||||||
// Declare OpenPgpError so AIDL can find it and knows that it implements the parcelable protocol.
|
// Declare OpenPgpError so AIDL can find it and knows that it implements the parcelable protocol.
|
||||||
parcelable OpenPgpError;
|
parcelable OpenPgpError;
|
@ -16,5 +16,7 @@
|
|||||||
|
|
||||||
package org.openintents.openpgp;
|
package org.openintents.openpgp;
|
||||||
|
|
||||||
|
import org.openintents.openpgp.OpenPgpSignatureResult;
|
||||||
|
|
||||||
// Declare OpenPgpSignatureResult so AIDL can find it and knows that it implements the parcelable protocol.
|
// Declare OpenPgpSignatureResult so AIDL can find it and knows that it implements the parcelable protocol.
|
||||||
parcelable OpenPgpSignatureResult;
|
parcelable OpenPgpSignatureResult;
|
@ -16,16 +16,11 @@
|
|||||||
|
|
||||||
package org.openintents.openpgp.util;
|
package org.openintents.openpgp.util;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.ServiceInfo;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.preference.DialogPreference;
|
import android.preference.DialogPreference;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
@ -35,6 +30,9 @@ import android.widget.ArrayAdapter;
|
|||||||
import android.widget.ListAdapter;
|
import android.widget.ListAdapter;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class OpenPgpListPreference extends DialogPreference {
|
public class OpenPgpListPreference extends DialogPreference {
|
||||||
ArrayList<OpenPgpProviderEntry> mProviderList = new ArrayList<OpenPgpProviderEntry>();
|
ArrayList<OpenPgpProviderEntry> mProviderList = new ArrayList<OpenPgpProviderEntry>();
|
||||||
private String mSelectedPackage;
|
private String mSelectedPackage;
|
||||||
@ -42,8 +40,8 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
public OpenPgpListPreference(Context context, AttributeSet attrs) {
|
public OpenPgpListPreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
|
||||||
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(
|
Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT);
|
||||||
new Intent(OpenPgpConstants.SERVICE_INTENT), PackageManager.GET_META_DATA);
|
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(intent, 0);
|
||||||
if (!resInfo.isEmpty()) {
|
if (!resInfo.isEmpty()) {
|
||||||
for (ResolveInfo resolveInfo : resInfo) {
|
for (ResolveInfo resolveInfo : resInfo) {
|
||||||
if (resolveInfo.serviceInfo == null)
|
if (resolveInfo.serviceInfo == null)
|
||||||
@ -54,12 +52,7 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
.getPackageManager()));
|
.getPackageManager()));
|
||||||
Drawable icon = resolveInfo.serviceInfo.loadIcon(context.getPackageManager());
|
Drawable icon = resolveInfo.serviceInfo.loadIcon(context.getPackageManager());
|
||||||
|
|
||||||
// get api version
|
mProviderList.add(new OpenPgpProviderEntry(packageName, simpleName, icon));
|
||||||
ServiceInfo si = resolveInfo.serviceInfo;
|
|
||||||
int apiVersion = si.metaData.getInt("api_version");
|
|
||||||
|
|
||||||
mProviderList.add(new OpenPgpProviderEntry(packageName, simpleName, icon,
|
|
||||||
apiVersion));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,10 +68,8 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
* @param simpleName
|
* @param simpleName
|
||||||
* @param icon
|
* @param icon
|
||||||
*/
|
*/
|
||||||
public void addProvider(int position, String packageName, String simpleName, Drawable icon,
|
public void addProvider(int position, String packageName, String simpleName, Drawable icon) {
|
||||||
int apiVersion) {
|
mProviderList.add(position, new OpenPgpProviderEntry(packageName, simpleName, icon));
|
||||||
mProviderList.add(position, new OpenPgpProviderEntry(packageName, simpleName, icon,
|
|
||||||
apiVersion));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -99,15 +90,6 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
int dp10 = (int) (10 * getContext().getResources().getDisplayMetrics().density + 0.5f);
|
int dp10 = (int) (10 * getContext().getResources().getDisplayMetrics().density + 0.5f);
|
||||||
tv.setCompoundDrawablePadding(dp10);
|
tv.setCompoundDrawablePadding(dp10);
|
||||||
|
|
||||||
// disable if it has the wrong api_version
|
|
||||||
if (mProviderList.get(position).apiVersion == OpenPgpConstants.API_VERSION) {
|
|
||||||
tv.setEnabled(true);
|
|
||||||
} else {
|
|
||||||
tv.setEnabled(false);
|
|
||||||
tv.setText(tv.getText() + " (API v" + mProviderList.get(position).apiVersion
|
|
||||||
+ ", needs v" + OpenPgpConstants.API_VERSION + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -183,14 +165,11 @@ public class OpenPgpListPreference extends DialogPreference {
|
|||||||
private String packageName;
|
private String packageName;
|
||||||
private String simpleName;
|
private String simpleName;
|
||||||
private Drawable icon;
|
private Drawable icon;
|
||||||
private int apiVersion;
|
|
||||||
|
|
||||||
public OpenPgpProviderEntry(String packageName, String simpleName, Drawable icon,
|
public OpenPgpProviderEntry(String packageName, String simpleName, Drawable icon) {
|
||||||
int apiVersion) {
|
|
||||||
this.packageName = packageName;
|
this.packageName = packageName;
|
||||||
this.simpleName = simpleName;
|
this.simpleName = simpleName;
|
||||||
this.icon = icon;
|
this.icon = icon;
|
||||||
this.apiVersion = apiVersion;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -61,11 +61,12 @@ public class OpenPgpServiceConnection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* If not already bound, bind!
|
* If not already bound, bind!
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean bindToService() {
|
public boolean bindToService() {
|
||||||
if (mService == null && !mBound) { // if not already connected
|
// if not already connected
|
||||||
|
if (mService == null && !mBound) {
|
||||||
try {
|
try {
|
||||||
Log.d(OpenPgpConstants.TAG, "not bound yet");
|
Log.d(OpenPgpConstants.TAG, "not bound yet");
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package org.openintents.openpgp.util;
|
package org.openintents.openpgp.util;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -24,22 +25,33 @@ import android.content.Intent;
|
|||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
|
|
||||||
public class OpenPgpUtils {
|
public class OpenPgpUtils {
|
||||||
private Context context;
|
|
||||||
|
|
||||||
public static Pattern PGP_MESSAGE = Pattern.compile(
|
public static final Pattern PGP_MESSAGE = Pattern.compile(
|
||||||
".*?(-----BEGIN PGP MESSAGE-----.*?-----END PGP MESSAGE-----).*", Pattern.DOTALL);
|
".*?(-----BEGIN PGP MESSAGE-----.*?-----END PGP MESSAGE-----).*",
|
||||||
|
Pattern.DOTALL);
|
||||||
|
|
||||||
public static Pattern PGP_SIGNED_MESSAGE = Pattern
|
public static final Pattern PGP_SIGNED_MESSAGE = Pattern.compile(
|
||||||
.compile(
|
".*?(-----BEGIN PGP SIGNED MESSAGE-----.*?-----BEGIN PGP SIGNATURE-----.*?-----END PGP SIGNATURE-----).*",
|
||||||
".*?(-----BEGIN PGP SIGNED MESSAGE-----.*?-----BEGIN PGP SIGNATURE-----.*?-----END PGP SIGNATURE-----).*",
|
Pattern.DOTALL);
|
||||||
Pattern.DOTALL);
|
|
||||||
|
|
||||||
public OpenPgpUtils(Context context) {
|
public static final int PARSE_RESULT_NO_PGP = -1;
|
||||||
super();
|
public static final int PARSE_RESULT_MESSAGE = 0;
|
||||||
this.context = context;
|
public static final int PARSE_RESULT_SIGNED_MESSAGE = 1;
|
||||||
|
|
||||||
|
public static int parseMessage(String message) {
|
||||||
|
Matcher matcherSigned = PGP_SIGNED_MESSAGE.matcher(message);
|
||||||
|
Matcher matcherMessage = PGP_MESSAGE.matcher(message);
|
||||||
|
|
||||||
|
if (matcherMessage.matches()) {
|
||||||
|
return PARSE_RESULT_MESSAGE;
|
||||||
|
} else if (matcherSigned.matches()) {
|
||||||
|
return PARSE_RESULT_SIGNED_MESSAGE;
|
||||||
|
} else {
|
||||||
|
return PARSE_RESULT_NO_PGP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAvailable() {
|
public static boolean isAvailable(Context context) {
|
||||||
Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT);
|
Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT);
|
||||||
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(intent, 0);
|
List<ResolveInfo> resInfo = context.getPackageManager().queryIntentServices(intent, 0);
|
||||||
if (!resInfo.isEmpty()) {
|
if (!resInfo.isEmpty()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user