Renaming APG to OpenPGP Keychain

This commit is contained in:
Dominik Schürmann 2013-01-16 14:31:16 +01:00
parent dbbd8f6856
commit 1feb948acf
752 changed files with 1196 additions and 1251 deletions

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.thialfihar.android.apg.demo" package="org.sufficientlysecure.keychain.demo"
android:versionCode="1" android:versionCode="1"
android:versionName="1.0" > android:versionName="1.0" >
<uses-permission android:name="org.thialfihar.android.apg.permission.ACCESS_API" /> <uses-permission android:name="org.sufficientlysecure.keychain.permission.ACCESS_API" />
<uses-permission android:name="org.thialfihar.android.apg.permission.ACCESS_KEYS" /> <uses-permission android:name="org.sufficientlysecure.keychain.permission.ACCESS_KEYS" />
<uses-sdk <uses-sdk
android:minSdkVersion="7" android:minSdkVersion="7"

View File

@ -9,4 +9,4 @@
# Project target. # Project target.
target=android-15 target=android-15
android.library.reference.1=../APG-API-Lib android.library.reference.1=../OpenPGP-Keychain-API-Lib

View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -14,15 +14,16 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.demo; package org.sufficientlysecure.keychain.demo;
import org.thialfihar.android.apg.integration.ApgData; import org.sufficientlysecure.keychain.demo.R;
import org.thialfihar.android.apg.integration.ApgIntentHelper; import org.sufficientlysecure.keychain.integration.KeychainData;
import org.thialfihar.android.apg.service.IApgApiService; import org.sufficientlysecure.keychain.integration.KeychainIntentHelper;
import org.thialfihar.android.apg.service.IApgKeyService; import org.sufficientlysecure.keychain.service.IKeychainApiService;
import org.thialfihar.android.apg.service.handler.IApgDecryptHandler; import org.sufficientlysecure.keychain.service.IKeychainKeyService;
import org.thialfihar.android.apg.service.handler.IApgEncryptHandler; import org.sufficientlysecure.keychain.service.handler.IKeychainDecryptHandler;
import org.thialfihar.android.apg.service.handler.IApgGetDecryptionKeyIdHandler; import org.sufficientlysecure.keychain.service.handler.IKeychainEncryptHandler;
import org.sufficientlysecure.keychain.service.handler.IKeychainGetDecryptionKeyIdHandler;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
@ -43,13 +44,13 @@ public class AidlDemoActivity extends Activity {
TextView mCiphertextTextView; TextView mCiphertextTextView;
TextView mDataTextView; TextView mDataTextView;
ApgIntentHelper mApgIntentHelper; KeychainIntentHelper mKeychainIntentHelper;
ApgData mApgData; KeychainData mKeychainData;
private IApgApiService service = null; private IKeychainApiService service = null;
private ServiceConnection svcConn = new ServiceConnection() { private ServiceConnection svcConn = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder binder) { public void onServiceConnected(ComponentName className, IBinder binder) {
service = IApgApiService.Stub.asInterface(binder); service = IKeychainApiService.Stub.asInterface(binder);
} }
public void onServiceDisconnected(ComponentName className) { public void onServiceDisconnected(ComponentName className) {
@ -68,17 +69,18 @@ public class AidlDemoActivity extends Activity {
mCiphertextTextView = (TextView) findViewById(R.id.aidl_demo_ciphertext); mCiphertextTextView = (TextView) findViewById(R.id.aidl_demo_ciphertext);
mDataTextView = (TextView) findViewById(R.id.aidl_demo_data); mDataTextView = (TextView) findViewById(R.id.aidl_demo_data);
mApgIntentHelper = new ApgIntentHelper(mActivity); mKeychainIntentHelper = new KeychainIntentHelper(mActivity);
mApgData = new ApgData(); mKeychainData = new KeychainData();
bindService(new Intent(IApgApiService.class.getName()), svcConn, Context.BIND_AUTO_CREATE); bindService(new Intent(IKeychainApiService.class.getName()), svcConn,
Context.BIND_AUTO_CREATE);
} }
public void encryptOnClick(View view) { public void encryptOnClick(View view) {
byte[] inputBytes = mMessageTextView.getText().toString().getBytes(); byte[] inputBytes = mMessageTextView.getText().toString().getBytes();
try { try {
service.encryptAsymmetric(inputBytes, null, true, 0, mApgData.getPublicKeys(), 7, service.encryptAsymmetric(inputBytes, null, true, 0, mKeychainData.getPublicKeys(), 7,
encryptHandler); encryptHandler);
} catch (RemoteException e) { } catch (RemoteException e) {
exceptionImplementation(-1, e.toString()); exceptionImplementation(-1, e.toString());
@ -96,13 +98,13 @@ public class AidlDemoActivity extends Activity {
} }
private void updateView() { private void updateView() {
if (mApgData.getDecryptedData() != null) { if (mKeychainData.getDecryptedData() != null) {
mMessageTextView.setText(mApgData.getDecryptedData()); mMessageTextView.setText(mKeychainData.getDecryptedData());
} }
if (mApgData.getEncryptedData() != null) { if (mKeychainData.getEncryptedData() != null) {
mCiphertextTextView.setText(mApgData.getEncryptedData()); mCiphertextTextView.setText(mKeychainData.getEncryptedData());
} }
mDataTextView.setText(mApgData.toString()); mDataTextView.setText(mKeychainData.toString());
} }
@Override @Override
@ -117,7 +119,7 @@ public class AidlDemoActivity extends Activity {
builder.setTitle("Exception!").setMessage(error).setPositiveButton("OK", null).show(); builder.setTitle("Exception!").setMessage(error).setPositiveButton("OK", null).show();
} }
private final IApgEncryptHandler.Stub encryptHandler = new IApgEncryptHandler.Stub() { private final IKeychainEncryptHandler.Stub encryptHandler = new IKeychainEncryptHandler.Stub() {
@Override @Override
public void onException(final int exceptionId, final String message) throws RemoteException { public void onException(final int exceptionId, final String message) throws RemoteException {
@ -132,7 +134,7 @@ public class AidlDemoActivity extends Activity {
public void onSuccess(final byte[] outputBytes, String outputUri) throws RemoteException { public void onSuccess(final byte[] outputBytes, String outputUri) throws RemoteException {
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() {
mApgData.setEncryptedData(new String(outputBytes)); mKeychainData.setEncryptedData(new String(outputBytes));
updateView(); updateView();
} }
}); });
@ -140,7 +142,7 @@ public class AidlDemoActivity extends Activity {
}; };
private final IApgDecryptHandler.Stub decryptHandler = new IApgDecryptHandler.Stub() { private final IKeychainDecryptHandler.Stub decryptHandler = new IKeychainDecryptHandler.Stub() {
@Override @Override
public void onException(final int exceptionId, final String message) throws RemoteException { public void onException(final int exceptionId, final String message) throws RemoteException {
@ -157,7 +159,7 @@ public class AidlDemoActivity extends Activity {
boolean signatureUnknown) throws RemoteException { boolean signatureUnknown) throws RemoteException {
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() {
mApgData.setDecryptedData(new String(outputBytes)); mKeychainData.setDecryptedData(new String(outputBytes));
updateView(); updateView();
} }
}); });
@ -166,7 +168,7 @@ public class AidlDemoActivity extends Activity {
}; };
private final IApgGetDecryptionKeyIdHandler.Stub helperHandler = new IApgGetDecryptionKeyIdHandler.Stub() { private final IKeychainGetDecryptionKeyIdHandler.Stub helperHandler = new IKeychainGetDecryptionKeyIdHandler.Stub() {
@Override @Override
public void onException(final int exceptionId, final String message) throws RemoteException { public void onException(final int exceptionId, final String message) throws RemoteException {
@ -191,18 +193,19 @@ public class AidlDemoActivity extends Activity {
* @param view * @param view
*/ */
public void selectSecretKeyOnClick(View view) { public void selectSecretKeyOnClick(View view) {
mApgIntentHelper.selectSecretKey(); mKeychainIntentHelper.selectSecretKey();
} }
public void selectEncryptionKeysOnClick(View view) { public void selectEncryptionKeysOnClick(View view) {
mApgIntentHelper.selectPublicKeys("user@example.com"); mKeychainIntentHelper.selectPublicKeys("user@example.com");
} }
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// this updates the mApgData object to the result of the methods // this updates the mKeychainData object to the result of the methods
boolean result = mApgIntentHelper.onActivityResult(requestCode, resultCode, data, mApgData); boolean result = mKeychainIntentHelper.onActivityResult(requestCode, resultCode, data,
mKeychainData);
if (result) { if (result) {
updateView(); updateView();
} }

View File

@ -14,15 +14,16 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.demo; package org.sufficientlysecure.keychain.demo;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.thialfihar.android.apg.integration.ApgData; import org.sufficientlysecure.keychain.demo.R;
import org.thialfihar.android.apg.integration.ApgIntentHelper; import org.sufficientlysecure.keychain.integration.KeychainData;
import org.thialfihar.android.apg.service.IApgKeyService; import org.sufficientlysecure.keychain.integration.KeychainIntentHelper;
import org.thialfihar.android.apg.service.handler.IApgGetKeyringsHandler; import org.sufficientlysecure.keychain.service.IKeychainKeyService;
import org.sufficientlysecure.keychain.service.handler.IKeychainGetKeyringsHandler;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
@ -43,16 +44,16 @@ public class AidlDemoActivity2 extends Activity {
TextView mKeyringsTextView; TextView mKeyringsTextView;
ApgIntentHelper mApgIntentHelper; KeychainIntentHelper mKeychainIntentHelper;
ApgData mApgData; KeychainData mKeychainData;
byte[] keysBytes; byte[] keysBytes;
ArrayList<String> keysStrings; ArrayList<String> keysStrings;
private IApgKeyService service = null; private IKeychainKeyService service = null;
private ServiceConnection svcConn = new ServiceConnection() { private ServiceConnection svcConn = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder binder) { public void onServiceConnected(ComponentName className, IBinder binder) {
service = IApgKeyService.Stub.asInterface(binder); service = IKeychainKeyService.Stub.asInterface(binder);
} }
public void onServiceDisconnected(ComponentName className) { public void onServiceDisconnected(ComponentName className) {
@ -69,15 +70,16 @@ public class AidlDemoActivity2 extends Activity {
mKeyringsTextView = (TextView) findViewById(R.id.aidl_demo_keyrings); mKeyringsTextView = (TextView) findViewById(R.id.aidl_demo_keyrings);
mApgIntentHelper = new ApgIntentHelper(mActivity); mKeychainIntentHelper = new KeychainIntentHelper(mActivity);
mApgData = new ApgData(); mKeychainData = new KeychainData();
bindService(new Intent(IApgKeyService.class.getName()), svcConn, Context.BIND_AUTO_CREATE); bindService(new Intent(IKeychainKeyService.class.getName()), svcConn,
Context.BIND_AUTO_CREATE);
} }
public void getKeyringsStringsOnClick(View view) { public void getKeyringsStringsOnClick(View view) {
try { try {
service.getPublicKeyRings(mApgData.getPublicKeys(), true, getKeyringsHandler); service.getPublicKeyRings(mKeychainData.getPublicKeys(), true, getKeyringsHandler);
} catch (RemoteException e) { } catch (RemoteException e) {
exceptionImplementation(-1, e.toString()); exceptionImplementation(-1, e.toString());
} }
@ -85,7 +87,7 @@ public class AidlDemoActivity2 extends Activity {
public void getKeyringsBytesOnClick(View view) { public void getKeyringsBytesOnClick(View view) {
try { try {
service.getPublicKeyRings(mApgData.getPublicKeys(), false, getKeyringsHandler); service.getPublicKeyRings(mKeychainData.getPublicKeys(), false, getKeyringsHandler);
} catch (RemoteException e) { } catch (RemoteException e) {
exceptionImplementation(-1, e.toString()); exceptionImplementation(-1, e.toString());
} }
@ -115,7 +117,7 @@ public class AidlDemoActivity2 extends Activity {
builder.setTitle("Exception!").setMessage(error).setPositiveButton("OK", null).show(); builder.setTitle("Exception!").setMessage(error).setPositiveButton("OK", null).show();
} }
private final IApgGetKeyringsHandler.Stub getKeyringsHandler = new IApgGetKeyringsHandler.Stub() { private final IKeychainGetKeyringsHandler.Stub getKeyringsHandler = new IKeychainGetKeyringsHandler.Stub() {
@Override @Override
public void onException(final int exceptionId, final String message) throws RemoteException { public void onException(final int exceptionId, final String message) throws RemoteException {
@ -147,13 +149,14 @@ public class AidlDemoActivity2 extends Activity {
}; };
public void selectEncryptionKeysOnClick(View view) { public void selectEncryptionKeysOnClick(View view) {
mApgIntentHelper.selectPublicKeys("user@example.com"); mKeychainIntentHelper.selectPublicKeys("user@example.com");
} }
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// this updates the mApgData object to the result of the methods // this updates the mKeychainData object to the result of the methods
boolean result = mApgIntentHelper.onActivityResult(requestCode, resultCode, data, mApgData); boolean result = mKeychainIntentHelper.onActivityResult(requestCode, resultCode, data,
mKeychainData);
if (result) { if (result) {
updateView(); updateView();
} }

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.demo; package org.sufficientlysecure.keychain.demo;
import org.thialfihar.android.apg.demo.R; import org.sufficientlysecure.keychain.demo.R;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;

View File

@ -14,12 +14,12 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.demo; package org.sufficientlysecure.keychain.demo;
import java.util.Arrays; import java.util.Arrays;
import org.thialfihar.android.apg.demo.R; import org.sufficientlysecure.keychain.demo.R;
import org.thialfihar.android.apg.integration.ApgContentProviderHelper; import org.sufficientlysecure.keychain.integration.KeychainContentProviderHelper;
import android.app.Activity; import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
@ -33,7 +33,7 @@ public class ContentProviderDemoActivity extends Activity {
TextView mCiphertextTextView; TextView mCiphertextTextView;
TextView mDataTextView; TextView mDataTextView;
ApgContentProviderHelper mApgContentProviderHelper; KeychainContentProviderHelper mKeychainContentProviderHelper;
/** /**
* Instantiate View for this Activity * Instantiate View for this Activity
@ -48,16 +48,16 @@ public class ContentProviderDemoActivity extends Activity {
mOutputTextView = (TextView) findViewById(R.id.content_provider_output); mOutputTextView = (TextView) findViewById(R.id.content_provider_output);
mApgContentProviderHelper = new ApgContentProviderHelper(mActivity); mKeychainContentProviderHelper = new KeychainContentProviderHelper(mActivity);
} }
public void test1OnClick(View view) { public void test1OnClick(View view) {
long[] test = mApgContentProviderHelper.getPublicKeyringIdsByEmail("user@example.com"); long[] test = mKeychainContentProviderHelper.getPublicKeyringIdsByEmail("user@example.com");
mOutputTextView.setText(Arrays.toString(test)); mOutputTextView.setText(Arrays.toString(test));
} }
public void test2OnClick(View view) { public void test2OnClick(View view) {
boolean test = mApgContentProviderHelper.hasPublicKeyringByEmail("user@example.com"); boolean test = mKeychainContentProviderHelper.hasPublicKeyringByEmail("user@example.com");
if (test) { if (test) {
mOutputTextView.setText("true"); mOutputTextView.setText("true");
} else { } else {

View File

@ -14,11 +14,11 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.demo; package org.sufficientlysecure.keychain.demo;
import org.thialfihar.android.apg.demo.R; import org.sufficientlysecure.keychain.demo.R;
import org.thialfihar.android.apg.integration.ApgData; import org.sufficientlysecure.keychain.integration.KeychainData;
import org.thialfihar.android.apg.integration.ApgIntentHelper; import org.sufficientlysecure.keychain.integration.KeychainIntentHelper;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
@ -33,8 +33,8 @@ public class IntentDemoActivity extends Activity {
TextView mCiphertextTextView; TextView mCiphertextTextView;
TextView mDataTextView; TextView mDataTextView;
ApgIntentHelper mApgIntentHelper; KeychainIntentHelper mKeychainIntentHelper;
ApgData mApgData; KeychainData mKeychainData;
/** /**
* Instantiate View for this Activity * Instantiate View for this Activity
@ -51,45 +51,46 @@ public class IntentDemoActivity extends Activity {
mCiphertextTextView = (TextView) findViewById(R.id.intent_demo_ciphertext); mCiphertextTextView = (TextView) findViewById(R.id.intent_demo_ciphertext);
mDataTextView = (TextView) findViewById(R.id.intent_demo_data); mDataTextView = (TextView) findViewById(R.id.intent_demo_data);
mApgIntentHelper = new ApgIntentHelper(mActivity); mKeychainIntentHelper = new KeychainIntentHelper(mActivity);
mApgData = new ApgData(); mKeychainData = new KeychainData();
} }
public void createNewKeyOnClick(View view) { public void createNewKeyOnClick(View view) {
// mApgIntentHelper.createNewKey(); // mKeychainIntentHelper.createNewKey();
mApgIntentHelper.createNewKey("test <user@example.com>", true, true); mKeychainIntentHelper.createNewKey("test <user@example.com>", true, true);
} }
public void selectSecretKeyOnClick(View view) { public void selectSecretKeyOnClick(View view) {
mApgIntentHelper.selectSecretKey(); mKeychainIntentHelper.selectSecretKey();
} }
public void selectEncryptionKeysOnClick(View view) { public void selectEncryptionKeysOnClick(View view) {
mApgIntentHelper.selectPublicKeys("user@example.com"); mKeychainIntentHelper.selectPublicKeys("user@example.com");
} }
public void encryptOnClick(View view) { public void encryptOnClick(View view) {
mApgIntentHelper.encrypt(mMessageTextView.getText().toString(), mApgData.getPublicKeys(), mKeychainIntentHelper.encrypt(mMessageTextView.getText().toString(),
mApgData.getSecretKeyId(), false); mKeychainData.getPublicKeys(), mKeychainData.getSecretKeyId(), false);
} }
public void encryptAndReturnOnClick(View view) { public void encryptAndReturnOnClick(View view) {
mApgIntentHelper.encrypt(mMessageTextView.getText().toString(), mApgData.getPublicKeys(), mKeychainIntentHelper.encrypt(mMessageTextView.getText().toString(),
mApgData.getSecretKeyId(), true); mKeychainData.getPublicKeys(), mKeychainData.getSecretKeyId(), true);
} }
public void decryptOnClick(View view) { public void decryptOnClick(View view) {
mApgIntentHelper.decrypt(mCiphertextTextView.getText().toString(), false); mKeychainIntentHelper.decrypt(mCiphertextTextView.getText().toString(), false);
} }
public void decryptAndReturnOnClick(View view) { public void decryptAndReturnOnClick(View view) {
mApgIntentHelper.decrypt(mCiphertextTextView.getText().toString(), true); mKeychainIntentHelper.decrypt(mCiphertextTextView.getText().toString(), true);
} }
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// this updates the mApgData object to the result of the methods // this updates the mKeychainData object to the result of the methods
boolean result = mApgIntentHelper.onActivityResult(requestCode, resultCode, data, mApgData); boolean result = mKeychainIntentHelper.onActivityResult(requestCode, resultCode, data,
mKeychainData);
if (result) { if (result) {
updateView(); updateView();
} }
@ -99,12 +100,12 @@ public class IntentDemoActivity extends Activity {
} }
private void updateView() { private void updateView() {
if (mApgData.getDecryptedData() != null) { if (mKeychainData.getDecryptedData() != null) {
mMessageTextView.setText(mApgData.getDecryptedData()); mMessageTextView.setText(mKeychainData.getDecryptedData());
} }
if (mApgData.getEncryptedData() != null) { if (mKeychainData.getEncryptedData() != null) {
mCiphertextTextView.setText(mApgData.getEncryptedData()); mCiphertextTextView.setText(mKeychainData.getEncryptedData());
} }
mDataTextView.setText(mApgData.toString()); mDataTextView.setText(mKeychainData.toString());
} }
} }

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.thialfihar.android.apg.integration" package="org.sufficientlysecure.keychain.integration"
android:versionCode="1" android:versionCode="1"
android:versionName="1.0" > android:versionName="1.0" >

View File

@ -14,14 +14,12 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
public class Constants { public class Constants {
public static final String NAME = "apg"; public static final String TAG = "Keychain Integration Lib";
public static final String TAG = "APG Integration Lib"; public static final String KEYCHAIN_PACKAGE_NAME = "org.sufficientlysecure.keychain";
public static final String APG_PACKAGE_NAME = "org.thialfihar.android.apg";
public static final int MIN_REQUIRED_VERSION = 50; public static final int MIN_REQUIRED_VERSION = 50;
} }

View File

@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import android.content.ContentUris; import android.content.ContentUris;
import android.content.Context; import android.content.Context;
@ -23,8 +23,8 @@ import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.widget.Toast; import android.widget.Toast;
public class ApgContentProviderHelper { public class KeychainContentProviderHelper {
public static final String AUTHORITY = Constants.APG_PACKAGE_NAME; public static final String AUTHORITY = Constants.KEYCHAIN_PACKAGE_NAME;
public static final Uri CONTENT_URI_PUBLIC_KEY_RING_BY_KEY_ID = Uri.parse("content://" public static final Uri CONTENT_URI_PUBLIC_KEY_RING_BY_KEY_ID = Uri.parse("content://"
+ AUTHORITY + "/key_rings/public/key_id/"); + AUTHORITY + "/key_rings/public/key_id/");
@ -42,7 +42,7 @@ public class ApgContentProviderHelper {
private Context mContext; private Context mContext;
public ApgContentProviderHelper(Context context) { public KeychainContentProviderHelper(Context context) {
this.mContext = context; this.mContext = context;
} }

View File

@ -15,12 +15,12 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import java.io.Serializable; import java.io.Serializable;
import java.util.Arrays; import java.util.Arrays;
public class ApgData implements Serializable { public class KeychainData implements Serializable {
private static final long serialVersionUID = 6314045536270848410L; private static final long serialVersionUID = 6314045536270848410L;
protected long[] mPublicKeyIds = null; protected long[] mPublicKeyIds = null;
protected String[] mPublicUserIds = null; protected String[] mPublicUserIds = null;

View File

@ -15,14 +15,14 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import android.app.Activity; import android.app.Activity;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.Intent; import android.content.Intent;
import android.widget.Toast; import android.widget.Toast;
public class ApgIntentHelper { public class KeychainIntentHelper {
public static final String APG_INTENT_PREFIX = "org.thialfihar.android.apg.intent."; public static final String APG_INTENT_PREFIX = "org.thialfihar.android.apg.intent.";
@ -128,7 +128,7 @@ public class ApgIntentHelper {
private Activity activity; private Activity activity;
public ApgIntentHelper(Activity activity) { public KeychainIntentHelper(Activity activity) {
this.activity = activity; this.activity = activity;
} }
@ -343,7 +343,7 @@ public class ApgIntentHelper {
* @param data * @param data
* @return handled or not * @return handled or not
*/ */
public boolean onActivityResult(int requestCode, int resultCode, Intent data, ApgData apgData) { public boolean onActivityResult(int requestCode, int resultCode, Intent data, KeychainData apgData) {
switch (requestCode) { switch (requestCode) {
case CREATE_KEY: case CREATE_KEY:
@ -421,13 +421,13 @@ public class ApgIntentHelper {
* ApgData with encryption keys and signature keys preselected * ApgData with encryption keys and signature keys preselected
* @return true when activity was found and executed successfully * @return true when activity was found and executed successfully
*/ */
public boolean selectPublicKeys(String emails, ApgData apgData) { public boolean selectPublicKeys(String emails, KeychainData apgData) {
Intent intent = new Intent(ACTION_SELECT_PUBLIC_KEYS); Intent intent = new Intent(ACTION_SELECT_PUBLIC_KEYS);
intent.putExtra(EXTRA_INTENT_VERSION, INTENT_VERSION); intent.putExtra(EXTRA_INTENT_VERSION, INTENT_VERSION);
long[] initialKeyIds = null; long[] initialKeyIds = null;
if (apgData == null || !apgData.hasPublicKeys()) { if (apgData == null || !apgData.hasPublicKeys()) {
ApgContentProviderHelper cPHelper = new ApgContentProviderHelper(activity); KeychainContentProviderHelper cPHelper = new KeychainContentProviderHelper(activity);
initialKeyIds = cPHelper.getPublicKeyringIdsByEmail(emails); initialKeyIds = cPHelper.getPublicKeyringIdsByEmail(emails);
} else { } else {

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import android.content.Intent; import android.content.Intent;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
@ -22,7 +22,7 @@ import android.support.v4.app.Fragment;
/** /**
* ApgIntentHelper for the V4 Android compatibility package. * ApgIntentHelper for the V4 Android compatibility package.
*/ */
public final class ApgIntentHelperSupportV4 extends ApgIntentHelper { public final class KeychainIntentHelperSupportV4 extends KeychainIntentHelper {
private final Fragment fragment; private final Fragment fragment;
@ -30,7 +30,7 @@ public final class ApgIntentHelperSupportV4 extends ApgIntentHelper {
* @param fragment * @param fragment
* Fragment to handle activity response. * Fragment to handle activity response.
*/ */
public ApgIntentHelperSupportV4(Fragment fragment) { public KeychainIntentHelperSupportV4(Fragment fragment) {
super(fragment.getActivity()); super(fragment.getActivity());
this.fragment = fragment; this.fragment = fragment;
} }

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Fragment; import android.app.Fragment;
@ -25,7 +25,7 @@ import android.os.Build;
* ApgIntentHelper for Android version 3.0 and beyond. * ApgIntentHelper for Android version 3.0 and beyond.
*/ */
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @TargetApi(Build.VERSION_CODES.HONEYCOMB)
public final class ApgIntentHelperV30 extends ApgIntentHelper { public final class KeychainIntentHelperV30 extends KeychainIntentHelper {
private final Fragment fragment; private final Fragment fragment;
@ -33,7 +33,7 @@ public final class ApgIntentHelperV30 extends ApgIntentHelper {
* @param fragment * @param fragment
* Fragment to handle activity response. * Fragment to handle activity response.
*/ */
public ApgIntentHelperV30(Fragment fragment) { public KeychainIntentHelperV30(Fragment fragment) {
super(fragment.getActivity()); super(fragment.getActivity());
this.fragment = fragment; this.fragment = fragment;
} }

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
@ -25,16 +25,16 @@ import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.util.Log; import android.util.Log;
public class ApgServiceHelper { public class KeychainServiceHelper {
private final static String BLOB_URI = "content://org.thialfihar.android.apg.provider.apgserviceblobprovider"; private final static String BLOB_URI = "content://org.sufficientlysecure.keychain.provider.apgserviceblobprovider";
private Context context; private Context context;
public ApgServiceHelper(Context context) { public KeychainServiceHelper(Context context) {
this.context = context; this.context = context;
} }
/** /**
* Set up binary data to en/decrypt * Set up binary data to en/decrypt
* *
@ -67,7 +67,7 @@ public class ApgServiceHelper {
Log.e(Constants.TAG, "... error on writing buffer", e); Log.e(Constants.TAG, "... error on writing buffer", e);
} }
// mArgs.putString("BLOB", contentUri.toString()); // mArgs.putString("BLOB", contentUri.toString());
} }
/** /**
@ -90,7 +90,7 @@ public class ApgServiceHelper {
ContentResolver cr = context.getContentResolver(); ContentResolver cr = context.getContentResolver();
InputStream in = null; InputStream in = null;
try { try {
// in = cr.openInputStream(Uri.parse(mArgs.getString("BLOB"))); // in = cr.openInputStream(Uri.parse(mArgs.getString("BLOB")));
} catch (Exception e) { } catch (Exception e) {
Log.e(Constants.TAG, "Could not return blob in result", e); Log.e(Constants.TAG, "Could not return blob in result", e);
} }

View File

@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.integration; package org.sufficientlysecure.keychain.integration;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
@ -23,23 +23,24 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.widget.Toast; import android.widget.Toast;
public class ApgUtil { public class KeychainUtil {
/** /**
* Check whether APG is installed and at a high enough version. * Check whether OpenPGP Keychain is installed and at a high enough version.
* *
* @param context * @param context
* @return whether a suitable version of APG was found * @return whether a suitable version of APG was found
*/ */
public boolean isApgAvailable(Context context) { public boolean isApgAvailable(Context context) {
try { try {
PackageInfo pi = context.getPackageManager().getPackageInfo(Constants.APG_PACKAGE_NAME, PackageInfo pi = context.getPackageManager().getPackageInfo(
0); Constants.KEYCHAIN_PACKAGE_NAME, 0);
if (pi.versionCode >= Constants.MIN_REQUIRED_VERSION) { if (pi.versionCode >= Constants.MIN_REQUIRED_VERSION) {
return true; return true;
} else { } else {
Toast.makeText(context, Toast.makeText(
"This APG version is not supported! Please update to a newer one!", context,
"This OpenPGP Keychain version is not supported! Please update to a newer one!",
Toast.LENGTH_LONG).show(); Toast.LENGTH_LONG).show();
} }
} catch (NameNotFoundException e) { } catch (NameNotFoundException e) {

View File

@ -14,17 +14,17 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service; package org.sufficientlysecure.keychain.service;
import org.thialfihar.android.apg.service.handler.IApgEncryptHandler; import org.sufficientlysecure.keychain.service.handler.IKeychainEncryptHandler;
import org.thialfihar.android.apg.service.handler.IApgDecryptHandler; import org.sufficientlysecure.keychain.service.handler.IKeychainDecryptHandler;
import org.thialfihar.android.apg.service.handler.IApgGetDecryptionKeyIdHandler; import org.sufficientlysecure.keychain.service.handler.IKeychainGetDecryptionKeyIdHandler;
/** /**
* All methods are oneway, which means they are asynchronous and non-blocking. * All methods are oneway, which means they are asynchronous and non-blocking.
* Results are returned into given Handler, which has to be implemented on client side. * Results are returned into given Handler, which has to be implemented on client side.
*/ */
interface IApgApiService { interface IKeychainApiService {
/** /**
* Encrypt * Encrypt
@ -45,12 +45,12 @@ interface IApgApiService {
* 7: AES-128, 8: AES-192, 9: AES-256, 4: Blowfish, 10: Twofish, 3: CAST5, * 7: AES-128, 8: AES-192, 9: AES-256, 4: Blowfish, 10: Twofish, 3: CAST5,
* 6: DES, 2: Triple DES, 1: IDEA * 6: DES, 2: Triple DES, 1: IDEA
* @param handler * @param handler
* Results are returned to this IApgEncryptDecryptHandler Handler * Results are returned to this IKeychainEncryptDecryptHandler Handler
* to onSuccessEncrypt(in byte[] output), after successful encryption * to onSuccessEncrypt(in byte[] output), after successful encryption
*/ */
oneway void encryptAsymmetric(in byte[] inputBytes, in String inputUri, in boolean useAsciiArmor, oneway void encryptAsymmetric(in byte[] inputBytes, in String inputUri, in boolean useAsciiArmor,
in int compression, in long[] encryptionKeyIds, in int symmetricEncryptionAlgorithm, in int compression, in long[] encryptionKeyIds, in int symmetricEncryptionAlgorithm,
in IApgEncryptHandler handler); in IKeychainEncryptHandler handler);
/** /**
* Same as encryptAsymmetric but using a passphrase for symmetric encryption * Same as encryptAsymmetric but using a passphrase for symmetric encryption
@ -60,7 +60,7 @@ interface IApgApiService {
*/ */
oneway void encryptSymmetric(in byte[] inputBytes, in String inputUri, in boolean useAsciiArmor, oneway void encryptSymmetric(in byte[] inputBytes, in String inputUri, in boolean useAsciiArmor,
in int compression, in String encryptionPassphrase, in int symmetricEncryptionAlgorithm, in int compression, in String encryptionPassphrase, in int symmetricEncryptionAlgorithm,
in IApgEncryptHandler handler); in IKeychainEncryptHandler handler);
/** /**
* Encrypt and sign * Encrypt and sign
@ -90,14 +90,14 @@ interface IApgApiService {
* @param signaturePassphrase * @param signaturePassphrase
* Passphrase to unlock signature key * Passphrase to unlock signature key
* @param handler * @param handler
* Results are returned to this IApgEncryptDecryptHandler Handler * Results are returned to this IKeychainEncryptDecryptHandler Handler
* to onSuccessEncrypt(in byte[] output), after successful encryption and signing * to onSuccessEncrypt(in byte[] output), after successful encryption and signing
*/ */
oneway void encryptAndSignAsymmetric(in byte[] inputBytes, in String inputUri, oneway void encryptAndSignAsymmetric(in byte[] inputBytes, in String inputUri,
in boolean useAsciiArmor, in int compression, in long[] encryptionKeyIds, in boolean useAsciiArmor, in int compression, in long[] encryptionKeyIds,
in int symmetricEncryptionAlgorithm, in long signatureKeyId, in int signatureHashAlgorithm, in int symmetricEncryptionAlgorithm, in long signatureKeyId, in int signatureHashAlgorithm,
in boolean signatureForceV3, in String signaturePassphrase, in boolean signatureForceV3, in String signaturePassphrase,
in IApgEncryptHandler handler); in IKeychainEncryptHandler handler);
/** /**
* Same as encryptAndSignAsymmetric but using a passphrase for symmetric encryption * Same as encryptAndSignAsymmetric but using a passphrase for symmetric encryption
@ -109,7 +109,7 @@ interface IApgApiService {
in boolean useAsciiArmor, in int compression, in String encryptionPassphrase, in boolean useAsciiArmor, in int compression, in String encryptionPassphrase,
in int symmetricEncryptionAlgorithm, in long signatureKeyId, in int signatureHashAlgorithm, in int symmetricEncryptionAlgorithm, in long signatureKeyId, in int signatureHashAlgorithm,
in boolean signatureForceV3, in String signaturePassphrase, in boolean signatureForceV3, in String signaturePassphrase,
in IApgEncryptHandler handler); in IKeychainEncryptHandler handler);
/** /**
* Decrypts and verifies given input bytes. If no signature is present this method * Decrypts and verifies given input bytes. If no signature is present this method
@ -125,7 +125,7 @@ interface IApgApiService {
* Handler where to return results to after successful encryption * Handler where to return results to after successful encryption
*/ */
oneway void decryptAndVerifyAsymmetric(in byte[] inputBytes, in String inputUri, oneway void decryptAndVerifyAsymmetric(in byte[] inputBytes, in String inputUri,
in String keyPassphrase, in IApgDecryptHandler handler); in String keyPassphrase, in IKeychainDecryptHandler handler);
/** /**
* Same as decryptAndVerifyAsymmetric but for symmetric decryption. * Same as decryptAndVerifyAsymmetric but for symmetric decryption.
@ -134,13 +134,13 @@ interface IApgApiService {
* Passphrase to decrypt * Passphrase to decrypt
*/ */
oneway void decryptAndVerifySymmetric(in byte[] inputBytes, in String inputUri, oneway void decryptAndVerifySymmetric(in byte[] inputBytes, in String inputUri,
in String encryptionPassphrase, in IApgDecryptHandler handler); in String encryptionPassphrase, in IKeychainDecryptHandler handler);
/** /**
* *
*/ */
oneway void getDecryptionKeyId(in byte[] inputBytes, in String inputUri, oneway void getDecryptionKeyId(in byte[] inputBytes, in String inputUri,
in IApgGetDecryptionKeyIdHandler handler); in IKeychainGetDecryptionKeyIdHandler handler);
} }

View File

@ -14,19 +14,19 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service; package org.sufficientlysecure.keychain.service;
import org.thialfihar.android.apg.service.handler.IApgGetKeyringsHandler; import org.sufficientlysecure.keychain.service.handler.IKeychainGetKeyringsHandler;
/** /**
* All methods are oneway, which means they are asynchronous and non-blocking. * All methods are oneway, which means they are asynchronous and non-blocking.
* Results are returned into given Handler, which has to be implemented on client side. * Results are returned into given Handler, which has to be implemented on client side.
*/ */
interface IApgKeyService { interface IKeychainKeyService {
oneway void getPublicKeyRings(in long[] masterKeyIds, in boolean asAsciiArmoredStringArray, oneway void getPublicKeyRings(in long[] masterKeyIds, in boolean asAsciiArmoredStringArray,
in IApgGetKeyringsHandler handler); in IKeychainGetKeyringsHandler handler);
oneway void getSecretKeyRings(in long[] masterKeyIds, in boolean asAsciiArmoredStringArray, oneway void getSecretKeyRings(in long[] masterKeyIds, in boolean asAsciiArmoredStringArray,
in IApgGetKeyringsHandler handler); in IKeychainGetKeyringsHandler handler);
} }

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service.handler; package org.sufficientlysecure.keychain.service.handler;
interface IApgDecryptHandler { interface IKeychainDecryptHandler {
oneway void onSuccess(in byte[] outputBytes, in String outputUri, in boolean signature, oneway void onSuccess(in byte[] outputBytes, in String outputUri, in boolean signature,
in long signatureKeyId, in String signatureUserId, in boolean signatureSuccess, in long signatureKeyId, in String signatureUserId, in boolean signatureSuccess,

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service.handler; package org.sufficientlysecure.keychain.service.handler;
interface IApgEncryptHandler { interface IKeychainEncryptHandler {
/** /**
* Either output or streamUri is given. One of them is null * Either output or streamUri is given. One of them is null
* *

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service.handler; package org.sufficientlysecure.keychain.service.handler;
interface IApgGetDecryptionKeyIdHandler { interface IKeychainGetDecryptionKeyIdHandler {
oneway void onSuccess(in long secretKeyId, in boolean symmetric); oneway void onSuccess(in long secretKeyId, in boolean symmetric);

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service.handler; package org.sufficientlysecure.keychain.service.handler;
interface IApgGetKeyringsHandler { interface IKeychainGetKeyringsHandler {
/** /**
* Either outputBytes or outputString is given. One of them is null * Either outputBytes or outputString is given. One of them is null
* *

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service.handler; package org.sufficientlysecure.keychain.service.handler;
interface IApgSignHandler { interface IKeychainSignHandler {
/** /**
* Either output or streamUri is given. One of them is null * Either output or streamUri is given. One of them is null
* *

View File

@ -14,9 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package org.thialfihar.android.apg.service.handler; package org.sufficientlysecure.keychain.service.handler;
interface IApgVerifyHandler { interface IKeychainVerifyHandler {
oneway void onSuccess(in boolean signature, in long signatureKeyId, oneway void onSuccess(in boolean signature, in long signatureKeyId,
in String signatureUserId, in boolean signatureSuccess, in boolean signatureUnknown); in String signatureUserId, in boolean signatureSuccess, in boolean signatureUnknown);

View File

@ -16,7 +16,7 @@
limitations under the License. limitations under the License.
--> -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.thialfihar.android.apg" package="org.sufficientlysecure.keychain"
android:installLocation="auto" android:installLocation="auto"
android:versionCode="20000" android:versionCode="20000"
android:versionName="2.0" > android:versionName="2.0" >
@ -68,26 +68,26 @@
<uses-permission android:name="com.fsck.k9.permission.READ_ATTACHMENT" /> <uses-permission android:name="com.fsck.k9.permission.READ_ATTACHMENT" />
<permission-group <permission-group
android:name="org.thialfihar.android.apg.permission-group.APG" android:name="org.sufficientlysecure.keychain.permission-group.keychain"
android:description="@string/permission_group_description" android:description="@string/permission_group_description"
android:icon="@drawable/icon" android:icon="@drawable/icon"
android:label="@string/permission_group_label" /> android:label="@string/permission_group_label" />
<permission <permission
android:name="org.thialfihar.android.apg.permission.ACCESS_KEYS" android:name="org.sufficientlysecure.keychain.permission.ACCESS_KEYS"
android:description="@string/permission_access_keys_description" android:description="@string/permission_access_keys_description"
android:label="@string/permission_access_keys_label" android:label="@string/permission_access_keys_label"
android:permissionGroup="org.thialfihar.android.apg.permission-group.APG" android:permissionGroup="org.sufficientlysecure.keychain.permission-group.keychain"
android:protectionLevel="dangerous" /> android:protectionLevel="dangerous" />
<permission <permission
android:name="org.thialfihar.android.apg.permission.ACCESS_API" android:name="org.sufficientlysecure.keychain.permission.ACCESS_API"
android:description="@string/permission_access_api_description" android:description="@string/permission_access_api_description"
android:label="@string/permission_access_api_label" android:label="@string/permission_access_api_label"
android:permissionGroup="org.thialfihar.android.apg.permission-group.APG" android:permissionGroup="org.sufficientlysecure.keychain.permission-group.keychain"
android:protectionLevel="dangerous" /> android:protectionLevel="dangerous" />
<application <application
android:name=".ApgApplication" android:name=".KeychainApplication"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:icon="@drawable/icon" android:icon="@drawable/icon"
android:label="@string/app_name" android:label="@string/app_name"
@ -137,8 +137,8 @@
android:uiOptions="splitActionBarWhenNarrow" android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="stateHidden" > android:windowSoftInputMode="stateHidden" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.CREATE_KEY" /> <action android:name="org.sufficientlysecure.keychain.action.CREATE_KEY" />
<action android:name="org.thialfihar.android.apg.intent.EDIT_KEY" /> <action android:name="org.sufficientlysecure.keychain.action.EDIT_KEY" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
@ -150,7 +150,7 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:uiOptions="splitActionBarWhenNarrow" > android:uiOptions="splitActionBarWhenNarrow" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.SELECT_PUBLIC_KEYS" /> <action android:name="org.sufficientlysecure.keychain.action.SELECT_PUBLIC_KEYS" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
@ -168,7 +168,7 @@
android:label="@string/title_selectSignature" android:label="@string/title_selectSignature"
android:launchMode="singleTop" > android:launchMode="singleTop" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.SELECT_SECRET_KEY" /> <action android:name="org.sufficientlysecure.keychain.action.SELECT_SECRET_KEY" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
@ -189,10 +189,10 @@
<!-- APG's own Actions --> <!-- APG's own Actions -->
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.ENCRYPT" /> <action android:name="org.sufficientlysecure.keychain.action.ENCRYPT" />
<action android:name="org.thialfihar.android.apg.intent.ENCRYPT_FILE" /> <action android:name="org.sufficientlysecure.keychain.action.ENCRYPT_FILE" />
<action android:name="org.thialfihar.android.apg.intent.ENCRYPT_AND_RETURN" /> <action android:name="org.sufficientlysecure.keychain.action.ENCRYPT_AND_RETURN" />
<action android:name="org.thialfihar.android.apg.intent.GENERATE_SIGNATURE" /> <action android:name="org.sufficientlysecure.keychain.action.GENERATE_SIGNATURE" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@ -216,9 +216,9 @@
<!-- APG's own Actions --> <!-- APG's own Actions -->
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.DECRYPT" /> <action android:name="org.sufficientlysecure.keychain.action.DECRYPT" />
<action android:name="org.thialfihar.android.apg.intent.DECRYPT_FILE" /> <action android:name="org.sufficientlysecure.keychain.action.DECRYPT_FILE" />
<action android:name="org.thialfihar.android.apg.intent.DECRYPT_AND_RETURN" /> <action android:name="org.sufficientlysecure.keychain.action.DECRYPT_AND_RETURN" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@ -299,14 +299,14 @@
android:configChanges="orientation|screenSize|keyboardHidden|keyboard" android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/title_signKey" /> android:label="@string/title_signKey" />
<activity <activity
android:name="org.thialfihar.android.apg.ui.ImportKeysActivity" android:name=".ui.ImportKeysActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard" android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/title_importKeys" android:label="@string/title_importKeys"
android:uiOptions="splitActionBarWhenNarrow" > android:uiOptions="splitActionBarWhenNarrow" >
<!-- APG's own Actions --> <!-- APG's own Actions -->
<intent-filter android:label="@string/intent_import_key" > <intent-filter android:label="@string/intent_import_key" >
<action android:name="org.thialfihar.android.apg.intent.IMPORT" /> <action android:name="org.sufficientlysecure.keychain.action.IMPORT" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@ -314,9 +314,9 @@
</intent-filter> </intent-filter>
<!-- IMPORT again without mimeType to also allow data only without filename --> <!-- IMPORT again without mimeType to also allow data only without filename -->
<intent-filter android:label="@string/intent_import_key" > <intent-filter android:label="@string/intent_import_key" >
<action android:name="org.thialfihar.android.apg.intent.IMPORT" /> <action android:name="org.sufficientlysecure.keychain.action.IMPORT" />
<action android:name="org.thialfihar.android.apg.intent.IMPORT_FROM_QR_CODE" /> <action android:name="org.sufficientlysecure.keychain.action.IMPORT_FROM_QR_CODE" />
<action android:name="org.thialfihar.android.apg.intent.IMPORT_FROM_NFC" /> <action android:name="org.sufficientlysecure.keychain.action.IMPORT_FROM_NFC" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
@ -365,12 +365,12 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name="org.thialfihar.android.apg.ui.ShareNfcBeamActivity" android:name=".ui.ShareNfcBeamActivity"
android:label="@string/title_shareByNfc" android:label="@string/title_shareByNfc"
android:launchMode="singleTop" android:launchMode="singleTop"
android:uiOptions="splitActionBarWhenNarrow" > android:uiOptions="splitActionBarWhenNarrow" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.SHARE_KEYRING_WITH_NFC" /> <action android:name="org.sufficientlysecure.keychain.action.SHARE_KEYRING_WITH_NFC" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
@ -381,13 +381,13 @@
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/org.thialfihar.android.apg" /> <data android:mimeType="application/org.sufficientlysecure.keychain" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="org.thialfihar.android.apg.ui.ShareActivity" > <activity android:name=".ui.ShareActivity" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.intent.SHARE_KEYRING" /> <action android:name="org.sufficientlysecure.keychain.action.SHARE_KEYRING" />
<action android:name="org.thialfihar.android.apg.intent.SHARE_KEYRING_WITH_QR_CODE" /> <action android:name="org.sufficientlysecure.keychain.action.SHARE_KEYRING_WITH_QR_CODE" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
@ -397,15 +397,15 @@
android:label="@string/title_help" /> android:label="@string/title_help" />
<service android:name=".service.PassphraseCacheService" /> <service android:name=".service.PassphraseCacheService" />
<service android:name=".service.ApgIntentService" /> <service android:name="org.sufficientlysecure.keychain.service.KeychainIntentService" />
<service <service
android:name="org.thialfihar.android.apg.service.ApgApiService" android:name="org.sufficientlysecure.keychain.service.KeychainApiService"
android:enabled="true" android:enabled="true"
android:exported="true" android:exported="true"
android:permission="org.thialfihar.android.apg.permission.ACCESS_API" android:permission="org.sufficientlysecure.keychain.permission.ACCESS_API"
android:process=":remoteapi" > android:process=":remoteapi" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.service.IApgApiService" /> <action android:name="org.sufficientlysecure.keychain.service.IApgApiService" />
</intent-filter> </intent-filter>
<meta-data <meta-data
@ -413,13 +413,13 @@
android:value="3" /> android:value="3" />
</service> </service>
<service <service
android:name="org.thialfihar.android.apg.service.ApgKeyService" android:name="org.sufficientlysecure.keychain.service.KeychainKeyService"
android:enabled="true" android:enabled="true"
android:exported="true" android:exported="true"
android:permission="org.thialfihar.android.apg.permission.ACCESS_KEYS" android:permission="org.sufficientlysecure.keychain.permission.ACCESS_KEYS"
android:process=":remotekeys" > android:process=":remotekeys" >
<intent-filter> <intent-filter>
<action android:name="org.thialfihar.android.apg.service.IApgKeyService" /> <action android:name="org.sufficientlysecure.keychain.service.IApgKeyService" />
</intent-filter> </intent-filter>
<meta-data <meta-data
@ -428,20 +428,20 @@
</service> </service>
<provider <provider
android:name=".provider.ApgProviderInternal" android:name="org.sufficientlysecure.keychain.provider.KeychainProviderInternal"
android:authorities="org.thialfihar.android.apg.internal" android:authorities="org.sufficientlysecure.keychain.internal"
android:exported="false" /> android:exported="false" />
<provider <provider
android:name=".provider.ApgProviderExternal" android:name="org.sufficientlysecure.keychain.provider.KeychainProviderExternal"
android:authorities="org.thialfihar.android.apg" android:authorities="org.sufficientlysecure.keychain"
android:exported="true" android:exported="true"
android:readPermission="org.thialfihar.android.apg.permission.ACCESS_API" /> android:readPermission="org.sufficientlysecure.keychain.permission.ACCESS_API" />
<!-- TODO: authority! --> <!-- TODO: authority! -->
<provider <provider
android:name=".provider.ApgServiceBlobProvider" android:name="org.sufficientlysecure.keychain.provider.KeychainServiceBlobProvider"
android:authorities="org.thialfihar.android.apg.provider.apgserviceblobprovider" android:authorities="org.sufficientlysecure.keychain.provider.apgserviceblobprovider"
android:permission="org.thialfihar.android.apg.permission.ACCESS_API" /> android:permission="org.sufficientlysecure.keychain.permission.ACCESS_API" />
</application> </application>
</manifest> </manifest>

Some files were not shown because too many files have changed in this diff Show More