Merge branch 'development' of github.com:open-keychain/open-keychain into development

Conflicts:
	OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKey.java
	OpenKeychain/src/main/res/values/strings.xml
This commit is contained in:
Vincent Breitmoser 2014-12-30 13:09:27 +01:00
commit 9e663237b6
25 changed files with 131 additions and 63 deletions

3
.gitmodules vendored
View File

@ -34,3 +34,6 @@
[submodule "extern/safeslinger-exchange"] [submodule "extern/safeslinger-exchange"]
path = extern/safeslinger-exchange path = extern/safeslinger-exchange
url = https://github.com/open-keychain/exchange-android url = https://github.com/open-keychain/exchange-android
[submodule "extern/android-lockpattern"]
path = extern/android-lockpattern
url = https://github.com/open-keychain/android-lockpattern.git

View File

@ -20,6 +20,7 @@ dependencies {
compile project(':extern:KeybaseLib:Lib') compile project(':extern:KeybaseLib:Lib')
compile project(':extern:TokenAutoComplete:library') compile project(':extern:TokenAutoComplete:library')
compile project(':extern:safeslinger-exchange') compile project(':extern:safeslinger-exchange')
compile project(':extern:android-lockpattern:code')
} }
android { android {

View File

@ -659,6 +659,12 @@
<activity <activity
android:name=".ui.PassphraseDialogActivity" android:name=".ui.PassphraseDialogActivity"
android:theme="@android:style/Theme.NoDisplay" /> android:theme="@android:style/Theme.NoDisplay" />
<activity
android:name="com.haibison.android.lockpattern.LockPatternActivity"
android:label="@string/title_unlock"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
android:screenOrientation="user"
android:theme="@style/Alp.42447968.Theme.Dialog.Light" />
<!-- <!--
NOTE: singleTop is set to get NFC foreground dispatch to work. NOTE: singleTop is set to get NFC foreground dispatch to work.
Then, all NFC intents will be broadcasted to onNewIntent() of this activity! Then, all NFC intents will be broadcasted to onNewIntent() of this activity!

View File

@ -84,7 +84,8 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey {
} }
public enum SecretKeyType { public enum SecretKeyType {
UNAVAILABLE(0), GNU_DUMMY(1), PASSPHRASE(2), PASSPHRASE_EMPTY(3), DIVERT_TO_CARD(4), PIN(5); UNAVAILABLE(0), GNU_DUMMY(1), PASSPHRASE(2), PASSPHRASE_EMPTY(3), DIVERT_TO_CARD(4), PIN(5),
PATTERN(6);
final int mNum; final int mNum;
@ -104,6 +105,8 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey {
return DIVERT_TO_CARD; return DIVERT_TO_CARD;
case 5: case 5:
return PIN; return PIN;
case 6:
return PATTERN;
// if this case happens, it's probably a check from a database value // if this case happens, it's probably a check from a database value
default: default:
return UNAVAILABLE; return UNAVAILABLE;

View File

@ -41,6 +41,8 @@ import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.haibison.android.lockpattern.LockPatternActivity;
import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround; import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
@ -68,6 +70,8 @@ public class PassphraseDialogActivity extends FragmentActivity {
// special extra for OpenPgpService // special extra for OpenPgpService
public static final String EXTRA_DATA = "data"; public static final String EXTRA_DATA = "data";
private static final int REQUEST_CODE_ENTER_PATTERN = 2;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -90,6 +94,40 @@ public class PassphraseDialogActivity extends FragmentActivity {
show(this, keyId, serviceIntent); show(this, keyId, serviceIntent);
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CODE_ENTER_PATTERN: {
/*
* NOTE that there are 4 possible result codes!!!
*/
switch (resultCode) {
case RESULT_OK:
// The user passed
break;
case RESULT_CANCELED:
// The user cancelled the task
break;
case LockPatternActivity.RESULT_FAILED:
// The user failed to enter the pattern
break;
case LockPatternActivity.RESULT_FORGOT_PATTERN:
// The user forgot the pattern and invoked your recovery Activity.
break;
}
/*
* In any case, there's always a key EXTRA_RETRY_COUNT, which holds
* the number of tries that the user did.
*/
int retryCount = data.getIntExtra(
LockPatternActivity.EXTRA_RETRY_COUNT, 0);
break;
}
}
}
/** /**
* Shows passphrase dialog to cache a new passphrase the user enters for using it later for * Shows passphrase dialog to cache a new passphrase the user enters for using it later for
* encryption. Based on mSecretKeyId it asks for a passphrase to open a private key or it asks * encryption. Based on mSecretKeyId it asks for a passphrase to open a private key or it asks
@ -138,7 +176,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(theme); CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(theme);
alert.setTitle(R.string.title_authentication); alert.setTitle(R.string.title_unlock);
String userId; String userId;
CanonicalizedSecretKey.SecretKeyType keyType = CanonicalizedSecretKey.SecretKeyType.PASSPHRASE; CanonicalizedSecretKey.SecretKeyType keyType = CanonicalizedSecretKey.SecretKeyType.PASSPHRASE;
@ -174,7 +212,10 @@ public class PassphraseDialogActivity extends FragmentActivity {
message = getString(R.string.pin_for, userId); message = getString(R.string.pin_for, userId);
break; break;
case DIVERT_TO_CARD: case DIVERT_TO_CARD:
message = getString(R.string.yubikey_pin, userId); message = getString(R.string.yubikey_pin_for, userId);
break;
case PIN:
message = getString(R.string.pin_for, userId);
break; break;
default: default:
message = "This should not happen!"; message = "This should not happen!";
@ -212,39 +253,51 @@ public class PassphraseDialogActivity extends FragmentActivity {
} }
}); });
// Hack to open keyboard.
// This is the only method that I found to work across all Android versions
// http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/
// Notes: * onCreateView can't be used because we want to add buttons to the dialog
// * opening in onActivityCreated does not work on Android 4.4
mPassphraseEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
mPassphraseEditText.post(new Runnable() {
@Override
public void run() {
if (getActivity() == null || mPassphraseEditText == null) {
return;
}
InputMethodManager imm = (InputMethodManager) getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mPassphraseEditText, InputMethodManager.SHOW_IMPLICIT);
}
});
}
});
mPassphraseEditText.requestFocus();
mPassphraseEditText.setImeActionLabel(getString(android.R.string.ok), EditorInfo.IME_ACTION_DONE); if (keyType == CanonicalizedSecretKey.SecretKeyType.PATTERN) {
mPassphraseEditText.setOnEditorActionListener(this); // start pattern dialog and show progress circle here...
Intent patternActivity = new Intent(getActivity(), LockPatternActivity.class);
if (keyType == CanonicalizedSecretKey.SecretKeyType.DIVERT_TO_CARD && Preferences.getPreferences(activity).useNumKeypadForYubikeyPin()) { patternActivity.putExtra(LockPatternActivity.EXTRA_PATTERN, "123");
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD); startActivityForResult(patternActivity, REQUEST_CODE_ENTER_PATTERN);
mInput.setVisibility(View.GONE);
mProgress.setVisibility(View.VISIBLE);
} else { } else {
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); // Hack to open keyboard.
} // This is the only method that I found to work across all Android versions
// http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/
// Notes: * onCreateView can't be used because we want to add buttons to the dialog
// * opening in onActivityCreated does not work on Android 4.4
mPassphraseEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
mPassphraseEditText.post(new Runnable() {
@Override
public void run() {
if (getActivity() == null || mPassphraseEditText == null) {
return;
}
InputMethodManager imm = (InputMethodManager) getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mPassphraseEditText, InputMethodManager.SHOW_IMPLICIT);
}
});
}
});
mPassphraseEditText.requestFocus();
mPassphraseEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); 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()) {
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
} else if (keyType == CanonicalizedSecretKey.SecretKeyType.PIN) {
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
} else {
mPassphraseEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
mPassphraseEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
AlertDialog dialog = alert.create(); AlertDialog dialog = alert.create();
dialog.setButton(DialogInterface.BUTTON_POSITIVE, dialog.setButton(DialogInterface.BUTTON_POSITIVE,
@ -267,7 +320,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
// Early breakout if we are dealing with a symmetric key // Early breakout if we are dealing with a symmetric key
if (mSecretRing == null) { if (mSecretRing == null) {
PassphraseCacheService.addCachedPassphrase(getActivity(), PassphraseCacheService.addCachedPassphrase(getActivity(),
Constants.key.symmetric, Constants.key.symmetric, passphrase, Constants.key.symmetric, Constants.key.symmetric, passphrase,
getString(R.string.passp_cache_notif_pwd)); getString(R.string.passp_cache_notif_pwd));
finishCaching(passphrase); finishCaching(passphrase);

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Zašifrovat text</string> <string name="title_encrypt_text">Zašifrovat text</string>
<string name="title_encrypt_files">Zašifrovat soubory</string> <string name="title_encrypt_files">Zašifrovat soubory</string>
<string name="title_decrypt">Rozšifrovat</string> <string name="title_decrypt">Rozšifrovat</string>
<string name="title_authentication">Heslo</string> <string name="title_unlock">Heslo</string>
<string name="title_add_subkey">Přidat podklíč</string> <string name="title_add_subkey">Přidat podklíč</string>
<string name="title_edit_key">Editovat klíč</string> <string name="title_edit_key">Editovat klíč</string>
<string name="title_preferences">Možnosti</string> <string name="title_preferences">Možnosti</string>
@ -183,7 +183,7 @@
<string name="passphrase_must_not_be_empty">Prosím zadejte heslo.</string> <string name="passphrase_must_not_be_empty">Prosím zadejte heslo.</string>
<string name="passphrase_for_symmetric_encryption">Symetrická šifra.</string> <string name="passphrase_for_symmetric_encryption">Symetrická šifra.</string>
<string name="passphrase_for">Zadejte heslo pro \'%s\'</string> <string name="passphrase_for">Zadejte heslo pro \'%s\'</string>
<string name="yubikey_pin">Zadejte PIN pro přístup k Yubikey pro \'%s\'</string> <string name="yubikey_pin_for">Zadejte PIN pro přístup k Yubikey pro \'%s\'</string>
<string name="file_delete_confirmation">Chcete opravdu smazat\n%s?</string> <string name="file_delete_confirmation">Chcete opravdu smazat\n%s?</string>
<string name="file_delete_successful">Úspěšně smazáno.</string> <string name="file_delete_successful">Úspěšně smazáno.</string>
<string name="no_file_selected">Nejprve vyberte soubor.</string> <string name="no_file_selected">Nejprve vyberte soubor.</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Text Verschlüsseln</string> <string name="title_encrypt_text">Text Verschlüsseln</string>
<string name="title_encrypt_files">Dateien verschlüsseln</string> <string name="title_encrypt_files">Dateien verschlüsseln</string>
<string name="title_decrypt">Entschlüsseln</string> <string name="title_decrypt">Entschlüsseln</string>
<string name="title_authentication">Passwort</string> <string name="title_unlock">Passwort</string>
<string name="title_add_subkey">Unterschlüssel hinzufügen</string> <string name="title_add_subkey">Unterschlüssel hinzufügen</string>
<string name="title_edit_key">Schlüssel bearbeiten</string> <string name="title_edit_key">Schlüssel bearbeiten</string>
<string name="title_preferences">Einstellungen</string> <string name="title_preferences">Einstellungen</string>
@ -189,7 +189,7 @@
<string name="passphrase_must_not_be_empty">Bitte ein Passwort eingeben.</string> <string name="passphrase_must_not_be_empty">Bitte ein Passwort eingeben.</string>
<string name="passphrase_for_symmetric_encryption">Symmetrische Verschlüsselung.</string> <string name="passphrase_for_symmetric_encryption">Symmetrische Verschlüsselung.</string>
<string name="passphrase_for">Passwort für \'%s\' eingeben</string> <string name="passphrase_for">Passwort für \'%s\' eingeben</string>
<string name="yubikey_pin">PIN für Zugriff auf Yubikey für \'%s\' eingeben</string> <string name="yubikey_pin_for">PIN für Zugriff auf Yubikey für \'%s\' eingeben</string>
<string name="file_delete_confirmation">%s wirklich löschen?</string> <string name="file_delete_confirmation">%s wirklich löschen?</string>
<string name="file_delete_successful">Erfolgreich gelöscht.</string> <string name="file_delete_successful">Erfolgreich gelöscht.</string>
<string name="no_file_selected">Zuerst eine Datei auswählen.</string> <string name="no_file_selected">Zuerst eine Datei auswählen.</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Cifrar texto</string> <string name="title_encrypt_text">Cifrar texto</string>
<string name="title_encrypt_files">Cifrar ficheros</string> <string name="title_encrypt_files">Cifrar ficheros</string>
<string name="title_decrypt">Descifrar</string> <string name="title_decrypt">Descifrar</string>
<string name="title_authentication">Frase de contraseña</string> <string name="title_unlock">Frase de contraseña</string>
<string name="title_add_subkey">Añadir subclave</string> <string name="title_add_subkey">Añadir subclave</string>
<string name="title_edit_key"> Editar clave</string> <string name="title_edit_key"> Editar clave</string>
<string name="title_preferences"> Preferencias</string> <string name="title_preferences"> Preferencias</string>
@ -189,7 +189,7 @@
<string name="passphrase_must_not_be_empty">Por favor, introduce una frase de contraseña.</string> <string name="passphrase_must_not_be_empty">Por favor, introduce una frase de contraseña.</string>
<string name="passphrase_for_symmetric_encryption">Cifrado simétrico.</string> <string name="passphrase_for_symmetric_encryption">Cifrado simétrico.</string>
<string name="passphrase_for">Introducir la frase de contraseña para \'%s\'</string> <string name="passphrase_for">Introducir la frase de contraseña para \'%s\'</string>
<string name="yubikey_pin">Introduzca el PIN de acceso a Yubikey para \'%s\'</string> <string name="yubikey_pin_for">Introduzca el PIN de acceso a Yubikey para \'%s\'</string>
<string name="file_delete_confirmation">¿Está seguro de que quiere eliminar\n%s?</string> <string name="file_delete_confirmation">¿Está seguro de que quiere eliminar\n%s?</string>
<string name="file_delete_successful">Borrado satisfactoriamente.</string> <string name="file_delete_successful">Borrado satisfactoriamente.</string>
<string name="no_file_selected">Selecciona un archivo antes.</string> <string name="no_file_selected">Selecciona un archivo antes.</string>

View File

@ -4,7 +4,7 @@
http://developer.android.com/guide/topics/resources/string-resource.html (scroll down to "Escaping apostrophes and quotes").--> http://developer.android.com/guide/topics/resources/string-resource.html (scroll down to "Escaping apostrophes and quotes").-->
<!--title--> <!--title-->
<string name="title_decrypt">Dekrüpteeri</string> <string name="title_decrypt">Dekrüpteeri</string>
<string name="title_authentication">Salasõne</string> <string name="title_unlock">Salasõne</string>
<string name="title_edit_key">Muuda võtit</string> <string name="title_edit_key">Muuda võtit</string>
<string name="title_preferences">Seaded</string> <string name="title_preferences">Seaded</string>
<string name="title_key_server_preference">Võtmeserveri seaded</string> <string name="title_key_server_preference">Võtmeserveri seaded</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Chiffrer un texte</string> <string name="title_encrypt_text">Chiffrer un texte</string>
<string name="title_encrypt_files">Chiffrer des fichiers</string> <string name="title_encrypt_files">Chiffrer des fichiers</string>
<string name="title_decrypt">Déchiffrer</string> <string name="title_decrypt">Déchiffrer</string>
<string name="title_authentication">Phrase de passe</string> <string name="title_unlock">Phrase de passe</string>
<string name="title_add_subkey">Ajouter une sous-clef</string> <string name="title_add_subkey">Ajouter une sous-clef</string>
<string name="title_edit_key">Modifier une clef</string> <string name="title_edit_key">Modifier une clef</string>
<string name="title_preferences">Préférences</string> <string name="title_preferences">Préférences</string>
@ -189,7 +189,7 @@
<string name="passphrase_must_not_be_empty">Veuillez saisir une phrase de passe</string> <string name="passphrase_must_not_be_empty">Veuillez saisir une phrase de passe</string>
<string name="passphrase_for_symmetric_encryption">Chriffrement symétrique.</string> <string name="passphrase_for_symmetric_encryption">Chriffrement symétrique.</string>
<string name="passphrase_for">Saisir une phrase de passe pour « %s »</string> <string name="passphrase_for">Saisir une phrase de passe pour « %s »</string>
<string name="yubikey_pin">Saisir le NIP pour accéder à la Yubikey pour « %s »</string> <string name="yubikey_pin_for">Saisir le NIP pour accéder à la Yubikey pour « %s »</string>
<string name="file_delete_confirmation">Êtes-vous certain de vouloir supprimer\n%s?</string> <string name="file_delete_confirmation">Êtes-vous certain de vouloir supprimer\n%s?</string>
<string name="file_delete_successful">Supprimé avec succès.</string> <string name="file_delete_successful">Supprimé avec succès.</string>
<string name="no_file_selected">Choisir d\'abord un fichier.</string> <string name="no_file_selected">Choisir d\'abord un fichier.</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Testo Cifrato</string> <string name="title_encrypt_text">Testo Cifrato</string>
<string name="title_encrypt_files">File Cifrati</string> <string name="title_encrypt_files">File Cifrati</string>
<string name="title_decrypt">Decodifica</string> <string name="title_decrypt">Decodifica</string>
<string name="title_authentication">Frase di accesso</string> <string name="title_unlock">Frase di accesso</string>
<string name="title_add_subkey">Aggiungi Sottochiave</string> <string name="title_add_subkey">Aggiungi Sottochiave</string>
<string name="title_edit_key">Modifica Chiave</string> <string name="title_edit_key">Modifica Chiave</string>
<string name="title_preferences">Preferenze</string> <string name="title_preferences">Preferenze</string>
@ -183,7 +183,7 @@
<string name="passphrase_must_not_be_empty">Si prega di inserire una frase di accesso.</string> <string name="passphrase_must_not_be_empty">Si prega di inserire una frase di accesso.</string>
<string name="passphrase_for_symmetric_encryption">Codifica Simmetrica.</string> <string name="passphrase_for_symmetric_encryption">Codifica Simmetrica.</string>
<string name="passphrase_for">Inserisci la frase di accesso per \'%s\'</string> <string name="passphrase_for">Inserisci la frase di accesso per \'%s\'</string>
<string name="yubikey_pin">Inserisci il PIN per accedere a Yubikey con \'%s\'</string> <string name="yubikey_pin_for">Inserisci il PIN per accedere a Yubikey con \'%s\'</string>
<string name="file_delete_confirmation">Sei sicuro di voler eliminare\n%s?</string> <string name="file_delete_confirmation">Sei sicuro di voler eliminare\n%s?</string>
<string name="file_delete_successful">Eliminato correttamente.</string> <string name="file_delete_successful">Eliminato correttamente.</string>
<string name="no_file_selected">Seleziona un file prima.</string> <string name="no_file_selected">Seleziona un file prima.</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">テキスト暗号化</string> <string name="title_encrypt_text">テキスト暗号化</string>
<string name="title_encrypt_files">ファイル暗号化</string> <string name="title_encrypt_files">ファイル暗号化</string>
<string name="title_decrypt">復号化</string> <string name="title_decrypt">復号化</string>
<string name="title_authentication">パスフレーズ</string> <string name="title_unlock">パスフレーズ</string>
<string name="title_add_subkey">副鍵の追加</string> <string name="title_add_subkey">副鍵の追加</string>
<string name="title_edit_key">鍵の編集</string> <string name="title_edit_key">鍵の編集</string>
<string name="title_preferences">設定</string> <string name="title_preferences">設定</string>
@ -187,7 +187,7 @@
<string name="passphrase_must_not_be_empty">パスフレーズを入れてください。</string> <string name="passphrase_must_not_be_empty">パスフレーズを入れてください。</string>
<string name="passphrase_for_symmetric_encryption">対称暗号。</string> <string name="passphrase_for_symmetric_encryption">対称暗号。</string>
<string name="passphrase_for">\'%s\' にパスフレーズを入れてください。</string> <string name="passphrase_for">\'%s\' にパスフレーズを入れてください。</string>
<string name="yubikey_pin">\'%s\' の Yubikey にアクセスするためのPINを入力してください</string> <string name="yubikey_pin_for">\'%s\' の Yubikey にアクセスするためのPINを入力してください</string>
<string name="file_delete_confirmation">%s <string name="file_delete_confirmation">%s
を削除してもかまいませんか?</string> を削除してもかまいませんか?</string>
<string name="file_delete_successful">削除に成功しました。</string> <string name="file_delete_successful">削除に成功しました。</string>

View File

@ -4,7 +4,7 @@
http://developer.android.com/guide/topics/resources/string-resource.html (scroll down to "Escaping apostrophes and quotes").--> http://developer.android.com/guide/topics/resources/string-resource.html (scroll down to "Escaping apostrophes and quotes").-->
<!--title--> <!--title-->
<string name="title_decrypt">Ontsleutelen</string> <string name="title_decrypt">Ontsleutelen</string>
<string name="title_authentication">Wachtwoord</string> <string name="title_unlock">Wachtwoord</string>
<string name="title_edit_key">Sleutel bewerken</string> <string name="title_edit_key">Sleutel bewerken</string>
<string name="title_preferences">Instellingen</string> <string name="title_preferences">Instellingen</string>
<string name="title_key_server_preference">Sleutelserver Voorkeur</string> <string name="title_key_server_preference">Sleutelserver Voorkeur</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Szyfruj tekst</string> <string name="title_encrypt_text">Szyfruj tekst</string>
<string name="title_encrypt_files">Szyfruj pliki</string> <string name="title_encrypt_files">Szyfruj pliki</string>
<string name="title_decrypt">Odszyfruj</string> <string name="title_decrypt">Odszyfruj</string>
<string name="title_authentication">Hasło</string> <string name="title_unlock">Hasło</string>
<string name="title_add_subkey">Dodaj pod-klucz</string> <string name="title_add_subkey">Dodaj pod-klucz</string>
<string name="title_edit_key">Edytuj klucz</string> <string name="title_edit_key">Edytuj klucz</string>
<string name="title_preferences">Właściwości</string> <string name="title_preferences">Właściwości</string>
@ -186,7 +186,7 @@
<string name="passphrase_must_not_be_empty">Podaj hasło.</string> <string name="passphrase_must_not_be_empty">Podaj hasło.</string>
<string name="passphrase_for_symmetric_encryption">Szyfrowanie symetryczne.</string> <string name="passphrase_for_symmetric_encryption">Szyfrowanie symetryczne.</string>
<string name="passphrase_for">Podaj hasło dla \'%s\'</string> <string name="passphrase_for">Podaj hasło dla \'%s\'</string>
<string name="yubikey_pin">Wpisz PIN, aby otworzyć Yubikey dla \'%s\'</string> <string name="yubikey_pin_for">Wpisz PIN, aby otworzyć Yubikey dla \'%s\'</string>
<string name="file_delete_confirmation">Czy jesteś pewny, że chcesz usunąć\n%s?</string> <string name="file_delete_confirmation">Czy jesteś pewny, że chcesz usunąć\n%s?</string>
<string name="file_delete_successful">Usunięto pomyślnie.</string> <string name="file_delete_successful">Usunięto pomyślnie.</string>
<string name="no_file_selected">Najpierw wskaż plik.</string> <string name="no_file_selected">Najpierw wskaż plik.</string>

View File

@ -6,7 +6,7 @@
<string name="title_select_recipients">Выберите ключи</string> <string name="title_select_recipients">Выберите ключи</string>
<string name="title_select_secret_key">Выберите Ваш ключ</string> <string name="title_select_secret_key">Выберите Ваш ключ</string>
<string name="title_decrypt">Расшифровать</string> <string name="title_decrypt">Расшифровать</string>
<string name="title_authentication">Пароль</string> <string name="title_unlock">Пароль</string>
<string name="title_add_subkey">Добавить доп. ключ</string> <string name="title_add_subkey">Добавить доп. ключ</string>
<string name="title_edit_key">Изменить ключ</string> <string name="title_edit_key">Изменить ключ</string>
<string name="title_preferences">Настройки</string> <string name="title_preferences">Настройки</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Šifriraj besedilo</string> <string name="title_encrypt_text">Šifriraj besedilo</string>
<string name="title_encrypt_files">Šifriraj datoteko</string> <string name="title_encrypt_files">Šifriraj datoteko</string>
<string name="title_decrypt">Dešifriraj</string> <string name="title_decrypt">Dešifriraj</string>
<string name="title_authentication">Geslo</string> <string name="title_unlock">Geslo</string>
<string name="title_add_subkey">Dodaj podključ</string> <string name="title_add_subkey">Dodaj podključ</string>
<string name="title_edit_key">Uredi ključ</string> <string name="title_edit_key">Uredi ključ</string>
<string name="title_preferences">Nastavitve</string> <string name="title_preferences">Nastavitve</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Шифруј текст</string> <string name="title_encrypt_text">Шифруј текст</string>
<string name="title_encrypt_files">Шифруј фајлове</string> <string name="title_encrypt_files">Шифруј фајлове</string>
<string name="title_decrypt">Дешифруј</string> <string name="title_decrypt">Дешифруј</string>
<string name="title_authentication">Лозинка</string> <string name="title_unlock">Лозинка</string>
<string name="title_add_subkey">Додај поткључ</string> <string name="title_add_subkey">Додај поткључ</string>
<string name="title_edit_key">Уреди кључ</string> <string name="title_edit_key">Уреди кључ</string>
<string name="title_preferences">Поставке</string> <string name="title_preferences">Поставке</string>
@ -191,7 +191,7 @@
<string name="passphrase_must_not_be_empty">Унесите лозинку.</string> <string name="passphrase_must_not_be_empty">Унесите лозинку.</string>
<string name="passphrase_for_symmetric_encryption">Симетрично шифровање.</string> <string name="passphrase_for_symmetric_encryption">Симетрично шифровање.</string>
<string name="passphrase_for">Унесите лозинку за „%s“</string> <string name="passphrase_for">Унесите лозинку за „%s“</string>
<string name="yubikey_pin">Унесите ПИН за приступ Јубикључу за „%s“</string> <string name="yubikey_pin_for">Унесите ПИН за приступ Јубикључу за „%s“</string>
<string name="file_delete_confirmation">Желите ли заиста да обришете\n%s?</string> <string name="file_delete_confirmation">Желите ли заиста да обришете\n%s?</string>
<string name="file_delete_successful">Брисање је успело.</string> <string name="file_delete_successful">Брисање је успело.</string>
<string name="no_file_selected">Најпре изаберите фајл.</string> <string name="no_file_selected">Најпре изаберите фајл.</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Kryptera text</string> <string name="title_encrypt_text">Kryptera text</string>
<string name="title_encrypt_files">Kryptera filer</string> <string name="title_encrypt_files">Kryptera filer</string>
<string name="title_decrypt">Dekryptera</string> <string name="title_decrypt">Dekryptera</string>
<string name="title_authentication">Lösenordsfras</string> <string name="title_unlock">Lösenordsfras</string>
<string name="title_add_subkey">Lägg till undernyckel</string> <string name="title_add_subkey">Lägg till undernyckel</string>
<string name="title_edit_key">Redigera nyckel</string> <string name="title_edit_key">Redigera nyckel</string>
<string name="title_preferences">Inställningar</string> <string name="title_preferences">Inställningar</string>
@ -180,7 +180,7 @@
<string name="passphrase_must_not_be_empty">Ange en lösenordsfras.</string> <string name="passphrase_must_not_be_empty">Ange en lösenordsfras.</string>
<string name="passphrase_for_symmetric_encryption">Symmetrisk kryptering.</string> <string name="passphrase_for_symmetric_encryption">Symmetrisk kryptering.</string>
<string name="passphrase_for">Ange lösenordsfras för \'%s\'</string> <string name="passphrase_for">Ange lösenordsfras för \'%s\'</string>
<string name="yubikey_pin">Ange PIN för att få åtkomst till Yubikey för \'%s\'</string> <string name="yubikey_pin_for">Ange PIN för att få åtkomst till Yubikey för \'%s\'</string>
<string name="file_delete_confirmation">Vill du verkligen radera\n%s?</string> <string name="file_delete_confirmation">Vill du verkligen radera\n%s?</string>
<string name="file_delete_successful">Raderades.</string> <string name="file_delete_successful">Raderades.</string>
<string name="no_file_selected">Välj en nyckel först.</string> <string name="no_file_selected">Välj en nyckel först.</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">Metni Şifrele</string> <string name="title_encrypt_text">Metni Şifrele</string>
<string name="title_encrypt_files">Dosyaları Şifrele</string> <string name="title_encrypt_files">Dosyaları Şifrele</string>
<string name="title_decrypt">Çözümle</string> <string name="title_decrypt">Çözümle</string>
<string name="title_authentication">Parola</string> <string name="title_unlock">Parola</string>
<string name="title_add_subkey">Alt anahtar ekle</string> <string name="title_add_subkey">Alt anahtar ekle</string>
<string name="title_edit_key">Anahtarı düzenle</string> <string name="title_edit_key">Anahtarı düzenle</string>
<string name="title_preferences">Seçenekler</string> <string name="title_preferences">Seçenekler</string>

View File

@ -6,7 +6,7 @@
<string name="title_select_recipients">Вибрати ключі</string> <string name="title_select_recipients">Вибрати ключі</string>
<string name="title_select_secret_key">Виберіть ваш ключ</string> <string name="title_select_secret_key">Виберіть ваш ключ</string>
<string name="title_decrypt">Розшифрувати</string> <string name="title_decrypt">Розшифрувати</string>
<string name="title_authentication">Парольна фраза</string> <string name="title_unlock">Парольна фраза</string>
<string name="title_add_subkey">Додати підключ</string> <string name="title_add_subkey">Додати підключ</string>
<string name="title_edit_key">Редагувати ключ</string> <string name="title_edit_key">Редагувати ключ</string>
<string name="title_preferences">Налаштування</string> <string name="title_preferences">Налаштування</string>

View File

@ -9,7 +9,7 @@
<string name="title_encrypt_text">加密文字</string> <string name="title_encrypt_text">加密文字</string>
<string name="title_encrypt_files">加密檔案</string> <string name="title_encrypt_files">加密檔案</string>
<string name="title_decrypt">解密</string> <string name="title_decrypt">解密</string>
<string name="title_authentication">口令</string> <string name="title_unlock">口令</string>
<string name="title_add_subkey">新增子金鑰</string> <string name="title_add_subkey">新增子金鑰</string>
<string name="title_edit_key">編輯金鑰</string> <string name="title_edit_key">編輯金鑰</string>
<string name="title_preferences">偏好設定</string> <string name="title_preferences">偏好設定</string>

View File

@ -7,7 +7,7 @@
<string name="title_encrypt_text">加密文本</string> <string name="title_encrypt_text">加密文本</string>
<string name="title_encrypt_files">加密文件</string> <string name="title_encrypt_files">加密文件</string>
<string name="title_decrypt">解密</string> <string name="title_decrypt">解密</string>
<string name="title_authentication">密码</string> <string name="title_unlock">密码</string>
<string name="title_edit_key">编辑密钥</string> <string name="title_edit_key">编辑密钥</string>
<string name="title_preferences">参数</string> <string name="title_preferences">参数</string>
<string name="title_api_registered_apps">已注册应用</string> <string name="title_api_registered_apps">已注册应用</string>

View File

@ -14,7 +14,7 @@
<string name="title_encrypt_text">"Encrypt Text"</string> <string name="title_encrypt_text">"Encrypt Text"</string>
<string name="title_encrypt_files">"Encrypt Files"</string> <string name="title_encrypt_files">"Encrypt Files"</string>
<string name="title_decrypt">"Decrypt"</string> <string name="title_decrypt">"Decrypt"</string>
<string name="title_authentication">"Passphrase"</string> <string name="title_unlock">"Unlock Key"</string>
<string name="title_add_subkey">"Add subkey"</string> <string name="title_add_subkey">"Add subkey"</string>
<string name="title_edit_key">"Edit Key"</string> <string name="title_edit_key">"Edit Key"</string>
<string name="title_preferences">"Preferences"</string> <string name="title_preferences">"Preferences"</string>
@ -205,8 +205,8 @@
<string name="passphrase_must_not_be_empty">"Please enter a passphrase."</string> <string name="passphrase_must_not_be_empty">"Please enter a passphrase."</string>
<string name="passphrase_for_symmetric_encryption">"Symmetric encryption."</string> <string name="passphrase_for_symmetric_encryption">"Symmetric encryption."</string>
<string name="passphrase_for">"Enter passphrase for '%s'"</string> <string name="passphrase_for">"Enter passphrase for '%s'"</string>
<string name="pin_for">"Enter pin for '%s'"</string> <string name="pin_for">"Enter PIN for '%s'"</string>
<string name="yubikey_pin">"Enter PIN to access YubiKey for '%s'"</string> <string name="yubikey_pin_for">"Enter PIN to access YubiKey for '%s'"</string>
<string name="nfc_text">"Hold YubiKey against the back of your device."</string> <string name="nfc_text">"Hold YubiKey against the back of your device."</string>
<string name="file_delete_confirmation">"Are you sure you want to delete\n%s?"</string> <string name="file_delete_confirmation">"Are you sure you want to delete\n%s?"</string>
<string name="file_delete_successful">"Successfully deleted."</string> <string name="file_delete_successful">"Successfully deleted."</string>

1
extern/android-lockpattern vendored Submodule

@ -0,0 +1 @@
Subproject commit b9fcb13dcaa978c6d7be2c82cf3d11a233d59735

View File

@ -14,4 +14,5 @@ include ':extern:minidns'
include ':extern:KeybaseLib:Lib' include ':extern:KeybaseLib:Lib'
include ':extern:TokenAutoComplete:library' include ':extern:TokenAutoComplete:library'
include ':extern:safeslinger-exchange' include ':extern:safeslinger-exchange'
include ':extern:android-lockpattern:code'
include ':OpenKeychain-Test' include ':OpenKeychain-Test'