aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java44
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java189
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenBlankFragment.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyBlankFragment.java)8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenImportResetFragment.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyImportResetFragment.java)84
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyPinFragment.java)16
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyWaitFragment.java)4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java)44
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsCacheTTLFragment.java1
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java72
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java25
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvStartFragment.java55
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeySecurityTokenFragment.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyYubiKeyFragment.java)28
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java (renamed from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java)69
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java10
22 files changed, 401 insertions, 292 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
index a4163d7f9..925888813 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
@@ -28,7 +28,7 @@ import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;
import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
-import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity;
+import org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenNfcActivity;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.util.Passphrase;
import org.sufficientlysecure.keychain.util.Preferences;
@@ -36,16 +36,16 @@ import org.sufficientlysecure.keychain.util.Preferences;
import java.io.IOException;
import java.util.ArrayList;
-public class CreateKeyActivity extends BaseNfcActivity {
+public class CreateKeyActivity extends BaseSecurityTokenNfcActivity {
public static final String EXTRA_NAME = "name";
public static final String EXTRA_EMAIL = "email";
public static final String EXTRA_FIRST_TIME = "first_time";
public static final String EXTRA_ADDITIONAL_EMAILS = "additional_emails";
public static final String EXTRA_PASSPHRASE = "passphrase";
- public static final String EXTRA_CREATE_YUBI_KEY = "create_yubi_key";
- public static final String EXTRA_YUBI_KEY_PIN = "yubi_key_pin";
- public static final String EXTRA_YUBI_KEY_ADMIN_PIN = "yubi_key_admin_pin";
+ public static final String EXTRA_CREATE_SECURITY_TOKEN = "create_yubi_key";
+ public static final String EXTRA_SECURITY_TOKEN_PIN = "yubi_key_pin";
+ public static final String EXTRA_SECURITY_TOKEN_ADMIN_PIN = "yubi_key_admin_pin";
public static final String EXTRA_NFC_USER_ID = "nfc_user_id";
public static final String EXTRA_NFC_AID = "nfc_aid";
@@ -58,9 +58,9 @@ public class CreateKeyActivity extends BaseNfcActivity {
ArrayList<String> mAdditionalEmails;
Passphrase mPassphrase;
boolean mFirstTime;
- boolean mCreateYubiKey;
- Passphrase mYubiKeyPin;
- Passphrase mYubiKeyAdminPin;
+ boolean mCreateSecurityToken;
+ Passphrase mSecurityTokenPin;
+ Passphrase mSecurityTokenAdminPin;
Fragment mCurrentFragment;
@@ -93,9 +93,9 @@ public class CreateKeyActivity extends BaseNfcActivity {
mAdditionalEmails = savedInstanceState.getStringArrayList(EXTRA_ADDITIONAL_EMAILS);
mPassphrase = savedInstanceState.getParcelable(EXTRA_PASSPHRASE);
mFirstTime = savedInstanceState.getBoolean(EXTRA_FIRST_TIME);
- mCreateYubiKey = savedInstanceState.getBoolean(EXTRA_CREATE_YUBI_KEY);
- mYubiKeyPin = savedInstanceState.getParcelable(EXTRA_YUBI_KEY_PIN);
- mYubiKeyAdminPin = savedInstanceState.getParcelable(EXTRA_YUBI_KEY_ADMIN_PIN);
+ mCreateSecurityToken = savedInstanceState.getBoolean(EXTRA_CREATE_SECURITY_TOKEN);
+ mSecurityTokenPin = savedInstanceState.getParcelable(EXTRA_SECURITY_TOKEN_PIN);
+ mSecurityTokenAdminPin = savedInstanceState.getParcelable(EXTRA_SECURITY_TOKEN_ADMIN_PIN);
mCurrentFragment = getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG);
} else {
@@ -105,7 +105,7 @@ public class CreateKeyActivity extends BaseNfcActivity {
mName = intent.getStringExtra(EXTRA_NAME);
mEmail = intent.getStringExtra(EXTRA_EMAIL);
mFirstTime = intent.getBooleanExtra(EXTRA_FIRST_TIME, false);
- mCreateYubiKey = intent.getBooleanExtra(EXTRA_CREATE_YUBI_KEY, false);
+ mCreateSecurityToken = intent.getBooleanExtra(EXTRA_CREATE_SECURITY_TOKEN, false);
if (intent.hasExtra(EXTRA_NFC_FINGERPRINTS)) {
byte[] nfcFingerprints = intent.getByteArrayExtra(EXTRA_NFC_FINGERPRINTS);
@@ -113,13 +113,13 @@ public class CreateKeyActivity extends BaseNfcActivity {
byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
if (containsKeys(nfcFingerprints)) {
- Fragment frag = CreateYubiKeyImportResetFragment.newInstance(
+ Fragment frag = CreateSecurityTokenImportResetFragment.newInstance(
nfcFingerprints, nfcAid, nfcUserId);
loadFragment(frag, FragAction.START);
setTitle(R.string.title_import_keys);
} else {
- Fragment frag = CreateYubiKeyBlankFragment.newInstance();
+ Fragment frag = CreateSecurityTokenBlankFragment.newInstance();
loadFragment(frag, FragAction.START);
setTitle(R.string.title_manage_my_keys);
}
@@ -169,19 +169,19 @@ public class CreateKeyActivity extends BaseNfcActivity {
Intent intent = new Intent(this, ViewKeyActivity.class);
intent.setData(KeyRings.buildGenericKeyRingUri(masterKeyId));
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mScannedFingerprints);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_AID, mNfcAid);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_USER_ID, mNfcUserId);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_FINGERPRINTS, mScannedFingerprints);
startActivity(intent);
finish();
} catch (PgpKeyNotFoundException e) {
- Fragment frag = CreateYubiKeyImportResetFragment.newInstance(
+ Fragment frag = CreateSecurityTokenImportResetFragment.newInstance(
mScannedFingerprints, mNfcAid, mNfcUserId);
loadFragment(frag, FragAction.TO_RIGHT);
}
} else {
- Fragment frag = CreateYubiKeyBlankFragment.newInstance();
+ Fragment frag = CreateSecurityTokenBlankFragment.newInstance();
loadFragment(frag, FragAction.TO_RIGHT);
}
}
@@ -209,9 +209,9 @@ public class CreateKeyActivity extends BaseNfcActivity {
outState.putStringArrayList(EXTRA_ADDITIONAL_EMAILS, mAdditionalEmails);
outState.putParcelable(EXTRA_PASSPHRASE, mPassphrase);
outState.putBoolean(EXTRA_FIRST_TIME, mFirstTime);
- outState.putBoolean(EXTRA_CREATE_YUBI_KEY, mCreateYubiKey);
- outState.putParcelable(EXTRA_YUBI_KEY_PIN, mYubiKeyPin);
- outState.putParcelable(EXTRA_YUBI_KEY_ADMIN_PIN, mYubiKeyAdminPin);
+ outState.putBoolean(EXTRA_CREATE_SECURITY_TOKEN, mCreateSecurityToken);
+ outState.putParcelable(EXTRA_SECURITY_TOKEN_PIN, mSecurityTokenPin);
+ outState.putParcelable(EXTRA_SECURITY_TOKEN_ADMIN_PIN, mSecurityTokenAdminPin);
}
@Override
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java
index acb768f55..b020a0dba 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java
@@ -235,10 +235,10 @@ public class CreateKeyEmailFragment extends Fragment {
CreateKeyActivity createKeyActivity = ((CreateKeyActivity) getActivity());
- if (createKeyActivity.mCreateYubiKey) {
+ if (createKeyActivity.mCreateSecurityToken) {
hideKeyboard();
- CreateYubiKeyPinFragment frag = CreateYubiKeyPinFragment.newInstance();
+ CreateSecurityTokenPinFragment frag = CreateSecurityTokenPinFragment.newInstance();
mCreateKeyActivity.loadFragment(frag, FragAction.TO_RIGHT);
} else {
CreateKeyPassphraseFragment frag = CreateKeyPassphraseFragment.newInstance();
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
index b79e4454d..b92645777 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
@@ -17,19 +17,19 @@
package org.sufficientlysecure.keychain.ui;
-
-import java.util.Date;
-import java.util.Iterator;
-
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
-import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
@@ -55,6 +55,9 @@ import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Passphrase;
import org.sufficientlysecure.keychain.util.Preferences;
+import java.util.Date;
+import java.util.Iterator;
+
public class CreateKeyFinalFragment extends Fragment {
public static final int REQUEST_EDIT_KEY = 0x00008007;
@@ -64,8 +67,8 @@ public class CreateKeyFinalFragment extends Fragment {
CheckBox mUploadCheckbox;
View mBackButton;
View mCreateButton;
- TextView mEditText;
- View mEditButton;
+ View mCustomKeyLayout;
+ Button mCustomKeyRevertButton;
SaveKeyringParcel mSaveKeyringParcel;
@@ -97,8 +100,8 @@ public class CreateKeyFinalFragment extends Fragment {
mUploadCheckbox = (CheckBox) view.findViewById(R.id.create_key_upload);
mBackButton = view.findViewById(R.id.create_key_back_button);
mCreateButton = view.findViewById(R.id.create_key_next_button);
- mEditText = (TextView) view.findViewById(R.id.create_key_edit_text);
- mEditButton = view.findViewById(R.id.create_key_edit_button);
+ mCustomKeyLayout = view.findViewById(R.id.custom_key_layout);
+ mCustomKeyRevertButton = (Button) view.findViewById(R.id.revert_key_configuration);
CreateKeyActivity createKeyActivity = (CreateKeyActivity) getActivity();
@@ -126,22 +129,20 @@ public class CreateKeyFinalFragment extends Fragment {
}
});
- mBackButton.setOnClickListener(new View.OnClickListener() {
+ mCustomKeyRevertButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- CreateKeyActivity createKeyActivity = (CreateKeyActivity) getActivity();
- if (createKeyActivity != null) {
- createKeyActivity.loadFragment(null, FragAction.TO_LEFT);
- }
+ keyConfigRevertToDefault();
}
});
- mEditButton.setOnClickListener(new View.OnClickListener() {
+ mBackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Intent edit = new Intent(getActivity(), EditKeyActivity.class);
- edit.putExtra(EditKeyActivity.EXTRA_SAVE_KEYRING_PARCEL, mSaveKeyringParcel);
- startActivityForResult(edit, REQUEST_EDIT_KEY);
+ CreateKeyActivity createKeyActivity = (CreateKeyActivity) getActivity();
+ if (createKeyActivity != null) {
+ createKeyActivity.loadFragment(null, FragAction.TO_LEFT);
+ }
}
});
@@ -154,6 +155,38 @@ public class CreateKeyFinalFragment extends Fragment {
}
@Override
+ public void onPrepareOptionsMenu(Menu menu) {
+ CreateKeyActivity createKeyActivity = (CreateKeyActivity) getActivity();
+
+ MenuItem editItem = menu.findItem(R.id.menu_create_key_edit);
+ editItem.setEnabled(!createKeyActivity.mCreateSecurityToken);
+
+ super.onPrepareOptionsMenu(menu);
+ }
+
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ inflater.inflate(R.menu.create_key_final, menu);
+
+ super.onCreateOptionsMenu(menu, inflater);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+
+ case R.id.menu_create_key_edit:
+ Intent edit = new Intent(getActivity(), EditKeyActivity.class);
+ edit.putExtra(EditKeyActivity.EXTRA_SAVE_KEYRING_PARCEL, mSaveKeyringParcel);
+ startActivityForResult(edit, REQUEST_EDIT_KEY);
+ return true;
+
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mCreateOpHelper != null) {
mCreateOpHelper.handleActivityResult(requestCode, resultCode, data);
@@ -168,8 +201,9 @@ public class CreateKeyFinalFragment extends Fragment {
switch (requestCode) {
case REQUEST_EDIT_KEY: {
if (resultCode == Activity.RESULT_OK) {
- mSaveKeyringParcel = data.getParcelableExtra(EditKeyActivity.EXTRA_SAVE_KEYRING_PARCEL);
- mEditText.setText(R.string.create_key_custom);
+ SaveKeyringParcel customKeyConfiguration =
+ data.getParcelableExtra(EditKeyActivity.EXTRA_SAVE_KEYRING_PARCEL);
+ keyConfigUseCustom(customKeyConfiguration);
}
break;
}
@@ -179,53 +213,29 @@ public class CreateKeyFinalFragment extends Fragment {
}
}
+ public void keyConfigUseCustom(SaveKeyringParcel customKeyConfiguration) {
+ mSaveKeyringParcel = customKeyConfiguration;
+ mCustomKeyLayout.setVisibility(View.VISIBLE);
+ }
+
+ public void keyConfigRevertToDefault() {
+ Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
+ mSaveKeyringParcel = createDefaultSaveKeyringParcel((CreateKeyActivity) activity);
+ mCustomKeyLayout.setVisibility(View.GONE);
+ }
+
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- CreateKeyActivity createKeyActivity = (CreateKeyActivity) getActivity();
+ // We have a menu item to show in action bar.
+ setHasOptionsMenu(true);
if (mSaveKeyringParcel == null) {
- mSaveKeyringParcel = new SaveKeyringParcel();
-
- if (createKeyActivity.mCreateYubiKey) {
- mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
- 2048, null, KeyFlags.SIGN_DATA | KeyFlags.CERTIFY_OTHER, 0L));
- mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
- 2048, null, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, 0L));
- mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
- 2048, null, KeyFlags.AUTHENTICATION, 0L));
- mEditText.setText(R.string.create_key_custom);
- mEditButton.setEnabled(false);
-
- // use empty passphrase
- mSaveKeyringParcel.mNewUnlock = new ChangeUnlockParcel(new Passphrase(), null);
- } else {
- mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
- 4096, null, KeyFlags.CERTIFY_OTHER, 0L));
- mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
- 4096, null, KeyFlags.SIGN_DATA, 0L));
- mSaveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
- 4096, null, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, 0L));
-
- mSaveKeyringParcel.mNewUnlock = createKeyActivity.mPassphrase != null
- ? new ChangeUnlockParcel(createKeyActivity.mPassphrase, null)
- : null;
- }
- String userId = KeyRing.createUserId(
- new KeyRing.UserId(createKeyActivity.mName, createKeyActivity.mEmail, null)
- );
- mSaveKeyringParcel.mAddUserIds.add(userId);
- mSaveKeyringParcel.mChangePrimaryUserId = userId;
- if (createKeyActivity.mAdditionalEmails != null
- && createKeyActivity.mAdditionalEmails.size() > 0) {
- for (String email : createKeyActivity.mAdditionalEmails) {
- String thisUserId = KeyRing.createUserId(
- new KeyRing.UserId(createKeyActivity.mName, email, null)
- );
- mSaveKeyringParcel.mAddUserIds.add(thisUserId);
- }
- }
+ keyConfigRevertToDefault();
}
// handle queued actions
@@ -256,6 +266,49 @@ public class CreateKeyFinalFragment extends Fragment {
}
+ private static SaveKeyringParcel createDefaultSaveKeyringParcel(CreateKeyActivity createKeyActivity) {
+ SaveKeyringParcel saveKeyringParcel = new SaveKeyringParcel();
+
+ if (createKeyActivity.mCreateSecurityToken) {
+ saveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
+ 2048, null, KeyFlags.SIGN_DATA | KeyFlags.CERTIFY_OTHER, 0L));
+ saveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
+ 2048, null, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, 0L));
+ saveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
+ 2048, null, KeyFlags.AUTHENTICATION, 0L));
+
+ // use empty passphrase
+ saveKeyringParcel.mNewUnlock = new ChangeUnlockParcel(new Passphrase(), null);
+ } else {
+ saveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
+ 4096, null, KeyFlags.CERTIFY_OTHER, 0L));
+ saveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
+ 4096, null, KeyFlags.SIGN_DATA, 0L));
+ saveKeyringParcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(Algorithm.RSA,
+ 4096, null, KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, 0L));
+
+ saveKeyringParcel.mNewUnlock = createKeyActivity.mPassphrase != null
+ ? new ChangeUnlockParcel(createKeyActivity.mPassphrase, null)
+ : null;
+ }
+ String userId = KeyRing.createUserId(
+ new KeyRing.UserId(createKeyActivity.mName, createKeyActivity.mEmail, null)
+ );
+ saveKeyringParcel.mAddUserIds.add(userId);
+ saveKeyringParcel.mChangePrimaryUserId = userId;
+ if (createKeyActivity.mAdditionalEmails != null
+ && createKeyActivity.mAdditionalEmails.size() > 0) {
+ for (String email : createKeyActivity.mAdditionalEmails) {
+ String thisUserId = KeyRing.createUserId(
+ new KeyRing.UserId(createKeyActivity.mName, email, null)
+ );
+ saveKeyringParcel.mAddUserIds.add(thisUserId);
+ }
+ }
+
+ return saveKeyringParcel;
+ }
+
private void createKey() {
CreateKeyActivity activity = (CreateKeyActivity) getActivity();
if (activity == null) {
@@ -263,7 +316,7 @@ public class CreateKeyFinalFragment extends Fragment {
return;
}
- final boolean createYubiKey = activity.mCreateYubiKey;
+ final boolean createSecurityToken = activity.mCreateSecurityToken;
CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult> createKeyCallback
= new CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult>() {
@@ -275,7 +328,7 @@ public class CreateKeyFinalFragment extends Fragment {
@Override
public void onCryptoOperationSuccess(EditKeyResult result) {
- if (createYubiKey) {
+ if (createSecurityToken) {
moveToCard(result);
return;
}
@@ -327,19 +380,19 @@ public class CreateKeyFinalFragment extends Fragment {
try {
changeKeyringParcel = new SaveKeyringParcel(key.getMasterKeyId(), key.getFingerprint());
} catch (PgpKeyNotFoundException e) {
- Log.e(Constants.TAG, "Key that should be moved to YubiKey not found in database!");
+ Log.e(Constants.TAG, "Key that should be moved to Security Token not found in database!");
return;
}
// define subkeys that should be moved to the card
Cursor cursor = activity.getContentResolver().query(
KeychainContract.Keys.buildKeysUri(changeKeyringParcel.mMasterKeyId),
- new String[] { KeychainContract.Keys.KEY_ID, }, null, null, null
+ new String[]{KeychainContract.Keys.KEY_ID,}, null, null, null
);
try {
while (cursor != null && cursor.moveToNext()) {
long subkeyId = cursor.getLong(0);
- changeKeyringParcel.getOrCreateSubkeyChange(subkeyId).mMoveKeyToCard = true;
+ changeKeyringParcel.getOrCreateSubkeyChange(subkeyId).mMoveKeyToSecurityToken = true;
}
} finally {
if (cursor != null) {
@@ -348,8 +401,8 @@ public class CreateKeyFinalFragment extends Fragment {
}
// define new PIN and Admin PIN for the card
- changeKeyringParcel.mCardPin = activity.mYubiKeyPin;
- changeKeyringParcel.mCardAdminPin = activity.mYubiKeyAdminPin;
+ changeKeyringParcel.mSecurityTokenPin = activity.mSecurityTokenPin;
+ changeKeyringParcel.mSecurityTokenAdminPin = activity.mSecurityTokenAdminPin;
CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult> callback
= new CryptoOperationHelper.Callback<SaveKeyringParcel, EditKeyResult>() {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java
index 68ec0e8c8..c62ec97e7 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyStartFragment.java
@@ -38,7 +38,7 @@ public class CreateKeyStartFragment extends Fragment {
View mCreateKey;
View mImportKey;
- View mYubiKey;
+ View mSecurityToken;
TextView mSkipOrCancel;
public static final int REQUEST_CODE_IMPORT_KEY = 0x00007012;
@@ -61,7 +61,7 @@ public class CreateKeyStartFragment extends Fragment {
mCreateKey = view.findViewById(R.id.create_key_create_key_button);
mImportKey = view.findViewById(R.id.create_key_import_button);
- mYubiKey = view.findViewById(R.id.create_key_yubikey_button);
+ mSecurityToken = view.findViewById(R.id.create_key_security_token_button);
mSkipOrCancel = (TextView) view.findViewById(R.id.create_key_cancel);
if (mCreateKeyActivity.mFirstTime) {
@@ -78,10 +78,10 @@ public class CreateKeyStartFragment extends Fragment {
}
});
- mYubiKey.setOnClickListener(new View.OnClickListener() {
+ mSecurityToken.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- CreateYubiKeyWaitFragment frag = new CreateYubiKeyWaitFragment();
+ CreateSecurityTokenWaitFragment frag = new CreateSecurityTokenWaitFragment();
mCreateKeyActivity.loadFragment(frag, FragAction.TO_RIGHT);
}
});
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyBlankFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenBlankFragment.java
index 5b13dc88e..08441c199 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyBlankFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenBlankFragment.java
@@ -27,7 +27,7 @@ import android.view.ViewGroup;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
-public class CreateYubiKeyBlankFragment extends Fragment {
+public class CreateSecurityTokenBlankFragment extends Fragment {
CreateKeyActivity mCreateKeyActivity;
View mBackButton;
@@ -36,8 +36,8 @@ public class CreateYubiKeyBlankFragment extends Fragment {
/**
* Creates new instance of this fragment
*/
- public static CreateYubiKeyBlankFragment newInstance() {
- CreateYubiKeyBlankFragment frag = new CreateYubiKeyBlankFragment();
+ public static CreateSecurityTokenBlankFragment newInstance() {
+ CreateSecurityTokenBlankFragment frag = new CreateSecurityTokenBlankFragment();
Bundle args = new Bundle();
@@ -81,7 +81,7 @@ public class CreateYubiKeyBlankFragment extends Fragment {
}
private void nextClicked() {
- mCreateKeyActivity.mCreateYubiKey = true;
+ mCreateKeyActivity.mCreateSecurityToken = true;
CreateKeyNameFragment frag = CreateKeyNameFragment.newInstance();
mCreateKeyActivity.loadFragment(frag, FragAction.TO_RIGHT);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyImportResetFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenImportResetFragment.java
index 5712f4452..81f782149 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyImportResetFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenImportResetFragment.java
@@ -49,7 +49,7 @@ import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.util.Preferences;
-public class CreateYubiKeyImportResetFragment
+public class CreateSecurityTokenImportResetFragment
extends QueueingCryptoOperationFragment<ImportKeyringParcel, ImportKeyResult>
implements NfcListenerFragment {
@@ -61,10 +61,10 @@ public class CreateYubiKeyImportResetFragment
CreateKeyActivity mCreateKeyActivity;
- private byte[] mNfcFingerprints;
- private byte[] mNfcAid;
- private String mNfcUserId;
- private String mNfcFingerprint;
+ private byte[] mTokenFingerprints;
+ private byte[] mTokenAid;
+ private String mTokenUserId;
+ private String mTokenFingerprint;
private ImportKeysListFragment mListFragment;
private TextView vSerNo;
private TextView vUserId;
@@ -79,7 +79,7 @@ public class CreateYubiKeyImportResetFragment
public static Fragment newInstance(byte[] scannedFingerprints, byte[] nfcAid, String userId) {
- CreateYubiKeyImportResetFragment frag = new CreateYubiKeyImportResetFragment();
+ CreateSecurityTokenImportResetFragment frag = new CreateSecurityTokenImportResetFragment();
Bundle args = new Bundle();
args.putByteArray(ARG_FINGERPRINTS, scannedFingerprints);
@@ -96,26 +96,26 @@ public class CreateYubiKeyImportResetFragment
Bundle args = savedInstanceState != null ? savedInstanceState : getArguments();
- mNfcFingerprints = args.getByteArray(ARG_FINGERPRINTS);
- mNfcAid = args.getByteArray(ARG_AID);
- mNfcUserId = args.getString(ARG_USER_ID);
+ mTokenFingerprints = args.getByteArray(ARG_FINGERPRINTS);
+ mTokenAid = args.getByteArray(ARG_AID);
+ mTokenUserId = args.getString(ARG_USER_ID);
byte[] fp = new byte[20];
- ByteBuffer.wrap(fp).put(mNfcFingerprints, 0, 20);
- mNfcFingerprint = KeyFormattingUtils.convertFingerprintToHex(fp);
+ ByteBuffer.wrap(fp).put(mTokenFingerprints, 0, 20);
+ mTokenFingerprint = KeyFormattingUtils.convertFingerprintToHex(fp);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.create_yubi_key_import_reset_fragment, container, false);
+ View view = inflater.inflate(R.layout.create_security_token_import_reset_fragment, container, false);
- vSerNo = (TextView) view.findViewById(R.id.yubikey_serno);
- vUserId = (TextView) view.findViewById(R.id.yubikey_userid);
+ vSerNo = (TextView) view.findViewById(R.id.token_serno);
+ vUserId = (TextView) view.findViewById(R.id.token_userid);
mNextButton = (TextView) view.findViewById(R.id.create_key_next_button);
- mRadioImport = (RadioButton) view.findViewById(R.id.yubikey_decision_import);
- mRadioReset = (RadioButton) view.findViewById(R.id.yubikey_decision_reset);
- mResetWarning = view.findViewById(R.id.yubikey_import_reset_warning);
+ mRadioImport = (RadioButton) view.findViewById(R.id.token_decision_import);
+ mRadioReset = (RadioButton) view.findViewById(R.id.token_decision_reset);
+ mResetWarning = view.findViewById(R.id.token_import_reset_warning);
View mBackButton = view.findViewById(R.id.create_key_back_button);
mBackButton.setOnClickListener(new View.OnClickListener() {
@@ -142,7 +142,7 @@ public class CreateYubiKeyImportResetFragment
});
mListFragment = ImportKeysListFragment.newInstance(null, null,
- "0x" + mNfcFingerprint, true, null);
+ "0x" + mTokenFingerprint, true, null);
mRadioImport.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
@@ -154,7 +154,7 @@ public class CreateYubiKeyImportResetFragment
mResetWarning.setVisibility(View.GONE);
getFragmentManager().beginTransaction()
- .replace(R.id.yubikey_import_fragment, mListFragment, "yubikey_import")
+ .replace(R.id.security_token_import_fragment, mListFragment, "token_import")
.commit();
getFragmentManager().executePendingTransactions();
@@ -188,9 +188,9 @@ public class CreateYubiKeyImportResetFragment
public void onSaveInstanceState(Bundle args) {
super.onSaveInstanceState(args);
- args.putByteArray(ARG_FINGERPRINTS, mNfcFingerprints);
- args.putByteArray(ARG_AID, mNfcAid);
- args.putString(ARG_USER_ID, mNfcUserId);
+ args.putByteArray(ARG_FINGERPRINTS, mTokenFingerprints);
+ args.putByteArray(ARG_AID, mTokenAid);
+ args.putString(ARG_USER_ID, mTokenUserId);
}
@Override
@@ -200,25 +200,25 @@ public class CreateYubiKeyImportResetFragment
}
public void setData() {
- String serno = Hex.toHexString(mNfcAid, 10, 4);
- vSerNo.setText(getString(R.string.yubikey_serno, serno));
+ String serno = Hex.toHexString(mTokenAid, 10, 4);
+ vSerNo.setText(getString(R.string.security_token_serial_no, serno));
- if (!mNfcUserId.isEmpty()) {
- vUserId.setText(getString(R.string.yubikey_key_holder, mNfcUserId));
+ if (!mTokenUserId.isEmpty()) {
+ vUserId.setText(getString(R.string.security_token_key_holder, mTokenUserId));
} else {
- vUserId.setText(getString(R.string.yubikey_key_holder_not_set));
+ vUserId.setText(getString(R.string.security_token_key_holder_not_set));
}
}
public void refreshSearch() {
- mListFragment.loadNew(new ImportKeysListFragment.CloudLoaderState("0x" + mNfcFingerprint,
+ mListFragment.loadNew(new ImportKeysListFragment.CloudLoaderState("0x" + mTokenFingerprint,
Preferences.getPreferences(getActivity()).getCloudSearchPrefs()));
}
public void importKey() {
ArrayList<ParcelableKeyRing> keyList = new ArrayList<>();
- keyList.add(new ParcelableKeyRing(mNfcFingerprint, null));
+ keyList.add(new ParcelableKeyRing(mTokenFingerprint, null));
mKeyList = keyList;
mKeyserver = Preferences.getPreferences(getActivity()).getPreferredKeyserver();
@@ -230,11 +230,11 @@ public class CreateYubiKeyImportResetFragment
}
public void resetCard() {
- Intent intent = new Intent(getActivity(), NfcOperationActivity.class);
- intent.putExtra(NfcOperationActivity.EXTRA_SERVICE_INTENT, (Parcelable[]) null);
+ Intent intent = new Intent(getActivity(), SecurityTokenOperationActivity.class);
+ intent.putExtra(SecurityTokenOperationActivity.EXTRA_SERVICE_INTENT, (Parcelable[]) null);
RequiredInputParcel resetP = RequiredInputParcel.createNfcReset();
- intent.putExtra(NfcOperationActivity.EXTRA_REQUIRED_INPUT, resetP);
- intent.putExtra(NfcOperationActivity.EXTRA_CRYPTO_INPUT, new CryptoInputParcel());
+ intent.putExtra(SecurityTokenOperationActivity.EXTRA_REQUIRED_INPUT, resetP);
+ intent.putExtra(SecurityTokenOperationActivity.EXTRA_CRYPTO_INPUT, new CryptoInputParcel());
startActivityForResult(intent, REQUEST_CODE_RESET);
}
@@ -251,13 +251,13 @@ public class CreateYubiKeyImportResetFragment
@Override
public void doNfcInBackground() throws IOException {
- mNfcFingerprints = mCreateKeyActivity.nfcGetFingerprints();
- mNfcAid = mCreateKeyActivity.nfcGetAid();
- mNfcUserId = mCreateKeyActivity.nfcGetUserId();
+ mTokenFingerprints = mCreateKeyActivity.nfcGetFingerprints();
+ mTokenAid = mCreateKeyActivity.nfcGetAid();
+ mTokenUserId = mCreateKeyActivity.nfcGetUserId();
byte[] fp = new byte[20];
- ByteBuffer.wrap(fp).put(mNfcFingerprints, 0, 20);
- mNfcFingerprint = KeyFormattingUtils.convertFingerprintToHex(fp);
+ ByteBuffer.wrap(fp).put(mTokenFingerprints, 0, 20);
+ mTokenFingerprint = KeyFormattingUtils.convertFingerprintToHex(fp);
}
@Override
@@ -284,13 +284,13 @@ public class CreateYubiKeyImportResetFragment
Activity activity = getActivity();
Intent intent = new Intent(activity, ViewKeyActivity.class);
- // use the imported masterKeyId, not the one from the yubikey, because
+ // use the imported masterKeyId, not the one from the token, because
// that one might* just have been a subkey of the imported key
intent.setData(KeyRings.buildGenericKeyRingUri(masterKeyIds[0]));
intent.putExtra(ViewKeyActivity.EXTRA_DISPLAY_RESULT, result);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mNfcFingerprints);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_AID, mTokenAid);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_USER_ID, mTokenUserId);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_FINGERPRINTS, mTokenFingerprints);
startActivity(intent);
activity.finish();
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyPinFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java
index 128383d6d..45cf7a665 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyPinFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenPinFragment.java
@@ -37,7 +37,7 @@ import java.security.SecureRandom;
import java.util.Arrays;
import java.util.HashSet;
-public class CreateYubiKeyPinFragment extends Fragment {
+public class CreateSecurityTokenPinFragment extends Fragment {
// view
CreateKeyActivity mCreateKeyActivity;
@@ -65,8 +65,8 @@ public class CreateYubiKeyPinFragment extends Fragment {
/**
* Creates new instance of this fragment
*/
- public static CreateYubiKeyPinFragment newInstance() {
- CreateYubiKeyPinFragment frag = new CreateYubiKeyPinFragment();
+ public static CreateSecurityTokenPinFragment newInstance() {
+ CreateSecurityTokenPinFragment frag = new CreateSecurityTokenPinFragment();
Bundle args = new Bundle();
frag.setArguments(args);
@@ -109,7 +109,7 @@ public class CreateYubiKeyPinFragment extends Fragment {
mBackButton = view.findViewById(R.id.create_key_back_button);
mNextButton = view.findViewById(R.id.create_key_next_button);
- if (mCreateKeyActivity.mYubiKeyPin == null) {
+ if (mCreateKeyActivity.mSecurityTokenPin == null) {
new AsyncTask<Void, Void, Passphrase>() {
@Override
protected Passphrase doInBackground(Void... unused) {
@@ -129,13 +129,13 @@ public class CreateYubiKeyPinFragment extends Fragment {
@Override
protected void onPostExecute(Passphrase adminPin) {
- mCreateKeyActivity.mYubiKeyAdminPin = adminPin;
+ mCreateKeyActivity.mSecurityTokenAdminPin = adminPin;
- mAdminPin.setText(mCreateKeyActivity.mYubiKeyAdminPin.toStringUnsafe());
+ mAdminPin.setText(mCreateKeyActivity.mSecurityTokenAdminPin.toStringUnsafe());
}
}.execute();
} else {
- mAdminPin.setText(mCreateKeyActivity.mYubiKeyAdminPin.toStringUnsafe());
+ mAdminPin.setText(mCreateKeyActivity.mSecurityTokenAdminPin.toStringUnsafe());
}
mPin.requestFocus();
@@ -187,7 +187,7 @@ public class CreateYubiKeyPinFragment extends Fragment {
return;
}
- mCreateKeyActivity.mYubiKeyPin = new Passphrase(mPin.getText().toString());
+ mCreateKeyActivity.mSecurityTokenPin = new Passphrase(mPin.getText().toString());
CreateKeyFinalFragment frag = CreateKeyFinalFragment.newInstance();
hideKeyboard();
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyWaitFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java
index d45195512..a3ea38e40 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyWaitFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateSecurityTokenWaitFragment.java
@@ -28,14 +28,14 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
-public class CreateYubiKeyWaitFragment extends Fragment {
+public class CreateSecurityTokenWaitFragment extends Fragment {
CreateKeyActivity mCreateKeyActivity;
View mBackButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.create_yubi_key_wait_fragment, container, false);
+ View view = inflater.inflate(R.layout.create_security_token_wait_fragment, container, false);
mBackButton = view.findViewById(R.id.create_key_back_button);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
index 1c72cdf41..2d94d0d93 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
@@ -435,9 +435,9 @@ public class EditKeyFragment extends QueueingCryptoOperationFragment<SaveKeyring
}
// toggle
change.mDummyStrip = !change.mDummyStrip;
- if (change.mDummyStrip && change.mMoveKeyToCard) {
+ if (change.mDummyStrip && change.mMoveKeyToSecurityToken) {
// User had chosen to divert key, but now wants to strip it instead.
- change.mMoveKeyToCard = false;
+ change.mMoveKeyToSecurityToken = false;
}
break;
}
@@ -479,8 +479,8 @@ public class EditKeyFragment extends QueueingCryptoOperationFragment<SaveKeyring
// break;
// }
// // toggle
-// change.mMoveKeyToCard = !change.mMoveKeyToCard;
-// if (change.mMoveKeyToCard && change.mDummyStrip) {
+// change.mMoveKeyToSecurityToken = !change.mMoveKeyToSecurityToken;
+// if (change.mMoveKeyToSecurityToken && change.mDummyStrip) {
// // User had chosen to strip key, but now wants to divert it.
// change.mDummyStrip = false;
// }
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
index 1fe3df869..dce0d3aaf 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
@@ -36,7 +36,7 @@ import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry;
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
-import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity;
+import org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenNfcActivity;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Notify;
@@ -48,7 +48,7 @@ import org.sufficientlysecure.keychain.util.Preferences;
import java.io.IOException;
import java.util.ArrayList;
-public class ImportKeysActivity extends BaseNfcActivity
+public class ImportKeysActivity extends BaseSecurityTokenNfcActivity
implements CryptoOperationHelper.Callback<ImportKeyringParcel, ImportKeyResult> {
public static final String ACTION_IMPORT_KEY = OpenKeychainIntents.IMPORT_KEY;
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java
index 7bd7bafcc..af60a1d9b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java
@@ -40,11 +40,11 @@ import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.remote.ui.AppsListFragment;
-import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity;
+import org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenNfcActivity;
import org.sufficientlysecure.keychain.util.FabContainer;
import org.sufficientlysecure.keychain.util.Preferences;
-public class MainActivity extends BaseNfcActivity implements FabContainer, OnBackStackChangedListener {
+public class MainActivity extends BaseSecurityTokenNfcActivity implements FabContainer, OnBackStackChangedListener {
static final int ID_KEYS = 1;
static final int ID_ENCRYPT_DECRYPT = 2;
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java
index 2fcbbf6c2..b934f3d5f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java
@@ -261,7 +261,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
hint = getString(R.string.label_pin);
break;
case DIVERT_TO_CARD:
- message = getString(R.string.yubikey_pin_for, userId);
+ message = getString(R.string.security_token_pin_for, userId);
hint = getString(R.string.label_pin);
break;
// special case: empty passphrase just returns the empty passphrase
@@ -313,7 +313,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
mPassphraseEditText.setImeActionLabel(getString(android.R.string.ok), EditorInfo.IME_ACTION_DONE);
mPassphraseEditText.setOnEditorActionListener(this);
- if ((keyType == CanonicalizedSecretKey.SecretKeyType.DIVERT_TO_CARD && Preferences.getPreferences(activity).useNumKeypadForYubiKeyPin())
+ if ((keyType == CanonicalizedSecretKey.SecretKeyType.DIVERT_TO_CARD && Preferences.getPreferences(activity).useNumKeypadForSecurityTokenPin())
|| keyType == CanonicalizedSecretKey.SecretKeyType.PIN) {
mPassphraseEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
mPassphraseEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java
index 86b0a36d0..130dd6a79 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java
@@ -27,7 +27,6 @@ import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
-import android.widget.Toast;
import android.widget.ViewAnimator;
import org.sufficientlysecure.keychain.Constants;
@@ -40,12 +39,11 @@ import org.sufficientlysecure.keychain.remote.CryptoInputParcelCacheService;
import org.sufficientlysecure.keychain.service.PassphraseCacheService;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
-import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity;
+import org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenNfcActivity;
import org.sufficientlysecure.keychain.ui.util.ThemeChanger;
import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.OrientationUtils;
import org.sufficientlysecure.keychain.util.Passphrase;
-import org.sufficientlysecure.keychain.util.Preferences;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -56,7 +54,7 @@ import java.util.Arrays;
* NFC devices.
* For the full specs, see http://g10code.com/docs/openpgp-card-2.0.pdf
*/
-public class NfcOperationActivity extends BaseNfcActivity {
+public class SecurityTokenOperationActivity extends BaseSecurityTokenNfcActivity {
public static final String EXTRA_REQUIRED_INPUT = "required_input";
public static final String EXTRA_CRYPTO_INPUT = "crypto_input";
@@ -99,12 +97,12 @@ public class NfcOperationActivity extends BaseNfcActivity {
mInputParcel = getIntent().getParcelableExtra(EXTRA_CRYPTO_INPUT);
- setTitle(R.string.nfc_text);
+ setTitle(R.string.security_token_nfc_text);
vAnimator = (ViewAnimator) findViewById(R.id.view_animator);
vAnimator.setDisplayedChild(0);
- vErrorText = (TextView) findViewById(R.id.nfc_activity_3_error_text);
- vErrorTryAgainButton = (Button) findViewById(R.id.nfc_activity_3_error_try_again);
+ vErrorText = (TextView) findViewById(R.id.security_token_activity_3_error_text);
+ vErrorTryAgainButton = (Button) findViewById(R.id.security_token_activity_3_error_try_again);
vErrorTryAgainButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -114,7 +112,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
vAnimator.setDisplayedChild(0);
}
});
- Button vCancel = (Button) findViewById(R.id.nfc_activity_0_cancel);
+ Button vCancel = (Button) findViewById(R.id.security_token_activity_0_cancel);
vCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -136,13 +134,13 @@ public class NfcOperationActivity extends BaseNfcActivity {
// obtain passphrase for this subkey
if (mRequiredInput.mType != RequiredInputParcel.RequiredInputType.NFC_MOVE_KEY_TO_CARD
&& mRequiredInput.mType != RequiredInputParcel.RequiredInputType.NFC_RESET_CARD) {
- obtainYubiKeyPin(mRequiredInput);
+ obtainSecurityTokenPin(mRequiredInput);
}
}
@Override
protected void initLayout() {
- setContentView(R.layout.nfc_operation_activity);
+ setContentView(R.layout.security_token_operation_activity);
}
@Override
@@ -186,7 +184,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
KeychainContract.KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(mRequiredInput.getMasterKeyId())
);
} catch (ProviderHelper.NotFoundException e) {
- throw new IOException("Couldn't find subkey for key to card operation.");
+ throw new IOException("Couldn't find subkey for key to token operation.");
}
byte[] newPin = mRequiredInput.mInputData[0];
@@ -202,7 +200,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
long keyGenerationTimestampMillis = key.getCreationTime().getTime();
long keyGenerationTimestamp = keyGenerationTimestampMillis / 1000;
byte[] timestampBytes = ByteBuffer.allocate(4).putInt((int) keyGenerationTimestamp).array();
- byte[] cardSerialNumber = Arrays.copyOf(nfcGetAid(), 16);
+ byte[] tokenSerialNumber = Arrays.copyOf(nfcGetAid(), 16);
Passphrase passphrase;
try {
@@ -218,7 +216,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
nfcPutData(0xCE, timestampBytes);
nfcPutData(0xC7, key.getFingerprint());
} else {
- throw new IOException("Key slot occupied; card must be reset to put new signature key.");
+ throw new IOException("Key slot occupied; token must be reset to put new signature key.");
}
} else if (key.canEncrypt()) {
if (shouldPutKey(key.getFingerprint(), 1)) {
@@ -226,7 +224,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
nfcPutData(0xCF, timestampBytes);
nfcPutData(0xC8, key.getFingerprint());
} else {
- throw new IOException("Key slot occupied; card must be reset to put new decryption key.");
+ throw new IOException("Key slot occupied; token must be reset to put new decryption key.");
}
} else if (key.canAuthenticate()) {
if (shouldPutKey(key.getFingerprint(), 2)) {
@@ -234,14 +232,14 @@ public class NfcOperationActivity extends BaseNfcActivity {
nfcPutData(0xD0, timestampBytes);
nfcPutData(0xC9, key.getFingerprint());
} else {
- throw new IOException("Key slot occupied; card must be reset to put new authentication key.");
+ throw new IOException("Key slot occupied; token must be reset to put new authentication key.");
}
} else {
- throw new IOException("Inappropriate key flags for smart card key.");
+ throw new IOException("Inappropriate key flags for Security Token key.");
}
// TODO: Is this really used anywhere?
- mInputParcel.addCryptoData(subkeyBytes, cardSerialNumber);
+ mInputParcel.addCryptoData(subkeyBytes, tokenSerialNumber);
}
// change PINs afterwards
@@ -282,7 +280,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
- // check all 200ms if YubiKey has been taken away
+ // check all 200ms if Security Token has been taken away
while (true) {
if (isNfcConnected()) {
try {
@@ -307,7 +305,7 @@ public class NfcOperationActivity extends BaseNfcActivity {
protected void onNfcError(String error) {
pauseTagHandling();
- vErrorText.setText(error + "\n\n" + getString(R.string.nfc_try_again_text));
+ vErrorText.setText(error + "\n\n" + getString(R.string.security_token_nfc_try_again_text));
vAnimator.setDisplayedChild(3);
}
@@ -321,17 +319,17 @@ public class NfcOperationActivity extends BaseNfcActivity {
}
private boolean shouldPutKey(byte[] fingerprint, int idx) throws IOException {
- byte[] cardFingerprint = nfcGetMasterKeyFingerprint(idx);
+ byte[] tokenFingerprint = nfcGetMasterKeyFingerprint(idx);
// Note: special case: This should not happen, but happens with
// https://github.com/FluffyKaon/OpenPGP-Card, thus for now assume true
- if (cardFingerprint == null) {
+ if (tokenFingerprint == null) {
return true;
}
// Slot is empty, or contains this key already. PUT KEY operation is safe
- if (Arrays.equals(cardFingerprint, BLANK_FINGERPRINT) ||
- Arrays.equals(cardFingerprint, fingerprint)) {
+ if (Arrays.equals(tokenFingerprint, BLANK_FINGERPRINT) ||
+ Arrays.equals(tokenFingerprint, fingerprint)) {
return true;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsCacheTTLFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsCacheTTLFragment.java
index 1c769e7a2..b811d51b5 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsCacheTTLFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsCacheTTLFragment.java
@@ -77,7 +77,6 @@ public class SettingsCacheTTLFragment extends Fragment {
recyclerView.setAdapter(mAdapter);
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
-
}
private void savePreference() {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
index 67487f2ca..03fc07936 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
@@ -84,7 +84,7 @@ import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
import org.sufficientlysecure.keychain.ui.ViewKeyFragment.PostponeType;
-import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity;
+import org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenNfcActivity;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
@@ -102,13 +102,13 @@ import org.sufficientlysecure.keychain.util.Passphrase;
import org.sufficientlysecure.keychain.util.Preferences;
-public class ViewKeyActivity extends BaseNfcActivity implements
+public class ViewKeyActivity extends BaseSecurityTokenNfcActivity implements
LoaderManager.LoaderCallbacks<Cursor>,
CryptoOperationHelper.Callback<ImportKeyringParcel, ImportKeyResult> {
- public static final String EXTRA_NFC_USER_ID = "nfc_user_id";
- public static final String EXTRA_NFC_AID = "nfc_aid";
- public static final String EXTRA_NFC_FINGERPRINTS = "nfc_fingerprints";
+ public static final String EXTRA_SECURITY_TOKEN_USER_ID = "security_token_user_id";
+ public static final String EXTRA_SECURITY_TOKEN_AID = "security_token_aid";
+ public static final String EXTRA_SECURITY_TOKEN_FINGERPRINTS = "security_token_fingerprints";
@Retention(RetentionPolicy.SOURCE)
@IntDef({REQUEST_QR_FINGERPRINT, REQUEST_BACKUP, REQUEST_CERTIFY, REQUEST_DELETE})
@@ -159,7 +159,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements
private boolean mIsRevoked = false;
private boolean mIsExpired = false;
- private boolean mShowYubikeyAfterCreation = false;
+ private boolean mShowSecurityTokenAfterCreation = false;
private MenuItem mRefreshItem;
private boolean mIsRefreshing;
@@ -345,9 +345,9 @@ public class ViewKeyActivity extends BaseNfcActivity implements
.commit();
}
- // need to postpone loading of the yubikey fragment until after mMasterKeyId
+ // need to postpone loading of the security token fragment until after mMasterKeyId
// is available, but we mark here that this should be done
- mShowYubikeyAfterCreation = true;
+ mShowSecurityTokenAfterCreation = true;
}
@@ -656,69 +656,69 @@ public class ViewKeyActivity extends BaseNfcActivity implements
@Override
protected void onNfcPostExecute() {
- long yubiKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(mNfcFingerprints);
+ long tokenId = KeyFormattingUtils.getKeyIdFromFingerprint(mNfcFingerprints);
try {
- // if the yubikey matches a subkey in any key
+ // if the security token matches a subkey in any key
CachedPublicKeyRing ring = mProviderHelper.getCachedPublicKeyRing(
- KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(yubiKeyId));
+ KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(tokenId));
byte[] candidateFp = ring.getFingerprint();
- // if the master key of that key matches this one, just show the yubikey dialog
+ // if the master key of that key matches this one, just show the token dialog
if (KeyFormattingUtils.convertFingerprintToHex(candidateFp).equals(mFingerprintString)) {
- showYubiKeyFragment(mNfcFingerprints, mNfcUserId, mNfcAid);
+ showSecurityTokenFragment(mNfcFingerprints, mNfcUserId, mNfcAid);
return;
}
// otherwise, offer to go to that key
final long masterKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(candidateFp);
- Notify.create(this, R.string.snack_yubi_other, Notify.LENGTH_LONG,
+ Notify.create(this, R.string.snack_security_token_other, Notify.LENGTH_LONG,
Style.WARN, new ActionListener() {
@Override
public void onAction() {
Intent intent = new Intent(
ViewKeyActivity.this, ViewKeyActivity.class);
intent.setData(KeyRings.buildGenericKeyRingUri(masterKeyId));
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mNfcFingerprints);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_AID, mNfcAid);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_USER_ID, mNfcUserId);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_FINGERPRINTS, mNfcFingerprints);
startActivity(intent);
finish();
}
- }, R.string.snack_yubikey_view).show();
+ }, R.string.snack_security_token_view).show();
// and if it's not found, offer import
} catch (PgpKeyNotFoundException e) {
- Notify.create(this, R.string.snack_yubi_other, Notify.LENGTH_LONG,
+ Notify.create(this, R.string.snack_security_token_other, Notify.LENGTH_LONG,
Style.WARN, new ActionListener() {
@Override
public void onAction() {
Intent intent = new Intent(
ViewKeyActivity.this, CreateKeyActivity.class);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mNfcFingerprints);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_AID, mNfcAid);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_USER_ID, mNfcUserId);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_FINGERPRINTS, mNfcFingerprints);
startActivity(intent);
finish();
}
- }, R.string.snack_yubikey_import).show();
+ }, R.string.snack_security_token_import).show();
}
}
- public void showYubiKeyFragment(
- final byte[] nfcFingerprints, final String nfcUserId, final byte[] nfcAid) {
+ public void showSecurityTokenFragment(
+ final byte[] tokenFingerprints, final String tokenUserId, final byte[] tokenAid) {
new Handler().post(new Runnable() {
@Override
public void run() {
- ViewKeyYubiKeyFragment frag = ViewKeyYubiKeyFragment.newInstance(
- mMasterKeyId, nfcFingerprints, nfcUserId, nfcAid);
+ ViewKeySecurityTokenFragment frag = ViewKeySecurityTokenFragment.newInstance(
+ mMasterKeyId, tokenFingerprints, tokenUserId, tokenAid);
FragmentManager manager = getSupportFragmentManager();
- manager.popBackStack("yubikey", FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ manager.popBackStack("security_token", FragmentManager.POP_BACK_STACK_INCLUSIVE);
manager.beginTransaction()
- .addToBackStack("yubikey")
+ .addToBackStack("security_token")
.replace(R.id.view_key_fragment, frag)
// if this is called while the activity wasn't resumed, just forget it happened
.commitAllowingStateLoss();
@@ -888,14 +888,14 @@ public class ViewKeyActivity extends BaseNfcActivity implements
mFingerprint = data.getBlob(INDEX_FINGERPRINT);
mFingerprintString = KeyFormattingUtils.convertFingerprintToHex(mFingerprint);
- // if it wasn't shown yet, display yubikey fragment
- if (mShowYubikeyAfterCreation && getIntent().hasExtra(EXTRA_NFC_AID)) {
- mShowYubikeyAfterCreation = false;
+ // if it wasn't shown yet, display token fragment
+ if (mShowSecurityTokenAfterCreation && getIntent().hasExtra(EXTRA_SECURITY_TOKEN_AID)) {
+ mShowSecurityTokenAfterCreation = false;
Intent intent = getIntent();
- byte[] nfcFingerprints = intent.getByteArrayExtra(EXTRA_NFC_FINGERPRINTS);
- String nfcUserId = intent.getStringExtra(EXTRA_NFC_USER_ID);
- byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
- showYubiKeyFragment(nfcFingerprints, nfcUserId, nfcAid);
+ byte[] tokenFingerprints = intent.getByteArrayExtra(EXTRA_SECURITY_TOKEN_FINGERPRINTS);
+ String tokenUserId = intent.getStringExtra(EXTRA_SECURITY_TOKEN_USER_ID);
+ byte[] tokenAid = intent.getByteArrayExtra(EXTRA_SECURITY_TOKEN_AID);
+ showSecurityTokenFragment(tokenFingerprints, tokenUserId, tokenAid);
}
mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
index b10e5f8d4..b9a8259c1 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
@@ -61,10 +61,11 @@ public class ViewKeyAdvActivity extends BaseActivity implements
protected Uri mDataUri;
public static final String EXTRA_SELECTED_TAB = "selected_tab";
- public static final int TAB_SHARE = 0;
- public static final int TAB_IDENTITIES = 1;
- public static final int TAB_SUBKEYS = 2;
- public static final int TAB_CERTS = 3;
+ public static final int TAB_START = 0;
+ public static final int TAB_SHARE = 1;
+ public static final int TAB_IDENTITIES = 2;
+ public static final int TAB_SUBKEYS = 3;
+ public static final int TAB_CERTS = 4;
// view
private ViewPager mViewPager;
@@ -126,31 +127,35 @@ public class ViewKeyAdvActivity extends BaseActivity implements
mViewPager.setAdapter(mTabAdapter);
// keep track which of these are action mode enabled!
- mTabsWithActionMode = new boolean[4];
+ mTabsWithActionMode = new boolean[5];
+
+ mTabAdapter.addTab(ViewKeyAdvStartFragment.class,
+ null, getString(R.string.key_view_tab_start));
+ mTabsWithActionMode[0] = false;
Bundle shareBundle = new Bundle();
shareBundle.putParcelable(ViewKeyAdvShareFragment.ARG_DATA_URI, dataUri);
mTabAdapter.addTab(ViewKeyAdvShareFragment.class,
shareBundle, getString(R.string.key_view_tab_share));
- mTabsWithActionMode[0] = false;
+ mTabsWithActionMode[1] = false;
Bundle userIdsBundle = new Bundle();
userIdsBundle.putParcelable(ViewKeyAdvUserIdsFragment.ARG_DATA_URI, dataUri);
mTabAdapter.addTab(ViewKeyAdvUserIdsFragment.class,
userIdsBundle, getString(R.string.section_user_ids));
- mTabsWithActionMode[1] = true;
+ mTabsWithActionMode[2] = true;
Bundle keysBundle = new Bundle();
keysBundle.putParcelable(ViewKeyAdvSubkeysFragment.ARG_DATA_URI, dataUri);
mTabAdapter.addTab(ViewKeyAdvSubkeysFragment.class,
keysBundle, getString(R.string.key_view_tab_keys));
- mTabsWithActionMode[2] = true;
+ mTabsWithActionMode[3] = true;
Bundle certsBundle = new Bundle();
certsBundle.putParcelable(ViewKeyAdvCertsFragment.ARG_DATA_URI, dataUri);
mTabAdapter.addTab(ViewKeyAdvCertsFragment.class,
certsBundle, getString(R.string.key_view_tab_certs));
- mTabsWithActionMode[3] = false;
+ mTabsWithActionMode[4] = false;
// update layout after operations
mSlidingTabLayout.setViewPager(mViewPager);
@@ -158,7 +163,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements
// switch to tab selected by extra
Intent intent = getIntent();
- int switchToTab = intent.getIntExtra(EXTRA_SELECTED_TAB, TAB_SHARE);
+ int switchToTab = intent.getIntExtra(EXTRA_SELECTED_TAB, TAB_START);
mViewPager.setCurrentItem(switchToTab);
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvStartFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvStartFragment.java
new file mode 100644
index 000000000..f7e6f2b9c
--- /dev/null
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvStartFragment.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2015 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package org.sufficientlysecure.keychain.ui;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import org.markdown4j.Markdown4jProcessor;
+import org.sufficientlysecure.htmltextview.HtmlTextView;
+import org.sufficientlysecure.keychain.Constants;
+import org.sufficientlysecure.keychain.R;
+import org.sufficientlysecure.keychain.util.Log;
+
+import java.io.IOException;
+
+public class ViewKeyAdvStartFragment extends Fragment {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.view_key_adv_start_fragment, container, false);
+
+ HtmlTextView textView = (HtmlTextView)
+ view.findViewById(R.id.view_key_adv_start_text);
+
+ // load markdown from raw resource
+ try {
+ String html = new Markdown4jProcessor().process(
+ getActivity().getResources().openRawResource(R.raw.advanced));
+ textView.setHtmlFromString(html, new HtmlTextView.LocalImageGetter());
+ } catch (IOException e) {
+ Log.e(Constants.TAG, "IOException", e);
+ }
+
+ return view;
+ }
+
+}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java
index 14477723e..fc6db1b92 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvSubkeysFragment.java
@@ -340,9 +340,9 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements
}
// toggle
change.mDummyStrip = !change.mDummyStrip;
- if (change.mDummyStrip && change.mMoveKeyToCard) {
+ if (change.mDummyStrip && change.mMoveKeyToSecurityToken) {
// User had chosen to divert key, but now wants to strip it instead.
- change.mMoveKeyToCard = false;
+ change.mMoveKeyToSecurityToken = false;
}
break;
}
@@ -384,8 +384,8 @@ public class ViewKeyAdvSubkeysFragment extends LoaderFragment implements
// break;
// }
// // toggle
-// change.mMoveKeyToCard = !change.mMoveKeyToCard;
-// if (change.mMoveKeyToCard && change.mDummyStrip) {
+// change.mMoveKeyToSecurityToken = !change.mMoveKeyToSecurityToken;
+// if (change.mMoveKeyToSecurityToken && change.mDummyStrip) {
// // User had chosen to strip key, but now wants to divert it.
// change.mDummyStrip = false;
// }
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyYubiKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeySecurityTokenFragment.java
index f980f297b..48e41c7bb 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyYubiKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeySecurityTokenFragment.java
@@ -44,7 +44,7 @@ import org.sufficientlysecure.keychain.ui.base.QueueingCryptoOperationFragment;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
-public class ViewKeyYubiKeyFragment
+public class ViewKeySecurityTokenFragment
extends QueueingCryptoOperationFragment<PromoteKeyringParcel, PromoteKeyResult>
implements LoaderCallbacks<Cursor> {
@@ -62,9 +62,9 @@ public class ViewKeyYubiKeyFragment
private Button vButton;
private TextView vStatus;
- public static ViewKeyYubiKeyFragment newInstance(long masterKeyId,
+ public static ViewKeySecurityTokenFragment newInstance(long masterKeyId,
byte[] fingerprints, String userId, byte[] aid) {
- ViewKeyYubiKeyFragment frag = new ViewKeyYubiKeyFragment();
+ ViewKeySecurityTokenFragment frag = new ViewKeySecurityTokenFragment();
Bundle args = new Bundle();
args.putLong(ARG_MASTER_KEY_ID, masterKeyId);
@@ -76,7 +76,7 @@ public class ViewKeyYubiKeyFragment
return frag;
}
- public ViewKeyYubiKeyFragment() {
+ public ViewKeySecurityTokenFragment() {
super(null);
}
@@ -102,18 +102,18 @@ public class ViewKeyYubiKeyFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.view_key_yubikey, null);
+ View view = inflater.inflate(R.layout.view_key_security_token, null);
- TextView vSerNo = (TextView) view.findViewById(R.id.yubikey_serno);
- TextView vUserId = (TextView) view.findViewById(R.id.yubikey_userid);
+ TextView vSerNo = (TextView) view.findViewById(R.id.token_serno);
+ TextView vUserId = (TextView) view.findViewById(R.id.token_userid);
String serno = Hex.toHexString(mCardAid, 10, 4);
- vSerNo.setText(getString(R.string.yubikey_serno, serno));
+ vSerNo.setText(getString(R.string.security_token_serial_no, serno));
if (!mUserId.isEmpty()) {
- vUserId.setText(getString(R.string.yubikey_key_holder, mUserId));
+ vUserId.setText(getString(R.string.security_token_key_holder, mUserId));
} else {
- vUserId.setText(getString(R.string.yubikey_key_holder_not_set));
+ vUserId.setText(getString(R.string.security_token_key_holder_not_set));
}
vButton = (Button) view.findViewById(R.id.button_bind);
@@ -124,7 +124,7 @@ public class ViewKeyYubiKeyFragment
}
});
- vStatus = (TextView) view.findViewById(R.id.yubikey_status);
+ vStatus = (TextView) view.findViewById(R.id.token_status);
return view;
}
@@ -185,12 +185,12 @@ public class ViewKeyYubiKeyFragment
if (allBound) {
vButton.setVisibility(View.GONE);
- vStatus.setText(R.string.yubikey_status_bound);
+ vStatus.setText(R.string.security_token_status_bound);
} else {
vButton.setVisibility(View.VISIBLE);
vStatus.setText(noneBound
- ? R.string.yubikey_status_unbound
- : R.string.yubikey_status_partly);
+ ? R.string.security_token_status_unbound
+ : R.string.security_token_status_partly);
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
index 84608f2dc..b5ef1d5e4 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
@@ -174,7 +174,7 @@ public class SubkeysAdapter extends CursorAdapter {
? mSaveKeyringParcel.getSubkeyChange(keyId)
: null;
- if (change != null && (change.mDummyStrip || change.mMoveKeyToCard)) {
+ if (change != null && (change.mDummyStrip || change.mMoveKeyToSecurityToken)) {
if (change.mDummyStrip) {
algorithmStr.append(", ");
final SpannableString boldStripped = new SpannableString(
@@ -183,7 +183,7 @@ public class SubkeysAdapter extends CursorAdapter {
boldStripped.setSpan(new StyleSpan(Typeface.BOLD), 0, boldStripped.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
algorithmStr.append(boldStripped);
}
- if (change.mMoveKeyToCard) {
+ if (change.mMoveKeyToSecurityToken) {
algorithmStr.append(", ");
final SpannableString boldDivert = new SpannableString(
context.getString(R.string.key_divert)
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java
index 3e0bc7890..0f00fcd92 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseNfcActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseSecurityTokenNfcActivity.java
@@ -60,9 +60,8 @@ import org.sufficientlysecure.keychain.ui.util.Notify.Style;
import org.sufficientlysecure.keychain.util.Iso7816TLV;
import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Passphrase;
-import org.sufficientlysecure.keychain.util.Preferences;
-public abstract class BaseNfcActivity extends BaseActivity {
+public abstract class BaseSecurityTokenNfcActivity extends BaseActivity {
public static final int REQUEST_CODE_PIN = 1;
@@ -113,9 +112,9 @@ public abstract class BaseNfcActivity extends BaseActivity {
Intent intent = new Intent(this, ViewKeyActivity.class);
intent.setData(KeyRings.buildGenericKeyRingUri(masterKeyId));
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId);
- intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mNfcFingerprints);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_AID, mNfcAid);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_USER_ID, mNfcUserId);
+ intent.putExtra(ViewKeyActivity.EXTRA_SECURITY_TOKEN_FINGERPRINTS, mNfcFingerprints);
startActivity(intent);
} catch (PgpKeyNotFoundException e) {
Intent intent = new Intent(this, CreateKeyActivity.class);
@@ -224,12 +223,12 @@ public abstract class BaseNfcActivity extends BaseActivity {
private void handleNfcError(IOException e) {
if (e instanceof TagLostException) {
- onNfcError(getString(R.string.error_nfc_tag_lost));
+ onNfcError(getString(R.string.security_token_error_tag_lost));
return;
}
if (e instanceof IsoDepNotSupportedException) {
- onNfcError(getString(R.string.error_nfc_iso_dep_not_supported));
+ onNfcError(getString(R.string.security_token_error_iso_dep_not_supported));
return;
}
@@ -244,69 +243,69 @@ public abstract class BaseNfcActivity extends BaseActivity {
if ((status & (short) 0xFFF0) == 0x63C0) {
int tries = status & 0x000F;
// hook to do something different when PIN is wrong
- onNfcPinError(getResources().getQuantityString(R.plurals.error_pin, tries, tries));
+ onNfcPinError(getResources().getQuantityString(R.plurals.security_token_error_pin, tries, tries));
return;
}
// Otherwise, all status codes are fixed values.
switch (status) {
// These errors should not occur in everyday use; if they are returned, it means we
- // made a mistake sending data to the card, or the card is misbehaving.
+ // made a mistake sending data to the token, or the token is misbehaving.
case 0x6A80: {
- onNfcError(getString(R.string.error_nfc_bad_data));
+ onNfcError(getString(R.string.security_token_error_bad_data));
break;
}
case 0x6883: {
- onNfcError(getString(R.string.error_nfc_chaining_error));
+ onNfcError(getString(R.string.security_token_error_chaining_error));
break;
}
case 0x6B00: {
- onNfcError(getString(R.string.error_nfc_header, "P1/P2"));
+ onNfcError(getString(R.string.security_token_error_header, "P1/P2"));
break;
}
case 0x6D00: {
- onNfcError(getString(R.string.error_nfc_header, "INS"));
+ onNfcError(getString(R.string.security_token_error_header, "INS"));
break;
}
case 0x6E00: {
- onNfcError(getString(R.string.error_nfc_header, "CLA"));
+ onNfcError(getString(R.string.security_token_error_header, "CLA"));
break;
}
// These error conditions are more likely to be experienced by an end user.
case 0x6285: {
- onNfcError(getString(R.string.error_nfc_terminated));
+ onNfcError(getString(R.string.security_token_error_terminated));
break;
}
case 0x6700: {
- onNfcPinError(getString(R.string.error_nfc_wrong_length));
+ onNfcPinError(getString(R.string.security_token_error_wrong_length));
break;
}
case 0x6982: {
- onNfcError(getString(R.string.error_nfc_security_not_satisfied));
+ onNfcError(getString(R.string.security_token_error_security_not_satisfied));
break;
}
case 0x6983: {
- onNfcError(getString(R.string.error_nfc_authentication_blocked));
+ onNfcError(getString(R.string.security_token_error_authentication_blocked));
break;
}
case 0x6985: {
- onNfcError(getString(R.string.error_nfc_conditions_not_satisfied));
+ onNfcError(getString(R.string.security_token_error_conditions_not_satisfied));
break;
}
// 6A88 is "Not Found" in the spec, but Yubikey also returns 6A83 for this in some cases.
case 0x6A88:
case 0x6A83: {
- onNfcError(getString(R.string.error_nfc_data_not_found));
+ onNfcError(getString(R.string.security_token_error_data_not_found));
break;
}
// 6F00 is a JavaCard proprietary status code, SW_UNKNOWN, and usually represents an
- // unhandled exception on the smart card.
+ // unhandled exception on the security token.
case 0x6F00: {
- onNfcError(getString(R.string.error_nfc_unknown));
+ onNfcError(getString(R.string.security_token_error_unknown));
break;
}
default: {
- onNfcError(getString(R.string.error_nfc, e.getMessage()));
+ onNfcError(getString(R.string.security_token_error, e.getMessage()));
break;
}
}
@@ -335,7 +334,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
enableNfcForegroundDispatch();
}
- protected void obtainYubiKeyPin(RequiredInputParcel requiredInput) {
+ protected void obtainSecurityTokenPin(RequiredInputParcel requiredInput) {
try {
Passphrase passphrase = PassphraseCacheService.getCachedPassphrase(this,
@@ -471,7 +470,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
return fptlv.mV;
}
- /** Return the PW Status Bytes from the card. This is a simple DO; no TLV decoding needed.
+ /** Return the PW Status Bytes from the token. This is a simple DO; no TLV decoding needed.
*
* @return Seven bytes in fixed format, plus 0x9000 status word at the end.
*/
@@ -697,7 +696,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
}
}
- // reactivate card!
+ // reactivate token!
String reactivate1 = "00" + "e6" + "00" + "00";
String reactivate2 = "00" + "44" + "00" + "00";
String response1 = nfcCommunicate(reactivate1);
@@ -722,7 +721,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
}
/** Modifies the user's PW1 or PW3. Before sending, the new PIN will be validated for
- * conformance to the card's requirements for key length.
+ * conformance to the token's requirements for key length.
*
* @param pw For PW1, this is 0x81. For PW3 (Admin PIN), mode is 0x83.
* @param newPin The new PW1 or PW3.
@@ -767,7 +766,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
}
/**
- * Stores a data object on the card. Automatically validates the proper PIN for the operation.
+ * Stores a data object on the token. Automatically validates the proper PIN for the operation.
* Supported for all data objects < 255 bytes in length. Only the cardholder certificate
* (0x7F21) can exceed this length.
*
@@ -800,9 +799,9 @@ public abstract class BaseNfcActivity extends BaseActivity {
}
/**
- * Puts a key on the card in the given slot.
+ * Puts a key on the token in the given slot.
*
- * @param slot The slot on the card where the key should be stored:
+ * @param slot The slot on the token where the key should be stored:
* 0xB6: Signature Key
* 0xB8: Decipherment Key
* 0xA4: Authentication Key
@@ -823,12 +822,12 @@ public abstract class BaseNfcActivity extends BaseActivity {
// Shouldn't happen; the UI should block the user from getting an incompatible key this far.
if (crtSecretKey.getModulus().bitLength() > 2048) {
- throw new IOException("Key too large to export to smart card.");
+ throw new IOException("Key too large to export to Security Token.");
}
// Should happen only rarely; all GnuPG keys since 2006 use public exponent 65537.
if (!crtSecretKey.getPublicExponent().equals(new BigInteger("65537"))) {
- throw new IOException("Invalid public exponent for smart card key.");
+ throw new IOException("Invalid public exponent for smart Security Token.");
}
if (!mPw3Validated) {
@@ -884,7 +883,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
String putKeyCommand = "10DB3FFF";
String lastPutKeyCommand = "00DB3FFF";
- // Now we're ready to communicate with the card.
+ // Now we're ready to communicate with the token.
offset = 0;
String response;
while(offset < dataToSend.length) {
@@ -903,7 +902,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
}
if (!response.endsWith("9000")) {
- throw new CardException("Key export to card failed", parseCardStatus(response));
+ throw new CardException("Key export to Security Token failed", parseCardStatus(response));
}
}
@@ -914,7 +913,7 @@ public abstract class BaseNfcActivity extends BaseActivity {
/**
* Parses out the status word from a JavaCard response string.
*
- * @param response A hex string with the response from the card
+ * @param response A hex string with the response from the token
* @return A short indicating the SW1/SW2, or 0 if a status could not be determined.
*/
short parseCardStatus(String response) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java
index 7ab9c7237..451065d6b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java
@@ -39,7 +39,7 @@ import org.sufficientlysecure.keychain.service.KeychainService;
import org.sufficientlysecure.keychain.service.ServiceProgressHandler;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
-import org.sufficientlysecure.keychain.ui.NfcOperationActivity;
+import org.sufficientlysecure.keychain.ui.SecurityTokenOperationActivity;
import org.sufficientlysecure.keychain.ui.OrbotRequiredDialogActivity;
import org.sufficientlysecure.keychain.ui.PassphraseDialogActivity;
import org.sufficientlysecure.keychain.ui.RetryUploadDialogActivity;
@@ -133,9 +133,9 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
case NFC_MOVE_KEY_TO_CARD:
case NFC_DECRYPT:
case NFC_SIGN: {
- Intent intent = new Intent(activity, NfcOperationActivity.class);
- intent.putExtra(NfcOperationActivity.EXTRA_REQUIRED_INPUT, requiredInput);
- intent.putExtra(NfcOperationActivity.EXTRA_CRYPTO_INPUT, cryptoInputParcel);
+ Intent intent = new Intent(activity, SecurityTokenOperationActivity.class);
+ intent.putExtra(SecurityTokenOperationActivity.EXTRA_REQUIRED_INPUT, requiredInput);
+ intent.putExtra(SecurityTokenOperationActivity.EXTRA_CRYPTO_INPUT, cryptoInputParcel);
startActivityForResult(intent, REQUEST_CODE_NFC);
return;
}
@@ -212,7 +212,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
case REQUEST_CODE_NFC: {
if (resultCode == Activity.RESULT_OK && data != null) {
CryptoInputParcel cryptoInput =
- data.getParcelableExtra(NfcOperationActivity.RESULT_CRYPTO_INPUT);
+ data.getParcelableExtra(SecurityTokenOperationActivity.RESULT_CRYPTO_INPUT);
cryptoOperation(cryptoInput);
}
break;