From 1d6643fa6ba430f47da732bf4512287e4caf4628 Mon Sep 17 00:00:00 2001 From: Kent Date: Fri, 20 Mar 2015 06:40:52 +0800 Subject: [PATCH 01/18] Fixed #1152: - Checking if input.getSignatureSubKeyId() is not null before proceeding. --- .../keychain/pgp/PgpSignEncryptOperation.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java index bd3c31d3a..16a09e77b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java @@ -62,19 +62,19 @@ import java.util.Arrays; import java.util.Date; import java.util.concurrent.atomic.AtomicBoolean; -/** This class supports a single, low-level, sign/encrypt operation. - * +/** + * This class supports a single, low-level, sign/encrypt operation. + *

* The operation of this class takes an Input- and OutputStream plus a * PgpSignEncryptInput, and signs and/or encrypts the stream as * parametrized in the PgpSignEncryptInput object. It returns its status * and a possible detached signature as a SignEncryptResult. - * + *

* For a high-level operation based on URIs, see SignEncryptOperation. * * @see org.sufficientlysecure.keychain.pgp.PgpSignEncryptInput * @see org.sufficientlysecure.keychain.operations.results.PgpSignEncryptResult * @see org.sufficientlysecure.keychain.operations.SignEncryptOperation - * */ public class PgpSignEncryptOperation extends BaseOperation { @@ -100,7 +100,7 @@ public class PgpSignEncryptOperation extends BaseOperation { * Signs and/or encrypts data based on parameters of class */ public PgpSignEncryptResult execute(PgpSignEncryptInput input, - InputData inputData, OutputStream outputStream) { + InputData inputData, OutputStream outputStream) { int indent = 0; OperationLog log = new OperationLog(); @@ -487,6 +487,12 @@ public class PgpSignEncryptOperation extends BaseOperation { log.add(LogType.MSG_PSE_PENDING_NFC, indent); PgpSignEncryptResult result = new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_PENDING_NFC, log); + + // SignatureSubKeyId can be null. + if (input.getSignatureSubKeyId() == null) { + return new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_ERROR, log); + } + // Note that the checked key here is the master key, not the signing key // (although these are always the same on Yubikeys) result.setNfcData(input.getSignatureSubKeyId(), e.hashToSign, e.hashAlgo, e.creationTimestamp, input.getSignaturePassphrase()); From 54a7c72ee9deded605328a157f21661d4228a992 Mon Sep 17 00:00:00 2001 From: Manoj Khanna Date: Sun, 22 Mar 2015 08:16:24 +0530 Subject: [PATCH 02/18] Updated openpgp-api-lib --- extern/openpgp-api-lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/openpgp-api-lib b/extern/openpgp-api-lib index 70a17dcbe..9abb91d3a 160000 --- a/extern/openpgp-api-lib +++ b/extern/openpgp-api-lib @@ -1 +1 @@ -Subproject commit 70a17dcbeb5d8de095f09a7ce756543deff0165a +Subproject commit 9abb91d3a69964a547f26aa1d56de233e75c4410 From b3a599f214489ba9edce5b8c3f56b3f671499e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 01:11:11 +0100 Subject: [PATCH 03/18] Use markdown for in-app help --- OpenKeychain/build.gradle | 2 + .../keychain/ui/HelpAboutFragment.java | 13 +- .../keychain/ui/HelpActivity.java | 19 +- ...ragment.java => HelpMarkdownFragment.java} | 26 +- .../src/main/res/raw-bg/help_about.html | 61 ---- .../src/main/res/raw-bg/help_changelog.html | 232 --------------- .../src/main/res/raw-bg/help_start.html | 22 -- .../src/main/res/raw-cs/help_about.html | 61 ---- .../src/main/res/raw-cs/help_changelog.html | 232 --------------- .../src/main/res/raw-cs/help_start.html | 22 -- .../src/main/res/raw-de/help_about.html | 61 ---- .../src/main/res/raw-de/help_changelog.html | 232 --------------- .../src/main/res/raw-de/help_start.html | 22 -- .../src/main/res/raw-es/help_about.html | 61 ---- .../src/main/res/raw-es/help_changelog.html | 232 --------------- .../src/main/res/raw-es/help_start.html | 22 -- .../src/main/res/raw-et/help_about.html | 61 ---- .../src/main/res/raw-et/help_changelog.html | 232 --------------- .../src/main/res/raw-et/help_start.html | 22 -- .../src/main/res/raw-eu/help_about.html | 61 ---- .../src/main/res/raw-eu/help_changelog.html | 232 --------------- .../src/main/res/raw-eu/help_start.html | 22 -- .../src/main/res/raw-fi/help_about.html | 61 ---- .../src/main/res/raw-fi/help_changelog.html | 232 --------------- .../src/main/res/raw-fi/help_start.html | 22 -- .../src/main/res/raw-fr/help_about.html | 61 ---- .../src/main/res/raw-fr/help_changelog.html | 232 --------------- .../src/main/res/raw-fr/help_start.html | 22 -- .../src/main/res/raw-is/help_about.html | 61 ---- .../src/main/res/raw-is/help_changelog.html | 232 --------------- .../src/main/res/raw-is/help_start.html | 22 -- .../src/main/res/raw-it/help_about.html | 61 ---- .../src/main/res/raw-it/help_changelog.html | 232 --------------- .../src/main/res/raw-it/help_start.html | 22 -- .../src/main/res/raw-ja/help_about.html | 61 ---- .../src/main/res/raw-ja/help_changelog.html | 232 --------------- .../src/main/res/raw-ja/help_start.html | 22 -- .../src/main/res/raw-nl/help_about.html | 61 ---- .../src/main/res/raw-nl/help_changelog.html | 232 --------------- .../src/main/res/raw-nl/help_start.html | 22 -- .../src/main/res/raw-pl/help_about.html | 61 ---- .../src/main/res/raw-pl/help_changelog.html | 232 --------------- .../src/main/res/raw-pl/help_start.html | 22 -- .../src/main/res/raw-pt/help_about.html | 61 ---- .../src/main/res/raw-pt/help_changelog.html | 232 --------------- .../src/main/res/raw-pt/help_start.html | 22 -- .../src/main/res/raw-ro/help_about.html | 61 ---- .../src/main/res/raw-ro/help_changelog.html | 232 --------------- .../src/main/res/raw-ro/help_start.html | 22 -- .../src/main/res/raw-ru/help_about.html | 61 ---- .../src/main/res/raw-ru/help_changelog.html | 232 --------------- .../src/main/res/raw-ru/help_start.html | 22 -- .../src/main/res/raw-sl/help_about.html | 61 ---- .../src/main/res/raw-sl/help_changelog.html | 232 --------------- .../src/main/res/raw-sl/help_start.html | 22 -- .../src/main/res/raw-sr/help_about.html | 61 ---- .../src/main/res/raw-sr/help_changelog.html | 232 --------------- .../src/main/res/raw-sr/help_start.html | 22 -- .../src/main/res/raw-sv/help_about.html | 61 ---- .../src/main/res/raw-sv/help_changelog.html | 232 --------------- .../src/main/res/raw-sv/help_start.html | 22 -- .../src/main/res/raw-tr/help_about.html | 61 ---- .../src/main/res/raw-tr/help_changelog.html | 232 --------------- .../src/main/res/raw-tr/help_start.html | 22 -- .../src/main/res/raw-uk/help_about.html | 61 ---- .../src/main/res/raw-uk/help_changelog.html | 232 --------------- .../src/main/res/raw-uk/help_start.html | 22 -- .../src/main/res/raw-zh-rTW/help_about.html | 61 ---- .../main/res/raw-zh-rTW/help_changelog.html | 232 --------------- .../src/main/res/raw-zh-rTW/help_start.html | 22 -- .../src/main/res/raw-zh/help_about.html | 61 ---- .../src/main/res/raw-zh/help_changelog.html | 232 --------------- .../src/main/res/raw-zh/help_start.html | 22 -- OpenKeychain/src/main/res/raw/help_about.html | 53 ---- OpenKeychain/src/main/res/raw/help_about.md | 45 +++ .../src/main/res/raw/help_certification.html | 32 -- .../src/main/res/raw/help_certification.md | 27 ++ .../src/main/res/raw/help_changelog.html | 278 ------------------ .../src/main/res/raw/help_changelog.md | 268 +++++++++++++++++ OpenKeychain/src/main/res/raw/help_faq.md | 126 ++++++++ OpenKeychain/src/main/res/raw/help_start.html | 27 -- OpenKeychain/src/main/res/raw/help_start.md | 15 + extern/openpgp-api-lib | 2 +- 83 files changed, 525 insertions(+), 7653 deletions(-) rename OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/{HelpHtmlFragment.java => HelpMarkdownFragment.java} (71%) delete mode 100644 OpenKeychain/src/main/res/raw-bg/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-bg/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-bg/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-cs/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-cs/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-cs/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-de/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-de/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-de/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-es/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-es/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-es/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-et/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-et/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-et/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-eu/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-eu/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-eu/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-fi/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-fi/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-fi/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-fr/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-fr/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-fr/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-is/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-is/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-is/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-it/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-it/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-it/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-ja/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-ja/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-ja/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-nl/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-nl/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-nl/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-pl/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-pl/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-pl/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-pt/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-pt/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-pt/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-ro/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-ro/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-ro/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-ru/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-ru/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-ru/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-sl/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-sl/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-sl/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-sr/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-sr/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-sr/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-sv/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-sv/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-sv/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-tr/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-tr/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-tr/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-uk/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-uk/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-uk/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw-zh/help_about.html delete mode 100644 OpenKeychain/src/main/res/raw-zh/help_changelog.html delete mode 100644 OpenKeychain/src/main/res/raw-zh/help_start.html delete mode 100644 OpenKeychain/src/main/res/raw/help_about.html create mode 100644 OpenKeychain/src/main/res/raw/help_about.md delete mode 100644 OpenKeychain/src/main/res/raw/help_certification.html create mode 100644 OpenKeychain/src/main/res/raw/help_certification.md delete mode 100644 OpenKeychain/src/main/res/raw/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw/help_faq.md delete mode 100644 OpenKeychain/src/main/res/raw/help_start.html create mode 100644 OpenKeychain/src/main/res/raw/help_start.md diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 97c8a6d5e..b5e9f7049 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -20,6 +20,7 @@ dependencies { compile 'it.neokree:MaterialNavigationDrawer:1.3.1' compile 'com.nispok:snackbar:2.9.1' compile 'com.getbase:floatingactionbutton:1.8.0' + compile 'org.commonjava.googlecode.markdown4j:markdown4j:2.2-cj-1.0' // libs as submodules compile project(':extern:openpgp-api-lib') @@ -54,6 +55,7 @@ dependencyVerification { 'com.getbase:floatingactionbutton:e63966148212e9685afad2370780ea239b6dbd2a06f6a3f919b98882318e6a32', 'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de', 'com.balysv:material-ripple:587f19c1e27f16c7dc67ff9ac73838aa1451086ef05a15cee38bee3e4e1454ae', + 'org.commonjava.googlecode.markdown4j:markdown4j:e952e825d29e1317d96f79f346bfb6786c7c5eef50bd26e54a80823704b62e13', //'OpenKeychain.extern:openpgp-api-lib:b17bb282321351e4b00b4cd6422a57aadc13decae264019a88707bcb556439ea', //'OpenKeychain.extern:openkeychain-api-lib:5f95f01c066069d4bde68992fd8da5faac21510d009b1fdae7a2e28e43e82cf4', //'OpenKeychain.extern:html-textview:b58e343cf4c145e91f888806d06a2a7770a9e9331a72f08cfcf1128db30dcff3', diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java index 5909970af..912caf32f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java @@ -27,11 +27,14 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +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 HelpAboutFragment extends Fragment { @@ -44,8 +47,14 @@ public class HelpAboutFragment extends Fragment { HtmlTextView aboutTextView = (HtmlTextView) view.findViewById(R.id.help_about_text); - // load html from raw resource (Parsing handled by HtmlTextView library) - aboutTextView.setHtmlFromRawResource(getActivity(), R.raw.help_about, true); + // load mardown from raw resource + try { + String html = new Markdown4jProcessor().process( + getActivity().getResources().openRawResource(R.raw.help_about)); + aboutTextView.setHtmlFromString(html, true); + } catch (IOException e) { + Log.e(Constants.TAG, "IOException", e); + } // no flickering when clicking textview for Android < 4 aboutTextView.setTextColor(getResources().getColor(android.R.color.black)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java index cd6cdf4d6..24136a4b8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java @@ -64,18 +64,23 @@ public class HelpActivity extends BaseActivity { } Bundle startBundle = new Bundle(); - startBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_start); - mTabsAdapter.addTab(HelpHtmlFragment.class, startBundle, + startBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_start); + mTabsAdapter.addTab(HelpMarkdownFragment.class, startBundle, getString(R.string.help_tab_start)); - Bundle wotBundle = new Bundle(); - wotBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_certification); - mTabsAdapter.addTab(HelpHtmlFragment.class, wotBundle, + Bundle certificationBundle = new Bundle(); + certificationBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_certification); + mTabsAdapter.addTab(HelpMarkdownFragment.class, certificationBundle, getString(R.string.help_tab_wot)); + Bundle faqBundle = new Bundle(); + faqBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_faq); + mTabsAdapter.addTab(HelpMarkdownFragment.class, faqBundle, + getString(R.string.help_tab_faq)); + Bundle changelogBundle = new Bundle(); - changelogBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_changelog); - mTabsAdapter.addTab(HelpHtmlFragment.class, changelogBundle, + changelogBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_changelog); + mTabsAdapter.addTab(HelpMarkdownFragment.class, changelogBundle, getString(R.string.help_tab_changelog)); mTabsAdapter.addTab(HelpAboutFragment.class, null, diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpHtmlFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java similarity index 71% rename from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpHtmlFragment.java rename to OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java index a3f0ef614..69ddf2e99 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpHtmlFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java @@ -26,24 +26,29 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ScrollView; +import org.markdown4j.Markdown4jProcessor; import org.sufficientlysecure.htmltextview.HtmlTextView; +import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.util.Log; -public class HelpHtmlFragment extends Fragment { +import java.io.IOException; + +public class HelpMarkdownFragment extends Fragment { private Activity mActivity; private int mHtmlFile; - public static final String ARG_HTML_FILE = "htmlFile"; + public static final String ARG_MARKDOWN_FILE = "htmlFile"; /** * Create a new instance of HelpHtmlFragment, providing "htmlFile" as an argument. */ - static HelpHtmlFragment newInstance(int htmlFile) { - HelpHtmlFragment f = new HelpHtmlFragment(); + static HelpMarkdownFragment newInstance(int htmlFile) { + HelpMarkdownFragment f = new HelpMarkdownFragment(); // Supply html raw file input as an argument. Bundle args = new Bundle(); - args.putInt(ARG_HTML_FILE, htmlFile); + args.putInt(ARG_MARKDOWN_FILE, htmlFile); f.setArguments(args); return f; @@ -53,7 +58,7 @@ public class HelpHtmlFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mActivity = getActivity(); - mHtmlFile = getArguments().getInt(ARG_HTML_FILE); + mHtmlFile = getArguments().getInt(ARG_MARKDOWN_FILE); ScrollView scroller = new ScrollView(mActivity); HtmlTextView text = new HtmlTextView(mActivity); @@ -65,8 +70,13 @@ public class HelpHtmlFragment extends Fragment { scroller.addView(text); - // load html from raw resource (Parsing handled by HtmlTextView library) - text.setHtmlFromRawResource(getActivity(), mHtmlFile, true); + // load mardown from raw resource + try { + String html = new Markdown4jProcessor().process(getActivity().getResources().openRawResource(mHtmlFile)); + text.setHtmlFromString(html, true); + } catch (IOException e) { + Log.e(Constants.TAG, "IOException", e); + } // no flickering when clicking textview for Android < 4 text.setTextColor(getResources().getColor(android.R.color.black)); diff --git a/OpenKeychain/src/main/res/raw-bg/help_about.html b/OpenKeychain/src/main/res/raw-bg/help_about.html deleted file mode 100644 index cf77cf11d..000000000 --- a/OpenKeychain/src/main/res/raw-bg/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw-bg/help_changelog.html b/OpenKeychain/src/main/res/raw-bg/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-bg/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-bg/help_start.html b/OpenKeychain/src/main/res/raw-bg/help_start.html deleted file mode 100644 index 58f3fae40..000000000 --- a/OpenKeychain/src/main/res/raw-bg/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-cs/help_about.html b/OpenKeychain/src/main/res/raw-cs/help_about.html deleted file mode 100644 index e4ec46f0d..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain je OpenPGP implementace pro Android.

-

Licence: GPLv3+

- -

Vývojáři

- -

Knihovny

- - - diff --git a/OpenKeychain/src/main/res/raw-cs/help_changelog.html b/OpenKeychain/src/main/res/raw-cs/help_changelog.html deleted file mode 100644 index af9e49137..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-cs/help_start.html b/OpenKeychain/src/main/res/raw-cs/help_start.html deleted file mode 100644 index acbc80735..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Našel jsem chybu v OpenKeychain!

-

Nahlašte prosím chybu na bug trackeru OpenKeychain.

- -

Přispět

-

Pokud chcete pomoci vyvíjet OpenKeychain tak, že přispějete svými kodérskými schopnostmi přečtěte si naší malou příručku na Githubu.

- -

Překlady

-

Pomozte s překladem OpenKeychain! Každý se může zapojit na Transifexu.

- - - diff --git a/OpenKeychain/src/main/res/raw-de/help_about.html b/OpenKeychain/src/main/res/raw-de/help_about.html deleted file mode 100644 index 7b613ec20..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain ist eine OpenPGP-Implementierung für Android.

-

Lizenz: GPLv3+

- -

Entwickler

- -

Bibliotheken

- - - diff --git a/OpenKeychain/src/main/res/raw-de/help_changelog.html b/OpenKeychain/src/main/res/raw-de/help_changelog.html deleted file mode 100644 index a54052fef..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Diese Version wäre ohne die Arbeit von Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray und Thialfihar nicht möglich

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Danke an alle Bewerber des Google Summer of Code 2014, die diese Version funktionsreich und fehlerfrei gemacht haben. -Neben mehreren kleinen Updates sind eine beachtliche Anzahl von Updates von den folgenden Personen gemacht worden (in alphabetischer Reihenfolge): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-de/help_start.html b/OpenKeychain/src/main/res/raw-de/help_start.html deleted file mode 100644 index 676922dbf..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

Wie kann ich OpenKeychain in K-9 Mail nutzen?

-

Um OpenKeychain in K-9 Mail nutzen zu können, sind folgende Schritte nötig:

-
    -
  1. Öffne K-9 Mail und drücke lange auf den Account, mit dem du OpenKeychain nutzen willst.
  2. -
  3. Wähle "Kontoeinstellungen", blättere ganz nach unten und klicke auf "Kryptographie".
  4. -
  5. Klicke auf "OpenPGP-Provider" und wähle OpenKeychain aus der Liste.
  6. -
-

Ich habe einen Fehler in OpenKeychain gefunden!

-

Bitte sende uns einen Fehlerbericht mithilfe des Problem-Trackers von OpenKeychain.

- -

Unterstützen

-

Wenn du uns bei der Entwicklung von OpenKeychain, z.B. durch das Beisteuern von Code, helfen willst, schau dir unsere kurze Anleitung auf GitHub an.

- -

Übersetzungen

-

Hilf mit OpenKeychain zu übersetzten! Jeder kann mitmachen, besucheOpenKeychain auf Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-es/help_about.html b/OpenKeychain/src/main/res/raw-es/help_about.html deleted file mode 100644 index 7ea723e76..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain es una implementación de OpenPGP para Android.

-

Licencia: GPLv3+

- -

Desarrolladores

- -

Librerías

- - - diff --git a/OpenKeychain/src/main/res/raw-es/help_changelog.html b/OpenKeychain/src/main/res/raw-es/help_changelog.html deleted file mode 100644 index e404fecf1..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Esta versión no sería posible sin el trabajo de Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

¡Gracias a todos los aspirantes del Google Summer of Code 2014 que hicieron que esta versión sea rica en características y libre de fallos! -Además de varios pequeños parches, un número notable de parches están hechos por las siguientes personas (en orden alfabético): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-es/help_start.html b/OpenKeychain/src/main/res/raw-es/help_start.html deleted file mode 100644 index b0df960ee..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

¿Cómo activo OpenKeychain in K-9 Mail?

-

Para utilizar OpenKeychain con K-9 Mail, querrá seguir estos pasos:

-
    -
  1. Abra K-9 Mail y realice una pulsación larga en la cuenta con la que quiera utilizar OpenKeychain.
  2. -
  3. Seleccione "Configuración de cuenta", deplácese al fondo del todo y haga clic en "Criptografía".
  4. -
  5. Haga clic en "Proveedor OpenPGP" y de la lista seleccione OpenKeychain.
  6. -
-

¡He encontrado un bug en OpenKeychain!

-

Por favor, informa de errores usando el seguimiento de incidencias de OpenKeychain.

- -

Aportar

-

Si quieres ayudarnos con el desarrollo de OpenKeychain aportando código sigue nuestra pequeña guía en Github.

- -

Traducciones

-

¡Ayúdanos a traducir OpenKeychain! Todo el mundo es bienvenido en Transifex - OpenKeychain.

- - - diff --git a/OpenKeychain/src/main/res/raw-et/help_about.html b/OpenKeychain/src/main/res/raw-et/help_about.html deleted file mode 100644 index cf77cf11d..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw-et/help_changelog.html b/OpenKeychain/src/main/res/raw-et/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-et/help_start.html b/OpenKeychain/src/main/res/raw-et/help_start.html deleted file mode 100644 index 58f3fae40..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-eu/help_about.html b/OpenKeychain/src/main/res/raw-eu/help_about.html deleted file mode 100644 index 6f19ccaad..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain Android-rako OpenPGP inplemetazio bat da.

-

Baimena: GPLv3+

- -

Garatzaileak

- -

Liburutegiak

- - - diff --git a/OpenKeychain/src/main/res/raw-eu/help_changelog.html b/OpenKeychain/src/main/res/raw-eu/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-eu/help_start.html b/OpenKeychain/src/main/res/raw-eu/help_start.html deleted file mode 100644 index 0e05e3790..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Akats bat aurkitu dut OpenKeychain-en!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Lagundu

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Itzulpenak

-

Lagundu OpenKeychain itzultzen! Edonork eskuhartu dezake hemen OpenKeychainTransifex-en.

- - - diff --git a/OpenKeychain/src/main/res/raw-fi/help_about.html b/OpenKeychain/src/main/res/raw-fi/help_about.html deleted file mode 100644 index cf77cf11d..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw-fi/help_changelog.html b/OpenKeychain/src/main/res/raw-fi/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-fi/help_start.html b/OpenKeychain/src/main/res/raw-fi/help_start.html deleted file mode 100644 index 58f3fae40..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-fr/help_about.html b/OpenKeychain/src/main/res/raw-fr/help_about.html deleted file mode 100644 index 82f86dc22..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain est une implémentation d'OpenPGP pour Android.

-

Licence : GPLv3+

- -

Développeurs

- -

Bibliothèques

- - - diff --git a/OpenKeychain/src/main/res/raw-fr/help_changelog.html b/OpenKeychain/src/main/res/raw-fr/help_changelog.html deleted file mode 100644 index 97b42c6a6..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Cette version ne serait pas possible sans le travail de Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Merci à tous les participants de « Google Summer of Code 2014 » qui ont rendu cette version riche en fonctions et sans bogue ! -À part plusieurs petits correctifs, un nombre notable de correctifs ont été apportés par les personnes suivantes (par ordre alphabétique) : -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-fr/help_start.html b/OpenKeychain/src/main/res/raw-fr/help_start.html deleted file mode 100644 index 00d801e46..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

Comment puis-je activer OpenKeychain dans K-9 Mail ?

-

Pour utiliser OpenKeychain avec K-9 Mail, vous devez suivre ces étapes :

-
    -
  1. Ouvrez K-9 Mail et toquez longuement sur le compte avec lequel vous voulez utiliser OpenKeychain.
  2. -
  3. Sélectionnez « Paramètres du compte », faite défiler vers le bas et cliquez sur « Cryptographie».
  4. -
  5. Cliquez sur « Fournisseur OpenPGP » et sélectionnez OpenKeychain dans la liste.
  6. -
-

J'ai trouvé un bogue dans OpenKeychain !

-

Veuillez rapporter le bogue en utilisant le gestionnaire de bogue d'OpenKeychain.

- -

Contribuer

-

Si vous voulez nous aider à développer OpenKeychain en y contribuant par du code veuillez suivre notre petit guide sur Github.

- -

Traductions

-

Aidez-nous à traduire le OpenKeychain ! Tout le monde peut y participer sur la page d'OpenKeychain sur Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-is/help_about.html b/OpenKeychain/src/main/res/raw-is/help_about.html deleted file mode 100644 index cf77cf11d..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw-is/help_changelog.html b/OpenKeychain/src/main/res/raw-is/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-is/help_start.html b/OpenKeychain/src/main/res/raw-is/help_start.html deleted file mode 100644 index 58f3fae40..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-it/help_about.html b/OpenKeychain/src/main/res/raw-it/help_about.html deleted file mode 100644 index 0f24b7918..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain un implementazione OpenPGP per Android.

-

Licenza: GPLv3+

- -

Sviluppatori

- -

Librerie

- - - diff --git a/OpenKeychain/src/main/res/raw-it/help_changelog.html b/OpenKeychain/src/main/res/raw-it/help_changelog.html deleted file mode 100644 index bbb765bc3..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Questo rilascio non sarebbe stato possibile senza il lavoro di Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Grazie a tutti i partecipanti di Google Summer of Code 2014 che hanno reso questo rilascio ricco di caratteristiche e privo di bug! -Oltre a numerose piccole correzioni, un notevole numero di patch sono state fatte dalle seguenti persone (in ordine alfabetico): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paolo Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-it/help_start.html b/OpenKeychain/src/main/res/raw-it/help_start.html deleted file mode 100644 index 026690b5a..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Ho trovato un bug in OpenKeychain!

-

Per favore riporta i bug usando il issue tracker di OpenKeychain.

- -

Contribuire

-

Se vuoi aiutarci nello sviluppo di OpenKeychain contribuendo al codice segui la nostra breve guida su Github.

- -

Traduzioni

-

Aiutaci a tradurre OpenKeychain! Tutti possono collaborare a OpenKeychain su Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-ja/help_about.html b/OpenKeychain/src/main/res/raw-ja/help_about.html deleted file mode 100644 index 77c774cf6..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain は Android における OpenPGP 実装です。

-

ライセンス: GPLv3以降

- -

開発者

- -

ライブラリ

- - - diff --git a/OpenKeychain/src/main/res/raw-ja/help_changelog.html b/OpenKeychain/src/main/res/raw-ja/help_changelog.html deleted file mode 100644 index f6ceaa427..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfiharの働きなくしてはこのリリースはありませんでした

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

このリリースにおいて適用したリッチでバグのない機能を作ってくれたGoogle Summer of Code 2014の参加者たちに感謝を! -また、以下の人達(アルファベット順)の作ってくれたいくつもの小さなパッチや相当数のパッチにも: -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-ja/help_start.html b/OpenKeychain/src/main/res/raw-ja/help_start.html deleted file mode 100644 index 6b8d1dbcd..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

OpenKeychainでバグを見付けた!

-

OpenKeychainのIssueトラッカーを使ってバグレポートを送ってください。

- -

寄贈

-

もし、あなたが OpenKeychain の開発を助け、コードを寄贈するというなら、Githubのミニガイドを確認して下さい。

- -

翻訳

-

OpenKeychainの翻訳を助けてください! TransifexのOpenKeychainプロジェクトに誰でも参加できます。

- - - diff --git a/OpenKeychain/src/main/res/raw-nl/help_about.html b/OpenKeychain/src/main/res/raw-nl/help_about.html deleted file mode 100644 index abcbf7087..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is een OpenPGP implementatie voor Android.

-

Licentie: GPLv3+

- -

Ontwikkelaars

- -

Bibliotheken

- - - diff --git a/OpenKeychain/src/main/res/raw-nl/help_changelog.html b/OpenKeychain/src/main/res/raw-nl/help_changelog.html deleted file mode 100644 index 809ffa6e6..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Deze release zou niet mogelijk zijn zonder het werkt van Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Dank aan alle deelnemers aan Google Summer of Code 2014 die deze release zo vol mogelijkheden en zonder bugs hebben gemaakt! -Buiten verschillende kleine patches, werden een groot aantal patches gemaakt door volgende personen (alfabetisch gerangschikt): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-nl/help_start.html b/OpenKeychain/src/main/res/raw-nl/help_start.html deleted file mode 100644 index 04fc9c263..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

Hoe activeer ik OpenKeychain in K-9 Mail?

-

Volg deze stappen om OpenKeychain te gebruiken met K-9 Mail:

-
    -
  1. Open K-9 Mail en druk lang op de account waarmee je OpenKeychain wil gebruiken.
  2. -
  3. Selecteer "Accountinstellingen", scroll helemaal naar beneden en klik op "Cryptografie".
  4. -
  5. Klik op "OpenPGP-provider" en selecteer OpenKeychain in de lijst.
  6. -
-

Ik heb een bug in OpenKeychain gevonden!

-

Rapporteer de bug met de problemen tracker van OpenKeychain.

- -

Bijdragen

-

Als je ons wil helpen om OpenKeychain te ontwikkelen door code bij te dragen, volg onze kleine gids op Github.

- -

Vertalingen

-

Help OpenKeychain te vertalen! Iedereen kan deelnemen op OpenKeychain op Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-pl/help_about.html b/OpenKeychain/src/main/res/raw-pl/help_about.html deleted file mode 100644 index ba319afca..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain jest implementacją OpenPGP pod Androida.

-

Licencja: GPLv3+

- -

Deweloperzy

- -

Biblioteki

- - - diff --git a/OpenKeychain/src/main/res/raw-pl/help_changelog.html b/OpenKeychain/src/main/res/raw-pl/help_changelog.html deleted file mode 100644 index 07dcd04e2..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-pl/help_start.html b/OpenKeychain/src/main/res/raw-pl/help_start.html deleted file mode 100644 index f5cd3a9aa..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Znalazłem błąd w OpenKeychain!

-

Zgłoś błąd korzystając z systemu śledzenia błędów OpenKeychain.

- -

Wkład

-

Jeżeli chcesz pomóc nam rozwijać OpenKeychain jako programista, zapoznaj się z naszym małym poradnikiem na Githubie.

- -

Tłumaczenia

-

Pomóż przetłumaczyć OpenKeychain! Każdy może wziąć udział przez stronę OpenKeychain w serwisie Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-pt/help_about.html b/OpenKeychain/src/main/res/raw-pt/help_about.html deleted file mode 100644 index cf77cf11d..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw-pt/help_changelog.html b/OpenKeychain/src/main/res/raw-pt/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-pt/help_start.html b/OpenKeychain/src/main/res/raw-pt/help_start.html deleted file mode 100644 index 58f3fae40..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-ro/help_about.html b/OpenKeychain/src/main/res/raw-ro/help_about.html deleted file mode 100644 index cf77cf11d..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw-ro/help_changelog.html b/OpenKeychain/src/main/res/raw-ro/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-ro/help_start.html b/OpenKeychain/src/main/res/raw-ro/help_start.html deleted file mode 100644 index 58f3fae40..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-ru/help_about.html b/OpenKeychain/src/main/res/raw-ru/help_about.html deleted file mode 100644 index 52a85c45d..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain - реализация OpenPGP для Android.

-

Лицензия: GPLv3+

- -

Разработчики

- -

Компоненты

- - - diff --git a/OpenKeychain/src/main/res/raw-ru/help_changelog.html b/OpenKeychain/src/main/res/raw-ru/help_changelog.html deleted file mode 100644 index 6c22f1315..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Этот релиз стал возможен благодаря работе Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Спасибо всем участникам Google Summer of Code 2014, которые помогли сделать этот выпуск, добавив функции и исправив ошибки! -Из общего числа патчей, особенный вклад внесли следующие люди (в алфавитном порядке): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-ru/help_start.html b/OpenKeychain/src/main/res/raw-ru/help_start.html deleted file mode 100644 index dbfb87503..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Я нашел ошибку в OpenKeychain!

-

Пожалуйста, сообщайте о возникших проблемах и найденных ошибках в разделе Решение проблем OpenKeychain.

- -

Вклад в развитие

-

Если Вы хотите помочь в разработке OpenKeychain, обратитесь к инструкции на Github.

- -

Перевод

-

Помогите переводить OpenKeychain! Каждый может принять участие в переводе OpenKeychain на Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-sl/help_about.html b/OpenKeychain/src/main/res/raw-sl/help_about.html deleted file mode 100644 index 36ce2c104..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain je implementacija OpenPGP za Android.

-

Licenca: GPLv3+

- -

Razvijalci

- -

Knjižnice

- - - diff --git a/OpenKeychain/src/main/res/raw-sl/help_changelog.html b/OpenKeychain/src/main/res/raw-sl/help_changelog.html deleted file mode 100644 index 943ba79f1..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Ta izdaja ne bi bila mogoča brez dela avtorjev: Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray in Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Hvala vsem kandidatom za Google Summer of Code 2014, ki so omogočili to vsebinsko bogato različico! -Največje število popravkov je bilo s strani naslednjih ljudi (po abecednem vrstnem redu): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-sl/help_start.html b/OpenKeychain/src/main/res/raw-sl/help_start.html deleted file mode 100644 index 84a2fc8f7..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Našel sem 'hrošča' v aplikaciji OpenKeychain!

-

Za poročanje o 'hroščih' uporabite sledilnik težav za OpenKeychain.

- -

Prispevajte

-

Če želite sodelovati pri razvoju aplikacije OpenKeychain in prispevati lastno kodo prosimo sledite navodilom na Github-u.

- -

Prevodi

-

Pomagajte nam pri prevajanju aplikacije OpenKeychain! Svoje prevode lahko prispevate tukaj: OpenKeychain na Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-sr/help_about.html b/OpenKeychain/src/main/res/raw-sr/help_about.html deleted file mode 100644 index 0d2f9d697..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

Отворени кључарник (OpenKeychain) је ОпенПГП имплементација за Андроид.

-

Лиценца: ГПЛв3+

- -

Програмери

- -

Библиотеке

- - - diff --git a/OpenKeychain/src/main/res/raw-sr/help_changelog.html b/OpenKeychain/src/main/res/raw-sr/help_changelog.html deleted file mode 100644 index 599498336..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

Ово издање не би било могуће без рада Винсента Брајтмозера (ГСоЦ 2014), „mar-v-in“-а (ГСоЦ 2014), Данијела Алберта (Daniel Albert), Арта Катијана (Art O Cathain), Данијела Хаса, Тима Бреја, „Thialfihar“-а

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Хвала свим апликантима Гугловог Лета Ко̂да 2014 који су учинили ово издање богатим у могућностима и без грешака! -Осим неколицине малих закрпа, значајан број закрпа направили су следећи људи (по абецедном реду): -Данијел Хаман (Daniel Hammann), Данијел Хас (Daniel Haß), Грег Вичак (Greg Witczak), Мируђин Бакши (Miroojin Bakshi), Никил Питер Раж (Nikhil Peter Raj), Паул Сарбиновски (Paul Sarbinowski), Срирам Бујапати (Sreeram Boyapati), Винсент Брајтмозер (Vincent Breitmoser).

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-sr/help_start.html b/OpenKeychain/src/main/res/raw-sr/help_start.html deleted file mode 100644 index e1d5c7726..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

Како да активирам Отворени кључарник у К-9 Пошти?

-

Да бисте користили Отворени кључарник са К-9 Поштом, пратите ове кораке:

-
    -
  1. Отворите К-9 Пошту и притисните дуго на налог са којим желите да користите Отворени кључарник.
  2. -
  3. Изаберите „поставке налога“ и клизајте на дно и притисните „криптографија“.
  4. -
  5. Кликните на „ОпенПГП апликација“ и изаберите Отворени кључарник са списка.
  6. -
-

Пронађох грешку у Отвореном кључарнику!

-

Пријавите грешку на пратиоцу проблема за Отворени кључарник.

- -

Доприноси

-

Ако желите да нам помогнете у развоју Отвореног кључарника доприносом кода, пратите наш мали водич на Гитхабу.

- -

Преводи

-

Помозите у превођењу Отвореног кључарника! Било ко може да учествује у пројекту Отвореног кључара на Трансифексу.

- - - diff --git a/OpenKeychain/src/main/res/raw-sv/help_about.html b/OpenKeychain/src/main/res/raw-sv/help_about.html deleted file mode 100644 index 3c401f4b1..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain är en OpenPGP-implementering för Android.

-

Licens: GPLv3+

- -

Utvecklare

- -

Bibliotek

- - - diff --git a/OpenKeychain/src/main/res/raw-sv/help_changelog.html b/OpenKeychain/src/main/res/raw-sv/help_changelog.html deleted file mode 100644 index 30ab97733..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-sv/help_start.html b/OpenKeychain/src/main/res/raw-sv/help_start.html deleted file mode 100644 index 5de9f23f0..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Jag hittade en bugg i OpenKeychain!

-

Rapporterar buggen med felrapporteringssystemen av OpenKeychain.

- -

Bidra

-

Om du vill hjälpa oss att utveckla OpenKeychain genom att bidra med kod , följ vår korta guide på Github.

- -

Översättningar

-

Hjälp till med att översätta OpenKeychain! Alla kan delta i OpenKeychain på Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-tr/help_about.html b/OpenKeychain/src/main/res/raw-tr/help_about.html deleted file mode 100644 index 9933e24a9..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain Android için bir OpenPGP implementasyonudur.

-

Lisans: GPLv3+

- -

Geliştiriciler

- -

Kütüphaneler

- - - diff --git a/OpenKeychain/src/main/res/raw-tr/help_changelog.html b/OpenKeychain/src/main/res/raw-tr/help_changelog.html deleted file mode 100644 index cb5cdaf36..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-tr/help_start.html b/OpenKeychain/src/main/res/raw-tr/help_start.html deleted file mode 100644 index 868c2bbcb..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

OpenKeychain'de bir bug buldum!

-

Lütfen bulduğunuz hataları OpenKeychain sorun izleyici kullanarak rapor edin.

- -

Katkı

-

OpenKeychain'i geliştirmede bize kod yardımı yapmak istiyorsan Github üzerindeki küçük kılavuzumuzu takip et.

- -

Çeviriler

-

OpenKeychain'in tercüme edilmesine yardım et! Herkes katılabilir: OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-uk/help_about.html b/OpenKeychain/src/main/res/raw-uk/help_about.html deleted file mode 100644 index a9a181525..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain імплементація OpenPGP для Андроїду.

-

Ліцензія: GPLv3+

- -

Розробники

- -

Бібліотеки

- - - diff --git a/OpenKeychain/src/main/res/raw-uk/help_changelog.html b/OpenKeychain/src/main/res/raw-uk/help_changelog.html deleted file mode 100644 index 0cb7d5210..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-uk/help_start.html b/OpenKeychain/src/main/res/raw-uk/help_start.html deleted file mode 100644 index 5b336ed99..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Я знайшов помилку в OpenPGP Keychain!

-

Будь ласка, повідомте про ваду за допомогою відстежувача проблем OpenPGP Keychain.

- -

Внесок

-

Якщо ви хочете допомогти нам у розробці OpenPGP Keychain через редагування коду програми підпишіться на наш невеличкий посібник у Github.

- -

Переклади

-

Допоможіть перекласти OpenPGP Keychain! Кожний може взяти участь на OpenPGP Keychain на Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_about.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_about.html deleted file mode 100644 index 0aaebdae3..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

http://www.openkeychain.org

-

OpenKeychain是一個Android的OpenPGP應用。

-

授權: GPLv3+

- -

銘謝

- -

函式庫

- - - diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.html deleted file mode 100644 index bf28ea2e0..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_start.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_start.html deleted file mode 100644 index 6ba9afe7a..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

我在OpenKeychain發現問題!

-

請通過OpenKeychain問題追蹤回報問題。

- -

發佈

-

如果你願意發佈原始碼協助我們開發,請參考我們Github上的發佈指南

- -

翻譯

-

請協助翻譯OpenKeychain!每個人都可以在OpenKeychain on Transifex自由參與。

- - - diff --git a/OpenKeychain/src/main/res/raw-zh/help_about.html b/OpenKeychain/src/main/res/raw-zh/help_about.html deleted file mode 100644 index 9fa512604..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_about.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -

我们的网站

-

OpenKeychain是一个符合 OpenPGP标准的安装应用程序

-

授权:GPLv3+

- -

开发者们

- -

函式庫

- - - diff --git a/OpenKeychain/src/main/res/raw-zh/help_changelog.html b/OpenKeychain/src/main/res/raw-zh/help_changelog.html deleted file mode 100644 index af25ad08e..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_changelog.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -

3.1.2

- -

3.1.1

- -

3.1

- -

3.0.1

- -

版本:3.0

- -

2.9.2

- -

2.9.1

- -

2.9

- -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- -

2.6.1

- -

2.6

- -

2.5

- -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- -

2.3.1

- -

2.3

- -

2.2

- -

2.1.1

- -

2.1

- -

2.0

- -

1.0.8

- -

1.0.7

- -

1.0.6

- -

1.0.5

- -

1.0.4

- -

1.0.3

- -

1.0.2

- -

1.0.1

- -

1.0.0

- - - diff --git a/OpenKeychain/src/main/res/raw-zh/help_start.html b/OpenKeychain/src/main/res/raw-zh/help_start.html deleted file mode 100644 index cf1b84941..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_start.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

我在OpenKeychain發現問題!

-

請利用 OpenKeychain 項目回報系統回報問題。

- -

發布

-

帮助我们开发 Github.

- -

翻译

-

帮助翻译 OpenKeychain。 OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw/help_about.html b/OpenKeychain/src/main/res/raw/help_about.html deleted file mode 100644 index 6c034cc21..000000000 --- a/OpenKeychain/src/main/res/raw/help_about.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - -

http://www.openkeychain.org

-

OpenKeychain is an OpenPGP implementation for Android.

-

License: GPLv3+

- -

Developers

- - -

Libraries

- - - diff --git a/OpenKeychain/src/main/res/raw/help_about.md b/OpenKeychain/src/main/res/raw/help_about.md new file mode 100644 index 000000000..df2429c6a --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) diff --git a/OpenKeychain/src/main/res/raw/help_certification.html b/OpenKeychain/src/main/res/raw/help_certification.html deleted file mode 100644 index d4aff1ad7..000000000 --- a/OpenKeychain/src/main/res/raw/help_certification.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - -

Key Confirmation

-Without confirmation, you cannot be sure if a key really corresponds to a specific person. -The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. -To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. - -

Key Status

-


Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. -

Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. -

Expired: This key is no longer valid. Only the owner can extend its validity. -

Revoked: This key is no longer valid. It has been revoked by its owner.

- -

Advanced Information

-

A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. -This certification is a "generic certification (0x10)" described in the standard by: -"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID."

- -

Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. -Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. -We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". -We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. -Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings.

- - - diff --git a/OpenKeychain/src/main/res/raw/help_certification.md b/OpenKeychain/src/main/res/raw/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw/help_changelog.html b/OpenKeychain/src/main/res/raw/help_changelog.html deleted file mode 100644 index dcc626feb..000000000 --- a/OpenKeychain/src/main/res/raw/help_changelog.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - -

3.2beta2

- - -

3.1.2

- - -

3.1.1

- - -

3.1

- - -

3.0.1

- - -

3.0

- - -

2.9.2

- - -

2.9.1

- - -

2.9

- - -

2.8

- -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

- -

2.7

- - -

2.6.1

- - -

2.6

- - -

2.5

- - -

2.4

-

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

- - -

2.3.1

- - -

2.3

- - -

2.2

- - -

2.1.1

- - -

2.1

- - -

2.0

- - -

1.0.8

- - -

1.0.7

- - -

1.0.6

- - -

1.0.5

- - -

1.0.4

- - -

1.0.3

- - -

1.0.2

- - -

1.0.1

- - -

1.0.0

- - - \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw/help_changelog.md b/OpenKeychain/src/main/res/raw/help_changelog.md new file mode 100644 index 000000000..b6b992866 --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes diff --git a/OpenKeychain/src/main/res/raw/help_faq.md b/OpenKeychain/src/main/res/raw/help_faq.md new file mode 100644 index 000000000..a3b49cd0e --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_faq.md @@ -0,0 +1,126 @@ +[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) + +# Frequently Asked Questions + +## Are my secret keys safe on my mobile device? + +This is a very common question, and it's not an easy one. In the end it comes down to how much you trust your mobile device. +The real question usually isn't, "how safe are they", but rather "are they less safe than on my laptop"? The answer depends on three factors: + + 1. Do you trust the hardware? Obviously, there are no guarantees that the vendor of your phone hardware didn't add some kind of backdoor. + Then again, the same applies to your laptop's hardware, so it's about even. + 2. How easily can the device be stolen? This depends a lot on how careful you are, but this too is probably about even with your laptop. + 3. Do you trust the software? The Android operating system actually offers a lot more in the way of security between applications than desktop operating systems. + No app without root privileges besides OpenKeychain can ever access the keys stored in OpenKeychain's database. + By comparison, any program you run on your computer can just upload your gnupg keyring, if those files belong to the same user. + As long as Android as a platform is trustworthy, your keys are safe from malware apps. + +In conclusion, we believe that secret keys are not notably less safe on your mobile than they would be on your laptop. +If your security requirements are high enough that you don't keep your keys on your laptop, you probably shouldn't put them on your mobile either. +Otherwise, they should be fine. + +## What is the best way to transfer my own key to OpenKeychain? + +Ideally, put the key on an sd card, import, then erase from the sd card. +If your mobile does not have an sd card reader, read on. + +Our recommended method is to transfer the exported key "through the cloud", but with a super-safe passphrase which is only used during the transfer. +Your key is **encrypted with its passphrase**, the only visible parts in the exported file are your public key. + +So is this really safe? The answer is: Yes, IF you use a good passphrase. +If your passphrase is as difficult to guess as your key, an attacker will gain no useful information from your exported key file. +To give you a (very!) rough impression, the passphrase "J0hnnnyy1995" is about a third as difficult to guess as a 2048 bit RSA key, while "%aBbaf11!o9$pP2,o9/=" is about the same. + + 1. Make up a long and complex passphrase to use during the transfer. + It should be at least 20 characters (more is better, although more than 50 is overkill), with varying capitalization, many special characters and *no words from the dictionary*. + Yes, it is annoying to type, but you'll only use it once! + You can also write it down, but make sure to destroy the note afterwards, and make sure it is never transferred over the internet! + 2. Change the passphrase of your key to that one, then export + 3. Transfer the key file to your mobile by whatever way is most convenient to you (Mail to yourself, PushBullet, Dropbox, ...) + 4. Import the key with OpenKeychain, then delete the file from your storage. + 5. **Change the passphrase** to an easier one which is still safe, but more reasonable to type. + +## Should I certify a key without manually comparing fingerprints? + +To certify someone's key, you should make sure that it's really that same key the other person wants you to certify with their name on it. + +Since keys are usually obtained from a keyserver, it is necessary to double-check that the keyserver gave you the correct key. +This is traditionally done by manually comparing the key's entire fingerprint, character by character. + +However, scanning a QR code, receiving a key via NFC, or exchanging keys via SafeSlinger all have that same check already built-in, so as long as you trust the method used for key exchange, there is no reason to check the fingerprint again manually. + +## Can I mark public keys as trusted without certifying them with my own key? + +No. You can, however, simply create a new key just for certification, which will essentially be the same thing. + + +# Avanced Questions + +## Why is OpenKeychain's database not password protected? + +Your keys are already encrypted with their passphrase - that's the reason you have to input it for every crypto operation. +There is no point in encrypting those keys again with another password, so password protecting the entire database would only protect the list of public keys. +If this is important to you, consider using [full disk encryption](https://source.android.com/devices/tech/security/encryption/). + +## How can I specify connection port for Keyserver? + +Add a new Keyserver (or modify existing one) by going to Preferences -> General -> Keyservers. Enter the port number after the Keyserver address and preceded it by a colon. +For example, "p80.pool.sks-keyservers.net:80" (without quotation marks) means that server "p80.pool.sks-keyservers.net" is working on a port 80. +Default connection port is 11371 and it doesn't need to be specified. + +## I have more than one subkey capable of singing. Which one is selected when signing with this OpenPGP key? + +OpenKeychain assumes that OpenPGP keys hold one usable signing subkey only and selects the first non-revoked non-expired non-stripped one it finds in the unordered list of subkeys. +We consider having more than one valid signing subkey an advanced usecase. You can either strip subkeys that should not be used using OpenKeychain's edit key screen or explicitly select the right subkeys when exporting from gpg with ``gpg --export-secret-subkeys``. + +## How to prepare a YubiKey NEO for OpenKeychain? + + 1. [Buy a YubiKey NEO](http://www.yubico.com/support/resellers/) + 2. [Prepare it for usage with OpenPGP using GnuPG and Yubico's tools](http://www.yubico.com/2012/12/yubikey-neo-openpgp/). + 3. Export the keypair from GnuPG with + ``` + gpg -a --output gpg-secret-key.asc --export-secret-keys + ``` + and transfer the file to your Android device. + 4. In OpenKeychain, select "Import from file", select the file and import the keypair. It will be automatically detect that this is a keypair that works with a YubiKey only. + +You can now use your YubiKey with OpenKeychain and compatible [apps](http://www.openkeychain.org/apps/). A screen will appear when you need to hold your YubiKey against the NFC antenna. + +## How to use a different YubiKey PIN? + 1. Deselect "Use default YubiKey PIN" in OpenKeychain's advanced settings screen + 2. Follow [https://developers.yubico.com/ykneo-openpgp/CardEdit.html](https://developers.yubico.com/ykneo-openpgp/CardEdit.html) + +## How to import an existing key onto the YubiKey? +Follow [https://developers.yubico.com/ykneo-openpgp/KeyImport.html](https://developers.yubico.com/ykneo-openpgp/KeyImport.html) + +## Advanced YubiKey Infos + * [https://developers.yubico.com/ykneo-openpgp](https://developers.yubico.com/ykneo-openpgp) + * [https://github.com/Yubico/ykneo-openpgp](https://github.com/Yubico/ykneo-openpgp) + +## Where can I find more information about OpenKeychain's security model and design decisions? + +Head over to our [Wiki](https://github.com/open-keychain/open-keychain/wiki). + + + +# Known Issues + +### Importing secret key fails + +Before posting a new bug report, please check if you are using gpg prior to 2.1.0 and changed the expiry date before exporting the secret key. + +Changing the expiry date of a key in gpg prior to version 2.1.0 breaks the secret key in a way which emerges only on export. +It's not a problem with OpenKeychain, we correctly reject the key because its self-certificates are either invalid, or have wrong flags. + +This issue has been reported before ([#996](https://github.com/open-keychain/open-keychain/issues/996), [#1003](https://github.com/open-keychain/open-keychain/issues/1003), [#1026](https://github.com/open-keychain/open-keychain/issues/1026)), and can be assumed to affect a large number of users. +The bug in gpg has been fixed in gpg 2.1.0, but that version is as of now [only deployed in debian experimental](https://packages.debian.org/search?keywords=gnupg2), not even sid. +Another [bug report](https://bugs.g10code.com/gnupg/issue1817) has been opened to backport the fix, so we hope this gets fixed soonish. + +## A wrong primary user id is shown when searching on a Keyserver + +Unfortunately, this is a bug in the SKS Keyserver software. Its machine-readable output returns the user ids in an arbitrary order. Read the [related bug](https://bitbucket.org/skskeyserver/sks-keyserver/issue/28/primary-uid-in-machine-readable-index) report for more information. + +### Not working with AOSP Mail + +For now, OpenKeychain will not support AOSP Mail due to bugs in AOSP were we cannot work around ([#290](https://github.com/open-keychain/open-keychain/issues/290)). + diff --git a/OpenKeychain/src/main/res/raw/help_start.html b/OpenKeychain/src/main/res/raw/help_start.html deleted file mode 100644 index 0a30cbd92..000000000 --- a/OpenKeychain/src/main/res/raw/help_start.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
- -

I found a bug in OpenKeychain!

-

Please report the bug using the issue tracker of OpenKeychain.

- -

Contribute

-

If you want to help us developing OpenKeychain by contributing code follow our small guide on Github.

- -

Translations

-

Help translating OpenKeychain! Everybody can participate at OpenKeychain on Transifex.

- - - diff --git a/OpenKeychain/src/main/res/raw/help_start.md b/OpenKeychain/src/main/res/raw/help_start.md new file mode 100644 index 000000000..36b9dfa33 --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). diff --git a/extern/openpgp-api-lib b/extern/openpgp-api-lib index 70a17dcbe..9abb91d3a 160000 --- a/extern/openpgp-api-lib +++ b/extern/openpgp-api-lib @@ -1 +1 @@ -Subproject commit 70a17dcbeb5d8de095f09a7ce756543deff0165a +Subproject commit 9abb91d3a69964a547f26aa1d56de233e75c4410 From fe340c82bab700b8e831a5f8f0e48417f75d3a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 01:18:56 +0100 Subject: [PATCH 04/18] Update transifex config --- .tx/config | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.tx/config b/.tx/config index fe16cc2f4..77a76ad07 100644 --- a/.tx/config +++ b/.tx/config @@ -1,6 +1,9 @@ [main] host = https://www.transifex.com -lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA, no_NO: no-rNO, he_IL: iw-rIL, he: iw +lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_ +MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl- +rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA, no_NO: no-rNO, + he_IL: iw-rIL, he: iw [open-keychain.strings] file_filter = OpenKeychain/src/main/res/values-/strings.xml @@ -8,22 +11,22 @@ source_file = OpenKeychain/src/main/res/values/strings.xml source_lang = en [open-keychain.help-about] -file_filter = OpenKeychain/src/main/res/raw-/help_about.html -source_file = OpenKeychain/src/main/res/raw/help_about.html +file_filter = OpenKeychain/src/main/res/raw-/help_about.md +source_file = OpenKeychain/src/main/res/raw/help_about.md source_lang = en [open-keychain.help-changelog] -file_filter = OpenKeychain/src/main/res/raw-/help_changelog.html -source_file = OpenKeychain/src/main/res/raw/help_changelog.html +file_filter = OpenKeychain/src/main/res/raw-/help_changelog.md +source_file = OpenKeychain/src/main/res/raw/help_changelog.md source_lang = en [open-keychain.help-certification] -file_filter = OpenKeychain/src/main/res/raw-/help_certification.html -source_file = OpenKeychain/src/main/res/raw/help_certification.html +file_filter = OpenKeychain/src/main/res/raw-/help_certification.md +source_file = OpenKeychain/src/main/res/raw/help_certification.md source_lang = en [open-keychain.help-start] -file_filter = OpenKeychain/src/main/res/raw-/help_start.html -source_file = OpenKeychain/src/main/res/raw/help_start.html +file_filter = OpenKeychain/src/main/res/raw-/help_start.md +source_file = OpenKeychain/src/main/res/raw/help_start.md source_lang = en From c3cd96d79fdf2e7e9cb59d72dba0f70ead46f018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 01:21:26 +0100 Subject: [PATCH 05/18] Remove changelog in main folder, update comments --- CHANGELOG | 266 +----------------- OpenKeychain/src/main/res/raw/help_about.md | 1 + .../src/main/res/raw/help_certification.md | 1 + .../src/main/res/raw/help_changelog.md | 1 + OpenKeychain/src/main/res/raw/help_start.md | 1 + 5 files changed, 5 insertions(+), 265 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index da359c6c6..21ef4ce47 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,265 +1 @@ -## 3.2beta2 - * Material design - * Integration of QR Scanner (New permissions required) - * Improved key creation wizard - * Fix missing contacts after sync - * Requires Android 4 - * Redesigned key screen - * Simplify crypto preferences, better selection of secure ciphers - * API: Detached signatures, free selection of signing key,... - * Fix: Some valid keys were shown revoked or expired - * Don't accept signatures by expired or revoked subkeys - * Keybase.io support in advanced view - -## 3.1.2 - * Fix key export to files (now for real) - -## 3.1.1 - * Fix key export to files (they were written partially) - * Fix crash on Android 2.3 - -## 3.1 - * Fix crash on Android 5 - * New certify screen - * Secure Exchange directly from key list (SafeSlinger library) - * New QR Code program flow - * Redesigned decrypt screen - * New icon usage and colors - * Fix import of secret keys from Symantec Encryption Desktop - * Subkey IDs on Yubikeys are now checked correctly - -## 3.0.1 - * Better handling of large key imports - * Improved subkey selection - -## 3.0 - * Full support for Yubikey signature generation and decryption! - * Propose installable compatible apps in apps list - * New design for decryption screens - * Many fixes for key import, also fixes stripped keys - * Honor and display key authenticate flags - * User interface to generate custom keys - * Fixing user id revocation certificates - * New cloud search (searches over traditional keyservers and keybase.io) - * Support for stripping keys inside OpenKeychain - -## 2.9.2 - * Fix keys broken in 2.9.1 - * Yubikey decryption now working via API - -## 2.9.1 - * Split encrypt screen into two - * Fix key flags handling (now supporting Mailvelope 0.7 keys) - * Improved passphrase handling - * Key sharing via SafeSlinger - * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain - * Fix usage of stripped keys - * SHA256 as default for compatibility - * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API - * OpenPGP API now handles revoked/expired keys and returns all user ids - -## 2.9 - * Fixing crashes introduced in v2.8 - * Experimental ECC support - * Experimental Yubikey support (signing-only with imported keys) - -## 2.8 - * So many bugs have been fixed in this release that we focus on the main new features - * Key edit: awesome new design, key revocation - * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records - * New first time screen - * New key creation screen: autocompletion of name and email based on your personal Android accounts - * File encryption: awesome new design, support for encrypting multiple files - * New icons to show status of key (by Brennan Novak) - * Important bug fix: Importing of large key collections from a file is now possible - * Notification showing cached passphrases - * Keys are connected to Android's contacts - -This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar - - -## 2.7 - * Purple! (Dominik, Vincent) - * New key view design (Dominik, Vincent) - * New flat Android buttons (Dominik, Vincent) - * API fixes (Dominik) - * Keybase.io import (Tim Bray) - -## 2.6.1 - * Some fixes for regression bugs - -## 2.6 - * Key certifications (thanks to Vincent Breitmoser) - * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) - * New design for signature verification - * Custom key length (thanks to Greg Witczak) - * Fix share-functionality from other apps - -## 2.5 - * Fix decryption of symmetric pgp messages/files - * Refactored key edit screen (thanks to Ash Hughes) - * New modern design for encrypt/decrypt screens - * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) - -## 2.4 -Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! -Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser. - * New unified key list - * Colorized key fingerprint - * Support for keyserver ports - * Deactivate possibility to generate weak keys - * Much more internal work on the API - * Certify user ids - * Keyserver query based on machine-readable output - * Lock navigation drawer on tablets - * Suggestions for emails on creation of keys - * Search in public key lists - * And much more improvements and fixes… - -## 2.3.1 - * Hotfix for crash when upgrading from old versions - -## 2.3 - * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) - * Fix setting expiry dates on keys (thanks to Ash Hughes) - * More internal fixes when editing keys (thanks to Ash Hughes) - * Querying keyservers directly from the import screen - * Fix layout and dialog style on Android 2.2-3.0 - * Fix crash on keys with empty user ids - * Fix crash and empty lists when coming back from signing screen - * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source - * Fix upload of key from signing screen - -## 2.2 - * New design with navigation drawer - * New public key list design - * New public key view - * Bug fixes for importing of keys - * Key cross-certification (thanks to Ash Hughes) - * Handle UTF-8 passwords properly (thanks to Ash Hughes) - * First version with new languages (thanks to the contributors on Transifex) - * Sharing of keys via QR Codes fixed and improved - * Package signature verification for API - -## 2.1 - * Lots of bug fixes - * New API for developers - * PRNG bug fix by Google - -## 2.0 - * Complete redesign - * Share public keys via QR codes, NFC beam - * Sign keys - * Upload keys to server - * Fixes import issues - * New AIDL API - -## 1.0.8 - * Basic keyserver support (HKP, please report bugs :)) - * App2sd (untested, let me know if there are problems) - * More choices for passphrase cache: 1, 2, 4, 8, hours - * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) - * Bugfixes - * Optimizations - -## 1.0.7 - * Clear sign problem with lacking trailing newline fixed - * More options for passphrase cache time to live (20, 40, 60 mins) - -## 1.0.6 - * Account adding crash on Froyo fixed - * Secure file deletion - * Option to delete key file after import - * Stream encryption/decryption (gallery, etc.) - * New options (language, force v3 signatures) - * Interface changes - * Bugfixes - -## 1.0.5 - * German and Italian translation - * Much smaller package, due to reduced BC sources - * New preferences GUI - * Layout adjustment for localization - * Signature bugfix - -## 1.0.4 - * Fixed another crash caused by some SDK bug with query builder - -## 1.0.3 - * Fixed crashes during encryption/signing and possibly key export - -## 1.0.2 - * Filterable key lists - * Smarter preselection of encryption keys - * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers - * Fixes and additional features (key preselection) for k9, new beta build available - -## 1.0.1 - * GMail account listing was broken in 1.0.0, fixed again - -## 1.0.0 - * K-9 Mail integration, APG supporting beta build of K-9 Mail - * Support of more file managers (including ASTRO) - * Slovenian translation - * New database, much faster, less memory usage - * Defined Intents and content provider for other apps - * Bugfixes - -## 0.9.7 - * 0.9.5 must have introduced a bug that prevented symmetric encryption, this release fixes it - -## 0.9.6 - * Finally fixed that bug that prevents the import of keys exported with Enigmail (and others), since this likely affects many users... it gets its own quick release - -## 0.9.5 - * K-9 Mail integration: using "More -> Forward (alternate)" - * Passphrase cache - * Compression preferences added - * Accurate decryption progress bar - * Internationalization prepared, hopefully translations will follow - -## 0.9.4 - * Android 1.5 support, I *hope*, please report problems with layout and graphics - * Yet another interface change, hopefully this will be it :) - * Symmetric encryption for messages - * Encrypt and decrypt processes all wrapped into ONE activity respectively in preparation for defined Intents to use APG in other apps - -## 0.9.3 - * Handle large files correctly - * Better progress bars (especially for file encryption/decryption) - * Option to delete files after en-/decryption - * Bug fixes, layout tweaks - -## 0.9.2 - * Settings for default encryption/hash algorithm - * Hushmail key support - * GUI improvements (encrypt file layout rewritten) - * Bug fixes - -## 0.9.1 - * ElGamal support for subkeys - * Fixes of some silly 0.9.0 bugs - -## 0.9.0 - * OI File Manager support - * File encryption/decryption - -## 0.8.1 - * Display/verify signed-only mails - * Bug fixes, layout fixes - -## 0.8.0 - * Create/edit keys - * Export keys - * GUI more Android-like - * A lot of code review, rewriting things - * Tidy up strings and error handling - -## 0.7.1 - * Minor fixes, some code review - * Recognize ElGamal encryption keys as suitable for encryption - * Allow signing only - -## 0.7.0 - * Initial public release +Please go to https://github.com/open-keychain/open-keychain/blob/development/OpenKeychain/src/main/res/raw/help_changelog.md \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw/help_about.md b/OpenKeychain/src/main/res/raw/help_about.md index df2429c6a..10a2391d3 100644 --- a/OpenKeychain/src/main/res/raw/help_about.md +++ b/OpenKeychain/src/main/res/raw/help_about.md @@ -1,3 +1,4 @@ +[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) [http://www.openkeychain.org](http://www.openkeychain.org) diff --git a/OpenKeychain/src/main/res/raw/help_certification.md b/OpenKeychain/src/main/res/raw/help_certification.md index 8da27e8e0..816025ee0 100644 --- a/OpenKeychain/src/main/res/raw/help_certification.md +++ b/OpenKeychain/src/main/res/raw/help_certification.md @@ -1,3 +1,4 @@ +[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) ## Key Confirmation Without confirmation, you cannot be sure if a key really corresponds to a specific person. diff --git a/OpenKeychain/src/main/res/raw/help_changelog.md b/OpenKeychain/src/main/res/raw/help_changelog.md index b6b992866..e08b2d006 100644 --- a/OpenKeychain/src/main/res/raw/help_changelog.md +++ b/OpenKeychain/src/main/res/raw/help_changelog.md @@ -1,3 +1,4 @@ +[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) ## 3.2beta2 diff --git a/OpenKeychain/src/main/res/raw/help_start.md b/OpenKeychain/src/main/res/raw/help_start.md index 36b9dfa33..474267998 100644 --- a/OpenKeychain/src/main/res/raw/help_start.md +++ b/OpenKeychain/src/main/res/raw/help_start.md @@ -1,3 +1,4 @@ +[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) ## How do I activate OpenKeychain in K-9 Mail? To use OpenKeychain with K-9 Mail, you want to follow these steps: From 78e7e986afc2c5ae975b0030952f5d979a6402fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 01:23:42 +0100 Subject: [PATCH 06/18] Markdown comments --- OpenKeychain/src/main/res/raw/help_about.md | 2 +- OpenKeychain/src/main/res/raw/help_certification.md | 2 +- OpenKeychain/src/main/res/raw/help_changelog.md | 2 +- OpenKeychain/src/main/res/raw/help_faq.md | 2 +- OpenKeychain/src/main/res/raw/help_start.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/OpenKeychain/src/main/res/raw/help_about.md b/OpenKeychain/src/main/res/raw/help_about.md index 10a2391d3..4b51c1695 100644 --- a/OpenKeychain/src/main/res/raw/help_about.md +++ b/OpenKeychain/src/main/res/raw/help_about.md @@ -1,4 +1,4 @@ -[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) +[//]: # (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) [http://www.openkeychain.org](http://www.openkeychain.org) diff --git a/OpenKeychain/src/main/res/raw/help_certification.md b/OpenKeychain/src/main/res/raw/help_certification.md index 816025ee0..889768a75 100644 --- a/OpenKeychain/src/main/res/raw/help_certification.md +++ b/OpenKeychain/src/main/res/raw/help_certification.md @@ -1,4 +1,4 @@ -[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) +[//]: # (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) ## Key Confirmation Without confirmation, you cannot be sure if a key really corresponds to a specific person. diff --git a/OpenKeychain/src/main/res/raw/help_changelog.md b/OpenKeychain/src/main/res/raw/help_changelog.md index e08b2d006..26e1a4df8 100644 --- a/OpenKeychain/src/main/res/raw/help_changelog.md +++ b/OpenKeychain/src/main/res/raw/help_changelog.md @@ -1,4 +1,4 @@ -[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) +[//]: # (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) ## 3.2beta2 diff --git a/OpenKeychain/src/main/res/raw/help_faq.md b/OpenKeychain/src/main/res/raw/help_faq.md index a3b49cd0e..049d040e1 100644 --- a/OpenKeychain/src/main/res/raw/help_faq.md +++ b/OpenKeychain/src/main/res/raw/help_faq.md @@ -1,4 +1,4 @@ -[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) +[//]: # (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) # Frequently Asked Questions diff --git a/OpenKeychain/src/main/res/raw/help_start.md b/OpenKeychain/src/main/res/raw/help_start.md index 474267998..19ac820c0 100644 --- a/OpenKeychain/src/main/res/raw/help_start.md +++ b/OpenKeychain/src/main/res/raw/help_start.md @@ -1,4 +1,4 @@ -[comment]: <> (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) +[//]: # (NOTE: Please put every sentence in its own line, Transifex puts every line in its own translation field!) ## How do I activate OpenKeychain in K-9 Mail? To use OpenKeychain with K-9 Mail, you want to follow these steps: From 208434087fe9eb7bd88d491bb14db05e702d7845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 01:31:11 +0100 Subject: [PATCH 07/18] Update readme for libs link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index db61ab65a..90e18b4b2 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ Some parts and some libraries are Apache License v2, MIT X11 License (see below) ### Libraries -See https://github.com/open-keychain/open-keychain/blob/development/OpenKeychain/src/main/res/raw/help_about.html +See https://github.com/open-keychain/open-keychain/blob/development/OpenKeychain/src/main/res/raw/help_about.md ### Images * icon.svg From 19775c399b106149e8906a7482a4b5a4af2ac8fa Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Thu, 19 Mar 2015 20:31:34 +0530 Subject: [PATCH 08/18] introduced multi-threading refactored oldKeys to updatedKeys added update all keys, ThreadPoolExecutor used modified CachedThreadPoolExecutor --- .../operations/ImportExportOperation.java | 20 +- .../service/KeychainIntentService.java | 235 ++++++++++++++++-- .../keychain/ui/KeyListFragment.java | 88 +++++++ .../keychain/util/ParcelableFileCache.java | 12 + OpenKeychain/src/main/res/menu/key_list.xml | 5 + OpenKeychain/src/main/res/values/strings.xml | 2 + 6 files changed, 327 insertions(+), 35 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java index 20dba95e9..f2516f1bd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java @@ -168,7 +168,7 @@ public class ImportExportOperation extends BaseOperation { return new ImportKeyResult(ImportKeyResult.RESULT_FAIL_NOTHING, log); } - int newKeys = 0, oldKeys = 0, badKeys = 0, secret = 0; + int newKeys = 0, updatedKeys = 0, badKeys = 0, secret = 0; ArrayList importedMasterKeyIds = new ArrayList<>(); boolean cancelled = false; @@ -302,7 +302,7 @@ public class ImportExportOperation extends BaseOperation { if (!result.success()) { badKeys += 1; } else if (result.updated()) { - oldKeys += 1; + updatedKeys += 1; importedMasterKeyIds.add(key.getMasterKeyId()); } else { newKeys += 1; @@ -333,7 +333,9 @@ public class ImportExportOperation extends BaseOperation { } // Special: make sure new data is synced into contacts - ContactSyncAdapterService.requestSync(); + // disabling sync right now since it reduces speed while multi-threading + // so, we expect calling functions to take care of it. KeychainIntentService handles this + //ContactSyncAdapterService.requestSync(); // convert to long array long[] importedMasterKeyIdsArray = new long[importedMasterKeyIds.size()]; @@ -348,18 +350,18 @@ public class ImportExportOperation extends BaseOperation { } // special return case: no new keys at all - if (badKeys == 0 && newKeys == 0 && oldKeys == 0) { + if (badKeys == 0 && newKeys == 0 && updatedKeys == 0) { resultType = ImportKeyResult.RESULT_FAIL_NOTHING; } else { if (newKeys > 0) { resultType |= ImportKeyResult.RESULT_OK_NEWKEYS; } - if (oldKeys > 0) { + if (updatedKeys > 0) { resultType |= ImportKeyResult.RESULT_OK_UPDATED; } if (badKeys > 0) { resultType |= ImportKeyResult.RESULT_WITH_ERRORS; - if (newKeys == 0 && oldKeys == 0) { + if (newKeys == 0 && updatedKeys == 0) { resultType |= ImportKeyResult.RESULT_ERROR; } } @@ -369,15 +371,15 @@ public class ImportExportOperation extends BaseOperation { } // Final log entry, it's easier to do this individually - if ( (newKeys > 0 || oldKeys > 0) && badKeys > 0) { + if ( (newKeys > 0 || updatedKeys > 0) && badKeys > 0) { log.add(LogType.MSG_IMPORT_PARTIAL, 1); - } else if (newKeys > 0 || oldKeys > 0) { + } else if (newKeys > 0 || updatedKeys > 0) { log.add(LogType.MSG_IMPORT_SUCCESS, 1); } else { log.add(LogType.MSG_IMPORT_ERROR, 1); } - return new ImportKeyResult(resultType, log, newKeys, oldKeys, badKeys, secret, + return new ImportKeyResult(resultType, log, newKeys, updatedKeys, badKeys, secret, importedMasterKeyIdsArray); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java index d5f13f7ce..0cac8fb32 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java @@ -21,11 +21,11 @@ package org.sufficientlysecure.keychain.service; import android.app.IntentService; import android.content.Intent; import android.net.Uri; + import android.os.Bundle; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; - import com.textuality.keybase.lib.Proof; import com.textuality.keybase.lib.prover.Prover; @@ -74,7 +74,9 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicBoolean; import de.measite.minidns.Client; @@ -136,7 +138,7 @@ public class KeychainIntentService extends IntentService implements Progressable private static final IOType[] values = values(); public static IOType fromInt(int n) { - if(n < 0 || n >= values.length) { + if (n < 0 || n >= values.length) { return UNKNOWN; } else { return values[n]; @@ -201,7 +203,127 @@ public class KeychainIntentService extends IntentService implements Progressable Messenger mMessenger; // this attribute can possibly merged with the one above? not sure... - private AtomicBoolean mActionCanceled = new AtomicBoolean(false); + private static AtomicBoolean sActionCanceled = new AtomicBoolean(false); + + /** + * accumulates the results from a multi-threaded key import from a keyserver and + * consolidates them into a single ImportKeyResult, besides keeping count of keys imported and + * total keys to be imported. Also provides the Progressable used by these threads, which + * currently ignores updates + */ + private class KeyImportAccumulator { + private OperationLog mImportLog = new OperationLog(); + private int mTotalKeys; + private int mImportedKeys = 0; + private Progressable mImportProgressable; + ArrayList mImportedMasterKeyIds = new ArrayList(); + private int mBadKeys = 0; + private int mNewKeys = 0; + private int mUpdatedKeys = 0; + private int mSecret = 0; + private int mResultType = 0; + + public KeyImportAccumulator(int totalKeys) { + mTotalKeys = totalKeys; + //ignore updates from ImportExportOperation for now + mImportProgressable = new Progressable() { + @Override + public void setProgress(String message, int current, int total) { + + } + + @Override + public void setProgress(int resourceId, int current, int total) { + + } + + @Override + public void setProgress(int current, int total) { + + } + + @Override + public void setPreventCancel() { + + } + }; + } + + public Progressable getImportProgressable() { + return mImportProgressable; + } + + public int getTotalKeys() { + return mTotalKeys; + } + + public int getImportedKeys() { + return mImportedKeys; + } + + public synchronized void accumulateKeyImport(ImportKeyResult result) { + mImportedKeys++; + mImportLog.addAll(result.getLog().toList());//accumulates log + mBadKeys += result.mBadKeys; + mNewKeys += result.mNewKeys; + mUpdatedKeys += result.mUpdatedKeys; + mSecret += result.mSecret; + + long[] masterKeyIds = result.getImportedMasterKeyIds(); + for (int i = 0; i < masterKeyIds.length; i++) { + mImportedMasterKeyIds.add(masterKeyIds[i]); + } + + // if any key import has been cancelled, set result type to cancelled + // resultType is added to in getConsolidatedKayImport to account for remaining factors + mResultType |= result.getResult() & ImportKeyResult.RESULT_CANCELLED; + + } + + /** + * returns accumulated result of all imports so far + * + * @return + */ + public ImportKeyResult getConsolidatedImportKeyResult() { + + // adding required information to mResultType + // special case,no keys requested for import + if (mBadKeys == 0 && mNewKeys == 0 && mUpdatedKeys == 0) { + mResultType = ImportKeyResult.RESULT_FAIL_NOTHING; + } else { + if (mNewKeys > 0) { + mResultType |= ImportKeyResult.RESULT_OK_NEWKEYS; + } + if (mUpdatedKeys > 0) { + mResultType |= ImportKeyResult.RESULT_OK_UPDATED; + } + if (mBadKeys > 0) { + mResultType |= ImportKeyResult.RESULT_WITH_ERRORS; + if (mNewKeys == 0 && mUpdatedKeys == 0) { + mResultType |= ImportKeyResult.RESULT_ERROR; + } + } + if (mImportLog.containsWarnings()) { + mResultType |= ImportKeyResult.RESULT_WARNINGS; + } + } + + long masterKeyIds[] = new long[mImportedMasterKeyIds.size()]; + for (int i = 0; i < masterKeyIds.length; i++) { + masterKeyIds[i] = mImportedMasterKeyIds.get(i); + } + + return new ImportKeyResult(mResultType, mImportLog, mNewKeys, mUpdatedKeys, mBadKeys, + mSecret, masterKeyIds); + } + + public boolean isImportFinished() { + return mTotalKeys == mImportedKeys; + } + } + + private KeyImportAccumulator mKeyImportAccumulator; public KeychainIntentService() { super("KeychainIntentService"); @@ -216,7 +338,7 @@ public class KeychainIntentService extends IntentService implements Progressable protected void onHandleIntent(Intent intent) { // We have not been cancelled! (yet) - mActionCanceled.set(false); + sActionCanceled.set(false); Bundle extras = intent.getExtras(); if (extras == null) { @@ -242,7 +364,7 @@ public class KeychainIntentService extends IntentService implements Progressable Log.logDebugBundle(data, "EXTRA_DATA"); - ProviderHelper providerHelper = new ProviderHelper(this); + final ProviderHelper providerHelper = new ProviderHelper(this); String action = intent.getAction(); @@ -255,7 +377,7 @@ public class KeychainIntentService extends IntentService implements Progressable String keyServerUri = data.getString(UPLOAD_KEY_SERVER); // Operation - CertifyOperation op = new CertifyOperation(this, providerHelper, this, mActionCanceled); + CertifyOperation op = new CertifyOperation(this, providerHelper, this, sActionCanceled); CertifyResult result = op.certify(parcel, keyServerUri); // Result @@ -473,7 +595,7 @@ public class KeychainIntentService extends IntentService implements Progressable Passphrase passphrase = data.getParcelable(EDIT_KEYRING_PASSPHRASE); // Operation - EditKeyOperation op = new EditKeyOperation(this, providerHelper, this, mActionCanceled); + EditKeyOperation op = new EditKeyOperation(this, providerHelper, this, sActionCanceled); EditKeyResult result = op.execute(saveParcel, passphrase); // Result @@ -487,7 +609,7 @@ public class KeychainIntentService extends IntentService implements Progressable long keyRingId = data.getInt(EXPORT_KEY_RING_MASTER_KEY_ID); // Operation - PromoteKeyOperation op = new PromoteKeyOperation(this, providerHelper, this, mActionCanceled); + PromoteKeyOperation op = new PromoteKeyOperation(this, providerHelper, this, sActionCanceled); PromoteKeyResult result = op.execute(keyRingId); // Result @@ -520,26 +642,68 @@ public class KeychainIntentService extends IntentService implements Progressable break; } case ACTION_IMPORT_KEYRING: { - // Input - String keyServer = data.getString(IMPORT_KEY_SERVER); + final String keyServer = data.getString(IMPORT_KEY_SERVER); ArrayList list = data.getParcelableArrayList(IMPORT_KEY_LIST); ParcelableFileCache cache = new ParcelableFileCache<>(this, "key_import.pcl"); + int totKeys = 0; + Iterator keyListIterator = null; + //either list or cache must be null, no guarantees otherwise + if (list == null) {//export from cache, copied from ImportExportOperation.importKeyRings - // Operation - ImportExportOperation importExportOperation = new ImportExportOperation( - this, providerHelper, this, mActionCanceled); - // Either list or cache must be null, no guarantees otherwise. - ImportKeyResult result = list != null - ? importExportOperation.importKeyRings(list, keyServer) - : importExportOperation.importKeyRings(cache, keyServer); + try { + ParcelableFileCache.IteratorWithSize it = cache.readCache(); + keyListIterator = it; + totKeys = it.getSize(); + } catch (IOException e) { - // Result - sendMessageToHandler(MessageStatus.OKAY, result); + // Special treatment here, we need a lot + OperationLog log = new OperationLog(); + log.add(OperationResult.LogType.MSG_IMPORT, 0, 0); + log.add(OperationResult.LogType.MSG_IMPORT_ERROR_IO, 0, 0); + + keyImportFailed(new ImportKeyResult(ImportKeyResult.RESULT_ERROR, log)); + } + } else { + keyListIterator = list.iterator(); + totKeys = list.size(); + } + + + if (keyListIterator != null) { + mKeyImportAccumulator = new KeyImportAccumulator(totKeys); + setProgress(0, totKeys); + + final int maxThreads = 200; + ExecutorService importExecutor = new ThreadPoolExecutor(0, maxThreads, + 30L, TimeUnit.SECONDS, + new SynchronousQueue()); + + while (keyListIterator.hasNext()) { + final ParcelableKeyRing pkRing = keyListIterator.next(); + Runnable importOperationRunnable = new Runnable() { + @Override + public void run() { + // Operation + ImportExportOperation importExportOperation = new ImportExportOperation( + KeychainIntentService.this, + new ProviderHelper(KeychainIntentService.this), + mKeyImportAccumulator.getImportProgressable(), + sActionCanceled); + + ArrayList list = new ArrayList<>(); + list.add(pkRing); + ImportKeyResult result = importExportOperation.importKeyRings(list, + keyServer); + singleKeyRingImportCompleted(result); + } + }; + importExecutor.execute(importOperationRunnable); + } + } break; - } case ACTION_SIGN_ENCRYPT: { @@ -548,7 +712,7 @@ public class KeychainIntentService extends IntentService implements Progressable // Operation SignEncryptOperation op = new SignEncryptOperation( - this, new ProviderHelper(this), this, mActionCanceled); + this, new ProviderHelper(this), this, sActionCanceled); SignEncryptResult result = op.execute(inputParcel); // Result @@ -584,6 +748,23 @@ public class KeychainIntentService extends IntentService implements Progressable } } + private synchronized void singleKeyRingImportCompleted(ImportKeyResult result) { + mKeyImportAccumulator.accumulateKeyImport(result); + + setProgress(mKeyImportAccumulator.getImportedKeys(), mKeyImportAccumulator.getTotalKeys()); + + if (mKeyImportAccumulator.isImportFinished()) { + ContactSyncAdapterService.requestSync(); + + sendMessageToHandler(MessageStatus.OKAY, + mKeyImportAccumulator.getConsolidatedImportKeyResult()); + } + } + + private void keyImportFailed(ImportKeyResult result) { + sendMessageToHandler(MessageStatus.OKAY, result); + } + private void sendProofError(List log, String label) { String msg = null; label = (label == null) ? "" : label + ": "; @@ -655,7 +836,7 @@ public class KeychainIntentService extends IntentService implements Progressable /** * Set progress of ProgressDialog by sending message to handler on UI thread */ - public void setProgress(String message, int progress, int max) { + public synchronized void setProgress(String message, int progress, int max) { Log.d(Constants.TAG, "Send message by setProgress with progress=" + progress + ", max=" + max); @@ -669,16 +850,16 @@ public class KeychainIntentService extends IntentService implements Progressable sendMessageToHandler(MessageStatus.UPDATE_PROGRESS, null, data); } - public void setProgress(int resourceId, int progress, int max) { + public synchronized void setProgress(int resourceId, int progress, int max) { setProgress(getString(resourceId), progress, max); } - public void setProgress(int progress, int max) { + public synchronized void setProgress(int progress, int max) { setProgress(null, progress, max); } @Override - public void setPreventCancel() { + public synchronized void setPreventCancel() { sendMessageToHandler(MessageStatus.PREVENT_CANCEL); } @@ -743,8 +924,10 @@ public class KeychainIntentService extends IntentService implements Progressable @Override public int onStartCommand(Intent intent, int flags, int startId) { + // onStartCommand will be run on the thread which starts the service + // cancel operation is introduced here as it must not be queued up if (ACTION_CANCEL.equals(intent.getAction())) { - mActionCanceled.set(true); + sActionCanceled.set(true); return START_NOT_STICKY; } return super.onStartCommand(intent, flags, startId); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 5f1189deb..513da7785 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui; import android.animation.ObjectAnimator; import android.annotation.TargetApi; +import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; @@ -58,13 +59,17 @@ import com.getbase.floatingactionbutton.FloatingActionsMenu; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; +import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing; import org.sufficientlysecure.keychain.operations.results.ConsolidateResult; import org.sufficientlysecure.keychain.operations.results.DeleteResult; +import org.sufficientlysecure.keychain.operations.results.ImportKeyResult; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainDatabase; +import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment; @@ -78,6 +83,7 @@ import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter; @@ -477,6 +483,10 @@ public class KeyListFragment extends LoaderFragment mExportHelper.showExportKeysDialog(null, Constants.Path.APP_DIR_FILE, true); return true; + case R.id.menu_key_list_update_all_keys: + updateAllKeys(); + return true; + case R.id.menu_key_list_debug_cons: consolidate(); return true; @@ -561,6 +571,84 @@ public class KeyListFragment extends LoaderFragment startActivityForResult(intent, 0); } + private void updateAllKeys() { + Context context = this.getActivity(); + + ProviderHelper providerHelper = new ProviderHelper(context); + + Cursor cursor = providerHelper.getContentResolver().query( + KeyRings.buildUnifiedKeyRingsUri(), new String[]{ + KeyRings.FINGERPRINT + }, null, null, null + ); + + ArrayList keyList = new ArrayList<>(); + + while (cursor.moveToNext()) { + byte[] blob = cursor.getBlob(0);//fingerprint column is 0 + String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob); + ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null); + keyList.add(keyEntry); + } + + KeychainIntentServiceHandler serviceHandler = new KeychainIntentServiceHandler( + getActivity(), + getString(R.string.progress_importing), + ProgressDialog.STYLE_HORIZONTAL, + true) { + public void handleMessage(Message message) { + // handle messages by standard KeychainIntentServiceHandler first + super.handleMessage(message); + + if (message.arg1 == MessageStatus.OKAY.ordinal()) { + // get returned data bundle + Bundle returnData = message.getData(); + if (returnData == null) { + return; + } + final ImportKeyResult result = + returnData.getParcelable(OperationResult.EXTRA_RESULT); + if (result == null) { + Log.e(Constants.TAG, "result == null"); + return; + } + + result.createNotify(KeyListFragment.this.getActivity()).show(); + } + } + }; + + // Send all information needed to service to query keys in other thread + Intent intent = new Intent(getActivity(), KeychainIntentService.class); + + intent.setAction(KeychainIntentService.ACTION_IMPORT_KEYRING); + + // fill values for this action + Bundle data = new Bundle(); + + // search config + { + Preferences prefs = Preferences.getPreferences(getActivity()); + Preferences.CloudSearchPrefs cloudPrefs = + new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver()); + data.putString(KeychainIntentService.IMPORT_KEY_SERVER, cloudPrefs.keyserver); + } + + data.putParcelableArrayList(KeychainIntentService.IMPORT_KEY_LIST, keyList); + + intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + + // Create a new Messenger for the communication back + Messenger messenger = new Messenger(serviceHandler); + intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + + // show progress dialog + serviceHandler.showProgressDialog(getActivity()); + + // start service with intent + getActivity().startService(intent); + } + private void consolidate() { // Message is received after importing is done in KeychainIntentService KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java index 6f9cb277e..5a314ad0b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java @@ -83,10 +83,22 @@ public class ParcelableFileCache { } + /** + * Reads from cache file and deletes it afterward. Convenience function for readCache(boolean). + * @return an IteratorWithSize object containing entries read from the cache file + * @throws IOException + */ public IteratorWithSize readCache() throws IOException { return readCache(true); } + /** + * Reads entries from a cache file and returns an IteratorWithSize object containing the entries + * @param deleteAfterRead if true, the cache file will be deleted after being read + * @return an IteratorWithSize object containing entries read from the cache file + * @throws IOException if cache directory/parcel import file does not exist, or a read error + * occurs + */ public IteratorWithSize readCache(final boolean deleteAfterRead) throws IOException { File cacheDir = mContext.getCacheDir(); diff --git a/OpenKeychain/src/main/res/menu/key_list.xml b/OpenKeychain/src/main/res/menu/key_list.xml index 15e098138..c4797d5f7 100644 --- a/OpenKeychain/src/main/res/menu/key_list.xml +++ b/OpenKeychain/src/main/res/menu/key_list.xml @@ -19,6 +19,11 @@ android:title="@string/menu_manage_keys" app:showAsAction="never" /> + + "Add keys" "Search cloud" "Export all keys" + "Update all keys" "Show advanced info" "Confirm via fingerprint comparison" "Export Log" @@ -316,6 +317,7 @@ "cancelling…" "saving…" "importing…" + "Updating keys…" "exporting…" "uploading…" "building key…" From 9f5581463f1b2d07217f59fa32346c786069dbf5 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Sun, 22 Mar 2015 03:31:13 +0530 Subject: [PATCH 09/18] shifted multi-threading to own service added multi-threaded cloud import, restored KeychainIntentService eliminated code duplication in multi-threaded import --- OpenKeychain/src/main/AndroidManifest.xml | 3 + .../keychain/service/CloudImportService.java | 387 ++++++++++++++++++ .../service/KeychainIntentService.java | 253 ++---------- ...ndler.java => ServiceProgressHandler.java} | 26 +- .../keychain/ui/CertifyKeyFragment.java | 11 +- .../ui/ConsolidateDialogActivity.java | 8 +- .../keychain/ui/CreateKeyFinalFragment.java | 17 +- .../keychain/ui/DecryptFilesFragment.java | 17 +- .../keychain/ui/DecryptTextFragment.java | 10 +- .../keychain/ui/EditKeyFragment.java | 14 +- .../keychain/ui/EncryptActivity.java | 10 +- .../keychain/ui/ImportKeysActivity.java | 32 +- .../keychain/ui/ImportKeysProxyActivity.java | 8 +- .../keychain/ui/KeyListFragment.java | 34 +- .../keychain/ui/SafeSlingerActivity.java | 8 +- .../keychain/ui/UploadKeyActivity.java | 10 +- .../keychain/ui/ViewKeyActivity.java | 8 +- .../keychain/ui/ViewKeyTrustFragment.java | 21 +- .../ui/dialog/DeleteKeyDialogFragment.java | 11 +- .../ui/dialog/ProgressDialogFragment.java | 44 +- .../keychain/util/ExportHelper.java | 13 +- 21 files changed, 611 insertions(+), 334 deletions(-) create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CloudImportService.java rename OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/{KeychainIntentServiceHandler.java => ServiceProgressHandler.java} (85%) diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index d9f9766c9..5692144e7 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -697,6 +697,9 @@ + + * + * 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 . + */ + +package org.sufficientlysecure.keychain.service; + +import android.app.Service; +import android.content.Intent; +import android.os.Bundle; +import android.os.IBinder; +import android.os.Message; +import android.os.Messenger; +import android.os.RemoteException; + +import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing; +import org.sufficientlysecure.keychain.operations.ImportExportOperation; +import org.sufficientlysecure.keychain.operations.results.ImportKeyResult; +import org.sufficientlysecure.keychain.operations.results.OperationResult; +import org.sufficientlysecure.keychain.pgp.Progressable; +import org.sufficientlysecure.keychain.provider.ProviderHelper; +import org.sufficientlysecure.keychain.util.Log; +import org.sufficientlysecure.keychain.util.ParcelableFileCache; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * When this service is started it will initiate a multi-threaded key import and when done it will + * shut itself down. + */ +public class CloudImportService extends Service implements Progressable { + + //required as extras from intent + public static final String EXTRA_MESSENGER = "messenger"; + public static final String EXTRA_DATA = "data"; + + //required by data bundle + public static final String IMPORT_KEY_LIST = "import_key_list"; + public static final String IMPORT_KEY_SERVER = "import_key_server"; + + // indicates a request to cancel the import + public static final String ACTION_CANCEL = Constants.INTENT_PREFIX + "CANCEL"; + + //tells the spawned threads whether the user has requested a cancel + private static AtomicBoolean mActionCancelled = new AtomicBoolean(false); + + @Override + public IBinder onBind(Intent intent) { + return null; + } + + /** + * Used to accumulate the results of individual key imports + */ + private class KeyImportAccumulator { + private OperationResult.OperationLog mImportLog = new OperationResult.OperationLog(); + private int mTotalKeys; + private int mImportedKeys = 0; + private Progressable mImportProgressable; + ArrayList mImportedMasterKeyIds = new ArrayList(); + private int mBadKeys = 0; + private int mNewKeys = 0; + private int mUpdatedKeys = 0; + private int mSecret = 0; + private int mResultType = 0; + + public KeyImportAccumulator(int totalKeys) { + mTotalKeys = totalKeys; + //ignore updates from ImportExportOperation for now + mImportProgressable = new Progressable() { + @Override + public void setProgress(String message, int current, int total) { + + } + + @Override + public void setProgress(int resourceId, int current, int total) { + + } + + @Override + public void setProgress(int current, int total) { + + } + + @Override + public void setPreventCancel() { + + } + }; + } + + public Progressable getImportProgressable() { + return mImportProgressable; + } + + public int getTotalKeys() { + return mTotalKeys; + } + + public int getImportedKeys() { + return mImportedKeys; + } + + public synchronized void accumulateKeyImport(ImportKeyResult result) { + mImportedKeys++; + mImportLog.addAll(result.getLog().toList());//accumulates log + mBadKeys += result.mBadKeys; + mNewKeys += result.mNewKeys; + mUpdatedKeys += result.mUpdatedKeys; + mSecret += result.mSecret; + + long[] masterKeyIds = result.getImportedMasterKeyIds(); + for (int i = 0; i < masterKeyIds.length; i++) { + mImportedMasterKeyIds.add(masterKeyIds[i]); + } + + // if any key import has been cancelled, set result type to cancelled + // resultType is added to in getConsolidatedKayImport to account for remaining factors + mResultType |= result.getResult() & ImportKeyResult.RESULT_CANCELLED; + + } + + /** + * returns accumulated result of all imports so far + * + * @return + */ + public ImportKeyResult getConsolidatedImportKeyResult() { + + // adding required information to mResultType + // special case,no keys requested for import + if (mBadKeys == 0 && mNewKeys == 0 && mUpdatedKeys == 0) { + mResultType = ImportKeyResult.RESULT_FAIL_NOTHING; + } else { + if (mNewKeys > 0) { + mResultType |= ImportKeyResult.RESULT_OK_NEWKEYS; + } + if (mUpdatedKeys > 0) { + mResultType |= ImportKeyResult.RESULT_OK_UPDATED; + } + if (mBadKeys > 0) { + mResultType |= ImportKeyResult.RESULT_WITH_ERRORS; + if (mNewKeys == 0 && mUpdatedKeys == 0) { + mResultType |= ImportKeyResult.RESULT_ERROR; + } + } + if (mImportLog.containsWarnings()) { + mResultType |= ImportKeyResult.RESULT_WARNINGS; + } + } + + long masterKeyIds[] = new long[mImportedMasterKeyIds.size()]; + for (int i = 0; i < masterKeyIds.length; i++) { + masterKeyIds[i] = mImportedMasterKeyIds.get(i); + } + + return new ImportKeyResult(mResultType, mImportLog, mNewKeys, mUpdatedKeys, mBadKeys, + mSecret, masterKeyIds); + } + + public boolean isImportFinished() { + return mTotalKeys == mImportedKeys; + } + } + + private KeyImportAccumulator mKeyImportAccumulator; + + Messenger mMessenger; + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + + if (ACTION_CANCEL.equals(intent.getAction())) { + mActionCancelled.set(true); + return Service.START_NOT_STICKY; + } + + mActionCancelled.set(false);//we haven't been cancelled, yet + + Bundle extras = intent.getExtras(); + + mMessenger = (Messenger) extras.get(EXTRA_MESSENGER); + + Bundle data = extras.getBundle(EXTRA_DATA); + + final String keyServer = data.getString(IMPORT_KEY_SERVER); + //keyList being null (in case key list to be reaad from cache) is checked by importKeys + final ArrayList keyList = data.getParcelableArrayList(IMPORT_KEY_LIST); + + // Adding keys to the ThreadPoolExecutor takes time, we don't want to block the main thread + Thread baseImportThread = new Thread(new Runnable() { + + @Override + public void run() { + importKeys(keyList, keyServer); + } + }); + baseImportThread.start(); + return Service.START_NOT_STICKY; + } + + public void importKeys(ArrayList keyList, final String keyServer) { + ParcelableFileCache cache = + new ParcelableFileCache<>(this, "key_import.pcl"); + int totKeys = 0; + Iterator keyListIterator = null; + //either keyList or cache must be null, no guarantees otherwise + if (keyList == null) {//export from cache, copied from ImportExportOperation.importKeyRings + + try { + ParcelableFileCache.IteratorWithSize it = cache.readCache(); + keyListIterator = it; + totKeys = it.getSize(); + } catch (IOException e) { + + // Special treatment here, we need a lot + OperationResult.OperationLog log = new OperationResult.OperationLog(); + log.add(OperationResult.LogType.MSG_IMPORT, 0, 0); + log.add(OperationResult.LogType.MSG_IMPORT_ERROR_IO, 0, 0); + + keyImportFailed(new ImportKeyResult(ImportKeyResult.RESULT_ERROR, log)); + } + } else { + keyListIterator = keyList.iterator(); + totKeys = keyList.size(); + } + + + if (keyListIterator != null) { + mKeyImportAccumulator = new KeyImportAccumulator(totKeys); + setProgress(0, totKeys); + + final int maxThreads = 200; + ExecutorService importExecutor = new ThreadPoolExecutor(0, maxThreads, + 30L, TimeUnit.SECONDS, + new SynchronousQueue()); + + while (keyListIterator.hasNext()) { + + final ParcelableKeyRing pkRing = keyListIterator.next(); + + Runnable importOperationRunnable = new Runnable() { + + @Override + public void run() { + ImportKeyResult result = null; + try { + ImportExportOperation importExportOperation = new ImportExportOperation( + CloudImportService.this, + new ProviderHelper(CloudImportService.this), + mKeyImportAccumulator.getImportProgressable(), + mActionCancelled); + + ArrayList list = new ArrayList<>(); + list.add(pkRing); + result = importExportOperation.importKeyRings(list, + keyServer); + } finally { + // in the off-chance that importKeyRings does something to crash the + // thread before it can call singleKeyRingImportCompleted, our imported + // key count will go wrong. This will cause the service to never die, + // and the progress dialog to stay displayed. The finally block was + // originally meant to ensure singleKeyRingImportCompleted was called, + // and checks for null were to be introduced, but in such a scenario, + // knowing an uncaught error exists in importKeyRings is more important. + + // if a null gets passed, something wrong is happening. We want a crash. + + singleKeyRingImportCompleted(result); + } + } + }; + + importExecutor.execute(importOperationRunnable); + } + } + } + + private synchronized void singleKeyRingImportCompleted(ImportKeyResult result) { + // increase imported key count and accumulate log and bad, new etc. key counts from result + mKeyImportAccumulator.accumulateKeyImport(result); + + setProgress(mKeyImportAccumulator.getImportedKeys(), mKeyImportAccumulator.getTotalKeys()); + + if (mKeyImportAccumulator.isImportFinished()) { + ContactSyncAdapterService.requestSync(); + + sendMessageToHandler(ServiceProgressHandler.MessageStatus.OKAY, + mKeyImportAccumulator.getConsolidatedImportKeyResult()); + + stopSelf();//we're done here + } + } + + private void keyImportFailed(ImportKeyResult result) { + sendMessageToHandler(ServiceProgressHandler.MessageStatus.OKAY, result); + } + + private void sendMessageToHandler(ServiceProgressHandler.MessageStatus status, Integer arg2, Bundle data) { + + Message msg = Message.obtain(); + assert msg != null; + msg.arg1 = status.ordinal(); + if (arg2 != null) { + msg.arg2 = arg2; + } + if (data != null) { + msg.setData(data); + } + + try { + mMessenger.send(msg); + } catch (RemoteException e) { + Log.w(Constants.TAG, "Exception sending message, Is handler present?", e); + } catch (NullPointerException e) { + Log.w(Constants.TAG, "Messenger is null!", e); + } + } + + private void sendMessageToHandler(ServiceProgressHandler.MessageStatus status, OperationResult data) { + Bundle bundle = new Bundle(); + bundle.putParcelable(OperationResult.EXTRA_RESULT, data); + sendMessageToHandler(status, null, bundle); + } + + private void sendMessageToHandler(ServiceProgressHandler.MessageStatus status, Bundle data) { + sendMessageToHandler(status, null, data); + } + + private void sendMessageToHandler(ServiceProgressHandler.MessageStatus status) { + sendMessageToHandler(status, null, null); + } + + /** + * Set progress of ProgressDialog by sending message to handler on UI thread + */ + @Override + public synchronized void setProgress(String message, int progress, int max) { + Log.d(Constants.TAG, "Send message by setProgress with progress=" + progress + ", max=" + + max); + + Bundle data = new Bundle(); + if (message != null) { + data.putString(ServiceProgressHandler.DATA_MESSAGE, message); + } + data.putInt(ServiceProgressHandler.DATA_PROGRESS, progress); + data.putInt(ServiceProgressHandler.DATA_PROGRESS_MAX, max); + + sendMessageToHandler(ServiceProgressHandler.MessageStatus.UPDATE_PROGRESS, null, data); + } + + @Override + public synchronized void setProgress(int resourceId, int progress, int max) { + setProgress(getString(resourceId), progress, max); + } + + @Override + public synchronized void setProgress(int progress, int max) { + setProgress(null, progress, max); + } + + @Override + public synchronized void setPreventCancel() { + sendMessageToHandler(ServiceProgressHandler.MessageStatus.PREVENT_CANCEL); + } +} diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java index 0cac8fb32..5ecfb29f5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java @@ -21,11 +21,11 @@ package org.sufficientlysecure.keychain.service; import android.app.IntentService; import android.content.Intent; import android.net.Uri; - import android.os.Bundle; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; + import com.textuality.keybase.lib.Proof; import com.textuality.keybase.lib.prover.Prover; @@ -60,7 +60,7 @@ import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralMsgIdException; import org.sufficientlysecure.keychain.provider.ProviderHelper; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler.MessageStatus; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler.MessageStatus; import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.InputData; import org.sufficientlysecure.keychain.util.Log; @@ -74,9 +74,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicBoolean; import de.measite.minidns.Client; @@ -203,127 +201,7 @@ public class KeychainIntentService extends IntentService implements Progressable Messenger mMessenger; // this attribute can possibly merged with the one above? not sure... - private static AtomicBoolean sActionCanceled = new AtomicBoolean(false); - - /** - * accumulates the results from a multi-threaded key import from a keyserver and - * consolidates them into a single ImportKeyResult, besides keeping count of keys imported and - * total keys to be imported. Also provides the Progressable used by these threads, which - * currently ignores updates - */ - private class KeyImportAccumulator { - private OperationLog mImportLog = new OperationLog(); - private int mTotalKeys; - private int mImportedKeys = 0; - private Progressable mImportProgressable; - ArrayList mImportedMasterKeyIds = new ArrayList(); - private int mBadKeys = 0; - private int mNewKeys = 0; - private int mUpdatedKeys = 0; - private int mSecret = 0; - private int mResultType = 0; - - public KeyImportAccumulator(int totalKeys) { - mTotalKeys = totalKeys; - //ignore updates from ImportExportOperation for now - mImportProgressable = new Progressable() { - @Override - public void setProgress(String message, int current, int total) { - - } - - @Override - public void setProgress(int resourceId, int current, int total) { - - } - - @Override - public void setProgress(int current, int total) { - - } - - @Override - public void setPreventCancel() { - - } - }; - } - - public Progressable getImportProgressable() { - return mImportProgressable; - } - - public int getTotalKeys() { - return mTotalKeys; - } - - public int getImportedKeys() { - return mImportedKeys; - } - - public synchronized void accumulateKeyImport(ImportKeyResult result) { - mImportedKeys++; - mImportLog.addAll(result.getLog().toList());//accumulates log - mBadKeys += result.mBadKeys; - mNewKeys += result.mNewKeys; - mUpdatedKeys += result.mUpdatedKeys; - mSecret += result.mSecret; - - long[] masterKeyIds = result.getImportedMasterKeyIds(); - for (int i = 0; i < masterKeyIds.length; i++) { - mImportedMasterKeyIds.add(masterKeyIds[i]); - } - - // if any key import has been cancelled, set result type to cancelled - // resultType is added to in getConsolidatedKayImport to account for remaining factors - mResultType |= result.getResult() & ImportKeyResult.RESULT_CANCELLED; - - } - - /** - * returns accumulated result of all imports so far - * - * @return - */ - public ImportKeyResult getConsolidatedImportKeyResult() { - - // adding required information to mResultType - // special case,no keys requested for import - if (mBadKeys == 0 && mNewKeys == 0 && mUpdatedKeys == 0) { - mResultType = ImportKeyResult.RESULT_FAIL_NOTHING; - } else { - if (mNewKeys > 0) { - mResultType |= ImportKeyResult.RESULT_OK_NEWKEYS; - } - if (mUpdatedKeys > 0) { - mResultType |= ImportKeyResult.RESULT_OK_UPDATED; - } - if (mBadKeys > 0) { - mResultType |= ImportKeyResult.RESULT_WITH_ERRORS; - if (mNewKeys == 0 && mUpdatedKeys == 0) { - mResultType |= ImportKeyResult.RESULT_ERROR; - } - } - if (mImportLog.containsWarnings()) { - mResultType |= ImportKeyResult.RESULT_WARNINGS; - } - } - - long masterKeyIds[] = new long[mImportedMasterKeyIds.size()]; - for (int i = 0; i < masterKeyIds.length; i++) { - masterKeyIds[i] = mImportedMasterKeyIds.get(i); - } - - return new ImportKeyResult(mResultType, mImportLog, mNewKeys, mUpdatedKeys, mBadKeys, - mSecret, masterKeyIds); - } - - public boolean isImportFinished() { - return mTotalKeys == mImportedKeys; - } - } - - private KeyImportAccumulator mKeyImportAccumulator; + private AtomicBoolean mActionCanceled = new AtomicBoolean(false); public KeychainIntentService() { super("KeychainIntentService"); @@ -338,7 +216,7 @@ public class KeychainIntentService extends IntentService implements Progressable protected void onHandleIntent(Intent intent) { // We have not been cancelled! (yet) - sActionCanceled.set(false); + mActionCanceled.set(false); Bundle extras = intent.getExtras(); if (extras == null) { @@ -364,7 +242,7 @@ public class KeychainIntentService extends IntentService implements Progressable Log.logDebugBundle(data, "EXTRA_DATA"); - final ProviderHelper providerHelper = new ProviderHelper(this); + ProviderHelper providerHelper = new ProviderHelper(this); String action = intent.getAction(); @@ -377,7 +255,7 @@ public class KeychainIntentService extends IntentService implements Progressable String keyServerUri = data.getString(UPLOAD_KEY_SERVER); // Operation - CertifyOperation op = new CertifyOperation(this, providerHelper, this, sActionCanceled); + CertifyOperation op = new CertifyOperation(this, providerHelper, this, mActionCanceled); CertifyResult result = op.certify(parcel, keyServerUri); // Result @@ -517,12 +395,12 @@ public class KeychainIntentService extends IntentService implements Progressable } Bundle resultData = new Bundle(); - resultData.putString(KeychainIntentServiceHandler.DATA_MESSAGE, "OK"); + resultData.putString(ServiceProgressHandler.DATA_MESSAGE, "OK"); // these help the handler construct a useful human-readable message - resultData.putString(KeychainIntentServiceHandler.KEYBASE_PROOF_URL, prover.getProofUrl()); - resultData.putString(KeychainIntentServiceHandler.KEYBASE_PRESENCE_URL, prover.getPresenceUrl()); - resultData.putString(KeychainIntentServiceHandler.KEYBASE_PRESENCE_LABEL, prover.getPresenceLabel()); + resultData.putString(ServiceProgressHandler.KEYBASE_PROOF_URL, prover.getProofUrl()); + resultData.putString(ServiceProgressHandler.KEYBASE_PRESENCE_URL, prover.getPresenceUrl()); + resultData.putString(ServiceProgressHandler.KEYBASE_PRESENCE_LABEL, prover.getPresenceLabel()); sendMessageToHandler(MessageStatus.OKAY, resultData); } catch (Exception e) { sendErrorToHandler(e); @@ -595,7 +473,7 @@ public class KeychainIntentService extends IntentService implements Progressable Passphrase passphrase = data.getParcelable(EDIT_KEYRING_PASSPHRASE); // Operation - EditKeyOperation op = new EditKeyOperation(this, providerHelper, this, sActionCanceled); + EditKeyOperation op = new EditKeyOperation(this, providerHelper, this, mActionCanceled); EditKeyResult result = op.execute(saveParcel, passphrase); // Result @@ -609,7 +487,7 @@ public class KeychainIntentService extends IntentService implements Progressable long keyRingId = data.getInt(EXPORT_KEY_RING_MASTER_KEY_ID); // Operation - PromoteKeyOperation op = new PromoteKeyOperation(this, providerHelper, this, sActionCanceled); + PromoteKeyOperation op = new PromoteKeyOperation(this, providerHelper, this, mActionCanceled); PromoteKeyResult result = op.execute(keyRingId); // Result @@ -642,68 +520,26 @@ public class KeychainIntentService extends IntentService implements Progressable break; } case ACTION_IMPORT_KEYRING: { + // Input - final String keyServer = data.getString(IMPORT_KEY_SERVER); + String keyServer = data.getString(IMPORT_KEY_SERVER); ArrayList list = data.getParcelableArrayList(IMPORT_KEY_LIST); ParcelableFileCache cache = new ParcelableFileCache<>(this, "key_import.pcl"); - int totKeys = 0; - Iterator keyListIterator = null; - //either list or cache must be null, no guarantees otherwise - if (list == null) {//export from cache, copied from ImportExportOperation.importKeyRings - try { - ParcelableFileCache.IteratorWithSize it = cache.readCache(); - keyListIterator = it; - totKeys = it.getSize(); - } catch (IOException e) { + // Operation + ImportExportOperation importExportOperation = new ImportExportOperation( + this, providerHelper, this, mActionCanceled); + // Either list or cache must be null, no guarantees otherwise. + ImportKeyResult result = list != null + ? importExportOperation.importKeyRings(list, keyServer) + : importExportOperation.importKeyRings(cache, keyServer); - // Special treatment here, we need a lot - OperationLog log = new OperationLog(); - log.add(OperationResult.LogType.MSG_IMPORT, 0, 0); - log.add(OperationResult.LogType.MSG_IMPORT_ERROR_IO, 0, 0); - - keyImportFailed(new ImportKeyResult(ImportKeyResult.RESULT_ERROR, log)); - } - } else { - keyListIterator = list.iterator(); - totKeys = list.size(); - } - - - if (keyListIterator != null) { - mKeyImportAccumulator = new KeyImportAccumulator(totKeys); - setProgress(0, totKeys); - - final int maxThreads = 200; - ExecutorService importExecutor = new ThreadPoolExecutor(0, maxThreads, - 30L, TimeUnit.SECONDS, - new SynchronousQueue()); - - while (keyListIterator.hasNext()) { - final ParcelableKeyRing pkRing = keyListIterator.next(); - Runnable importOperationRunnable = new Runnable() { - @Override - public void run() { - // Operation - ImportExportOperation importExportOperation = new ImportExportOperation( - KeychainIntentService.this, - new ProviderHelper(KeychainIntentService.this), - mKeyImportAccumulator.getImportProgressable(), - sActionCanceled); - - ArrayList list = new ArrayList<>(); - list.add(pkRing); - ImportKeyResult result = importExportOperation.importKeyRings(list, - keyServer); - singleKeyRingImportCompleted(result); - } - }; - importExecutor.execute(importOperationRunnable); - } - } + // Result + sendMessageToHandler(MessageStatus.OKAY, result); break; + } case ACTION_SIGN_ENCRYPT: { @@ -712,7 +548,7 @@ public class KeychainIntentService extends IntentService implements Progressable // Operation SignEncryptOperation op = new SignEncryptOperation( - this, new ProviderHelper(this), this, sActionCanceled); + this, new ProviderHelper(this), this, mActionCanceled); SignEncryptResult result = op.execute(inputParcel); // Result @@ -748,23 +584,6 @@ public class KeychainIntentService extends IntentService implements Progressable } } - private synchronized void singleKeyRingImportCompleted(ImportKeyResult result) { - mKeyImportAccumulator.accumulateKeyImport(result); - - setProgress(mKeyImportAccumulator.getImportedKeys(), mKeyImportAccumulator.getTotalKeys()); - - if (mKeyImportAccumulator.isImportFinished()) { - ContactSyncAdapterService.requestSync(); - - sendMessageToHandler(MessageStatus.OKAY, - mKeyImportAccumulator.getConsolidatedImportKeyResult()); - } - } - - private void keyImportFailed(ImportKeyResult result) { - sendMessageToHandler(MessageStatus.OKAY, result); - } - private void sendProofError(List log, String label) { String msg = null; label = (label == null) ? "" : label + ": "; @@ -777,7 +596,7 @@ public class KeychainIntentService extends IntentService implements Progressable private void sendProofError(String msg) { Bundle bundle = new Bundle(); - bundle.putString(KeychainIntentServiceHandler.DATA_ERROR, msg); + bundle.putString(ServiceProgressHandler.DATA_ERROR, msg); sendMessageToHandler(MessageStatus.OKAY, bundle); } @@ -794,7 +613,7 @@ public class KeychainIntentService extends IntentService implements Progressable Log.d(Constants.TAG, "KeychainIntentService Exception: ", e); Bundle data = new Bundle(); - data.putString(KeychainIntentServiceHandler.DATA_ERROR, message); + data.putString(ServiceProgressHandler.DATA_ERROR, message); sendMessageToHandler(MessageStatus.EXCEPTION, null, data); } @@ -836,30 +655,30 @@ public class KeychainIntentService extends IntentService implements Progressable /** * Set progress of ProgressDialog by sending message to handler on UI thread */ - public synchronized void setProgress(String message, int progress, int max) { + public void setProgress(String message, int progress, int max) { Log.d(Constants.TAG, "Send message by setProgress with progress=" + progress + ", max=" + max); Bundle data = new Bundle(); if (message != null) { - data.putString(KeychainIntentServiceHandler.DATA_MESSAGE, message); + data.putString(ServiceProgressHandler.DATA_MESSAGE, message); } - data.putInt(KeychainIntentServiceHandler.DATA_PROGRESS, progress); - data.putInt(KeychainIntentServiceHandler.DATA_PROGRESS_MAX, max); + data.putInt(ServiceProgressHandler.DATA_PROGRESS, progress); + data.putInt(ServiceProgressHandler.DATA_PROGRESS_MAX, max); sendMessageToHandler(MessageStatus.UPDATE_PROGRESS, null, data); } - public synchronized void setProgress(int resourceId, int progress, int max) { + public void setProgress(int resourceId, int progress, int max) { setProgress(getString(resourceId), progress, max); } - public synchronized void setProgress(int progress, int max) { + public void setProgress(int progress, int max) { setProgress(null, progress, max); } @Override - public synchronized void setPreventCancel() { + public void setPreventCancel() { sendMessageToHandler(MessageStatus.PREVENT_CANCEL); } @@ -924,10 +743,8 @@ public class KeychainIntentService extends IntentService implements Progressable @Override public int onStartCommand(Intent intent, int flags, int startId) { - // onStartCommand will be run on the thread which starts the service - // cancel operation is introduced here as it must not be queued up if (ACTION_CANCEL.equals(intent.getAction())) { - sActionCanceled.set(true); + mActionCanceled.set(true); return START_NOT_STICKY; } return super.onStartCommand(intent, flags, startId); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java similarity index 85% rename from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java rename to OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java index 91a079a5d..4bd3481e6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java @@ -30,7 +30,7 @@ import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; -public class KeychainIntentServiceHandler extends Handler { +public class ServiceProgressHandler extends Handler { // possible messages sent from this service to handler on ui public static enum MessageStatus{ @@ -67,28 +67,34 @@ public class KeychainIntentServiceHandler extends Handler { Activity mActivity; ProgressDialogFragment mProgressDialogFragment; - public KeychainIntentServiceHandler(Activity activity) { + public ServiceProgressHandler(Activity activity) { this.mActivity = activity; } - public KeychainIntentServiceHandler(Activity activity, - ProgressDialogFragment progressDialogFragment) { + public ServiceProgressHandler(Activity activity, + ProgressDialogFragment progressDialogFragment) { this.mActivity = activity; this.mProgressDialogFragment = progressDialogFragment; } - public KeychainIntentServiceHandler(Activity activity, String progressDialogMessage, - int progressDialogStyle) { - this(activity, progressDialogMessage, progressDialogStyle, false); + public ServiceProgressHandler(Activity activity, + String progressDialogMessage, + int progressDialogStyle, + ProgressDialogFragment.ServiceType serviceType) { + this(activity, progressDialogMessage, progressDialogStyle, false, serviceType); } - public KeychainIntentServiceHandler(Activity activity, String progressDialogMessage, - int progressDialogStyle, boolean cancelable) { + public ServiceProgressHandler(Activity activity, + String progressDialogMessage, + int progressDialogStyle, + boolean cancelable, + ProgressDialogFragment.ServiceType serviceType) { this.mActivity = activity; this.mProgressDialogFragment = ProgressDialogFragment.newInstance( progressDialogMessage, progressDialogStyle, - cancelable); + cancelable, + serviceType); } public void showProgressDialog(FragmentActivity activity) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java index b3738851c..9b6e8d8f9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java @@ -55,9 +55,10 @@ import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.CertifyActionsParcel; import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.ui.adapter.MultiUserIdsAdapter; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.widget.CertifyKeySpinner; import org.sufficientlysecure.keychain.ui.widget.KeySpinner; @@ -388,8 +389,12 @@ public class CertifyKeyFragment extends LoaderFragment } else { // Message is received after signing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(getActivity(), - getString(R.string.progress_certifying), ProgressDialog.STYLE_SPINNER, true) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_certifying), + ProgressDialog.STYLE_SPINNER, + true, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ConsolidateDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ConsolidateDialogActivity.java index c55aad1f9..11ba3e287 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ConsolidateDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ConsolidateDialogActivity.java @@ -26,7 +26,8 @@ import android.support.v4.app.FragmentActivity; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; /** * We can not directly create a dialog on the application context. @@ -49,10 +50,11 @@ public class ConsolidateDialogActivity extends FragmentActivity { private void consolidateRecovery(boolean recovery) { // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler saveHandler = new ServiceProgressHandler( this, getString(R.string.progress_importing), - ProgressDialog.STYLE_HORIZONTAL) { + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); 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 cbe3eecd4..b0a13c897 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java @@ -39,16 +39,15 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.service.SaveKeyringParcel; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Algorithm; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.ChangeUnlockParcel; import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.util.Log; -import org.sufficientlysecure.keychain.util.Passphrase; import org.sufficientlysecure.keychain.util.Preferences; -import java.util.ArrayList; import java.util.Iterator; public class CreateKeyFinalFragment extends Fragment { @@ -195,10 +194,11 @@ public class CreateKeyFinalFragment extends Fragment { Intent intent = new Intent(getActivity(), KeychainIntentService.class); intent.setAction(KeychainIntentService.ACTION_EDIT_KEYRING); - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler saveHandler = new ServiceProgressHandler( getActivity(), getString(R.string.progress_building_key), - ProgressDialog.STYLE_HORIZONTAL) { + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); @@ -267,8 +267,11 @@ public class CreateKeyFinalFragment extends Fragment { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(getActivity(), - getString(R.string.progress_uploading), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_uploading), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesFragment.java index a92fb596c..c75e28145 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFilesFragment.java @@ -38,8 +38,9 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentService.IOType; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.ui.dialog.DeleteFileDialogFragment; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.Log; @@ -197,8 +198,11 @@ public class DecryptFilesFragment extends DecryptFragment { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); // Message is received after decrypting is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(getActivity(), - getString(R.string.progress_decrypting), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_decrypting), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); @@ -271,8 +275,11 @@ public class DecryptFilesFragment extends DecryptFragment { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); // Message is received after decrypting is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(getActivity(), - getString(R.string.progress_decrypting), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_decrypting), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextFragment.java index 80a07214b..f6e21937d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptTextFragment.java @@ -37,7 +37,8 @@ import org.sufficientlysecure.keychain.compatibility.ClipboardReflection; import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentService.IOType; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.ShareHelper; @@ -167,8 +168,11 @@ public class DecryptTextFragment extends DecryptFragment { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); // Message is received after encrypting is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(getActivity(), - getString(R.string.progress_decrypting), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_decrypting), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); 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 61a02720e..417b50b50 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java @@ -50,7 +50,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.UserPackets; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.provider.ProviderHelper.NotFoundException; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.service.SaveKeyringParcel; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.ChangeUnlockParcel; @@ -59,12 +59,7 @@ import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter; import org.sufficientlysecure.keychain.ui.adapter.SubkeysAddedAdapter; import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter; import org.sufficientlysecure.keychain.ui.adapter.UserIdsAddedAdapter; -import org.sufficientlysecure.keychain.ui.dialog.AddSubkeyDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyExpiryDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.EditUserIdDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment; +import org.sufficientlysecure.keychain.ui.dialog.*; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Passphrase; @@ -597,11 +592,12 @@ public class EditKeyFragment extends LoaderFragment implements private void saveInDatabase(Passphrase passphrase) { Log.d(Constants.TAG, "mSaveKeyringParcel:\n" + mSaveKeyringParcel.toString()); - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler saveHandler = new ServiceProgressHandler( getActivity(), getString(R.string.progress_saving), ProgressDialog.STYLE_HORIZONTAL, - true) { + true, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java index 5438f667c..cd1028de4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java @@ -31,7 +31,8 @@ import org.sufficientlysecure.keychain.operations.results.PgpSignEncryptResult; import org.sufficientlysecure.keychain.operations.results.SignEncryptResult; import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.util.Passphrase; import java.util.Date; @@ -123,8 +124,11 @@ public abstract class EncryptActivity extends BaseActivity { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); // Message is received after encrypting is done in KeychainIntentService - KeychainIntentServiceHandler serviceHandler = new KeychainIntentServiceHandler(this, - getString(R.string.progress_encrypting), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler serviceHandler = new ServiceProgressHandler( + this, + getString(R.string.progress_encrypting), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); 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 9143609ad..dc4a2eb10 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java @@ -35,8 +35,9 @@ import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing; import org.sufficientlysecure.keychain.operations.results.ImportKeyResult; import org.sufficientlysecure.keychain.operations.results.OperationResult; -import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.CloudImportService; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; @@ -294,12 +295,13 @@ public class ImportKeysActivity extends BaseActivity { * Import keys with mImportData */ public void importKeys() { - // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + // Message is received after importing is done in CloudImportService + ServiceProgressHandler saveHandler = new ServiceProgressHandler( this, getString(R.string.progress_importing), ProgressDialog.STYLE_HORIZONTAL, - true) { + true, + ProgressDialogFragment.ServiceType.CLOUD_IMPORT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); @@ -342,9 +344,7 @@ public class ImportKeysActivity extends BaseActivity { Log.d(Constants.TAG, "importKeys started"); // Send all information needed to service to import key in other thread - Intent intent = new Intent(this, KeychainIntentService.class); - - intent.setAction(KeychainIntentService.ACTION_IMPORT_KEYRING); + Intent intent = new Intent(this, CloudImportService.class); // fill values for this action Bundle data = new Bundle(); @@ -362,11 +362,11 @@ public class ImportKeysActivity extends BaseActivity { new ParcelableFileCache<>(this, "key_import.pcl"); cache.writeCache(selectedEntries); - intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + intent.putExtra(CloudImportService.EXTRA_DATA, data); // Create a new Messenger for the communication back Messenger messenger = new Messenger(saveHandler); - intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + intent.putExtra(CloudImportService.EXTRA_MESSENGER, messenger); // show progress dialog saveHandler.showProgressDialog(this); @@ -382,14 +382,12 @@ public class ImportKeysActivity extends BaseActivity { ImportKeysListFragment.CloudLoaderState sls = (ImportKeysListFragment.CloudLoaderState) ls; // Send all information needed to service to query keys in other thread - Intent intent = new Intent(this, KeychainIntentService.class); - - intent.setAction(KeychainIntentService.ACTION_IMPORT_KEYRING); + Intent intent = new Intent(this, CloudImportService.class); // fill values for this action Bundle data = new Bundle(); - data.putString(KeychainIntentService.IMPORT_KEY_SERVER, sls.mCloudPrefs.keyserver); + data.putString(CloudImportService.IMPORT_KEY_SERVER, sls.mCloudPrefs.keyserver); // get selected key entries ArrayList keys = new ArrayList<>(); @@ -402,13 +400,13 @@ public class ImportKeysActivity extends BaseActivity { ); } } - data.putParcelableArrayList(KeychainIntentService.IMPORT_KEY_LIST, keys); + data.putParcelableArrayList(CloudImportService.IMPORT_KEY_LIST, keys); - intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + intent.putExtra(CloudImportService.EXTRA_DATA, data); // Create a new Messenger for the communication back Messenger messenger = new Messenger(saveHandler); - intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + intent.putExtra(CloudImportService.EXTRA_MESSENGER, messenger); // show progress dialog saveHandler.showProgressDialog(this); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java index 1c1e5fe99..21747f77b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysProxyActivity.java @@ -42,7 +42,8 @@ import org.sufficientlysecure.keychain.operations.results.ImportKeyResult; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.operations.results.SingletonResult; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.util.IntentIntegratorSupportV4; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; @@ -213,11 +214,12 @@ public class ImportKeysProxyActivity extends FragmentActivity { private void startImportService (ArrayList keyRings) { // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler serviceHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler serviceHandler = new ServiceProgressHandler( this, getString(R.string.progress_importing), ProgressDialog.STYLE_HORIZONTAL, - true) { + true, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 513da7785..861ae12d9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -20,7 +20,6 @@ package org.sufficientlysecure.keychain.ui; import android.animation.ObjectAnimator; import android.annotation.TargetApi; -import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; @@ -59,7 +58,6 @@ import com.getbase.floatingactionbutton.FloatingActionsMenu; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing; import org.sufficientlysecure.keychain.operations.results.ConsolidateResult; import org.sufficientlysecure.keychain.operations.results.DeleteResult; @@ -70,9 +68,11 @@ import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainDatabase; import org.sufficientlysecure.keychain.provider.ProviderHelper; +import org.sufficientlysecure.keychain.service.CloudImportService; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; @@ -572,7 +572,7 @@ public class KeyListFragment extends LoaderFragment } private void updateAllKeys() { - Context context = this.getActivity(); + Context context = getActivity(); ProviderHelper providerHelper = new ProviderHelper(context); @@ -591,11 +591,12 @@ public class KeyListFragment extends LoaderFragment keyList.add(keyEntry); } - KeychainIntentServiceHandler serviceHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler serviceHandler = new ServiceProgressHandler( getActivity(), - getString(R.string.progress_importing), + getString(R.string.progress_updating), ProgressDialog.STYLE_HORIZONTAL, - true) { + true, + ProgressDialogFragment.ServiceType.CLOUD_IMPORT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); @@ -613,15 +614,13 @@ public class KeyListFragment extends LoaderFragment return; } - result.createNotify(KeyListFragment.this.getActivity()).show(); + result.createNotify(getActivity()).show(); } } }; // Send all information needed to service to query keys in other thread - Intent intent = new Intent(getActivity(), KeychainIntentService.class); - - intent.setAction(KeychainIntentService.ACTION_IMPORT_KEYRING); + Intent intent = new Intent(getActivity(), CloudImportService.class); // fill values for this action Bundle data = new Bundle(); @@ -631,16 +630,16 @@ public class KeyListFragment extends LoaderFragment Preferences prefs = Preferences.getPreferences(getActivity()); Preferences.CloudSearchPrefs cloudPrefs = new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver()); - data.putString(KeychainIntentService.IMPORT_KEY_SERVER, cloudPrefs.keyserver); + data.putString(CloudImportService.IMPORT_KEY_SERVER, cloudPrefs.keyserver); } - data.putParcelableArrayList(KeychainIntentService.IMPORT_KEY_LIST, keyList); + data.putParcelableArrayList(CloudImportService.IMPORT_KEY_LIST, keyList); - intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + intent.putExtra(CloudImportService.EXTRA_DATA, data); // Create a new Messenger for the communication back Messenger messenger = new Messenger(serviceHandler); - intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + intent.putExtra(CloudImportService.EXTRA_MESSENGER, messenger); // show progress dialog serviceHandler.showProgressDialog(getActivity()); @@ -651,10 +650,11 @@ public class KeyListFragment extends LoaderFragment private void consolidate() { // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler saveHandler = new ServiceProgressHandler( getActivity(), getString(R.string.progress_importing), - ProgressDialog.STYLE_HORIZONTAL) { + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SafeSlingerActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SafeSlingerActivity.java index 863aef65f..c58a945d3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SafeSlingerActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SafeSlingerActivity.java @@ -39,7 +39,8 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.ParcelableFileCache; @@ -123,11 +124,12 @@ public class SafeSlingerActivity extends BaseActivity { final FragmentActivity activity = SafeSlingerActivity.this; // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( + ServiceProgressHandler saveHandler = new ServiceProgressHandler( activity, getString(R.string.progress_importing), ProgressDialog.STYLE_HORIZONTAL, - true) { + true, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java index 4fb2074a5..c518cbcdb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java @@ -36,7 +36,8 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; @@ -107,8 +108,11 @@ public class UploadKeyActivity extends BaseActivity { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); // Message is received after uploading is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(this, - getString(R.string.progress_uploading), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + this, + getString(R.string.progress_uploading), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); 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 484956e6a..0c2d8693f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -63,8 +63,8 @@ import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler.MessageStatus; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler.MessageStatus; import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment; import org.sufficientlysecure.keychain.ui.util.FormattingUtils; @@ -387,7 +387,7 @@ public class ViewKeyActivity extends BaseActivity implements private void startCertifyIntent(Intent intent) { // Message is received after signing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(this) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler(this) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); @@ -562,7 +562,7 @@ public class ViewKeyActivity extends BaseActivity implements entries.add(keyEntry); // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler serviceHandler = new KeychainIntentServiceHandler(this) { + ServiceProgressHandler serviceHandler = new ServiceProgressHandler(this) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java index e20796f8f..d5870d8c5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java @@ -50,12 +50,12 @@ import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.util.Log; import java.util.ArrayList; -import java.util.Date; import java.util.Hashtable; import java.util.List; @@ -362,23 +362,26 @@ public class ViewKeyTrustFragment extends LoaderFragment implements // Create a new Messenger for the communication back after proof work is done // - KeychainIntentServiceHandler handler = new KeychainIntentServiceHandler(getActivity(), - getString(R.string.progress_verifying_signature), ProgressDialog.STYLE_HORIZONTAL) { + ServiceProgressHandler handler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_verifying_signature), + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); if (message.arg1 == MessageStatus.OKAY.ordinal()) { Bundle returnData = message.getData(); - String msg = returnData.getString(KeychainIntentServiceHandler.DATA_MESSAGE); + String msg = returnData.getString(ServiceProgressHandler.DATA_MESSAGE); SpannableStringBuilder ssb = new SpannableStringBuilder(); if ((msg != null) && msg.equals("OK")) { //yay - String proofUrl = returnData.getString(KeychainIntentServiceHandler.KEYBASE_PROOF_URL); - String presenceUrl = returnData.getString(KeychainIntentServiceHandler.KEYBASE_PRESENCE_URL); - String presenceLabel = returnData.getString(KeychainIntentServiceHandler.KEYBASE_PRESENCE_LABEL); + String proofUrl = returnData.getString(ServiceProgressHandler.KEYBASE_PROOF_URL); + String presenceUrl = returnData.getString(ServiceProgressHandler.KEYBASE_PRESENCE_URL); + String presenceLabel = returnData.getString(ServiceProgressHandler.KEYBASE_PRESENCE_LABEL); String proofLabel; switch (proof.getType()) { @@ -429,7 +432,7 @@ public class ViewKeyTrustFragment extends LoaderFragment implements ssb.append(" ").append(getString(R.string.keybase_contained_signature)); } else { // verification failed! - msg = returnData.getString(KeychainIntentServiceHandler.DATA_ERROR); + msg = returnData.getString(ServiceProgressHandler.DATA_ERROR); ssb.append(getString(R.string.keybase_proof_failure)); if (msg == null) { msg = getString(R.string.keybase_unknown_proof_failure); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java index f512ecca2..581a96e52 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java @@ -37,7 +37,7 @@ import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.util.Log; import java.util.HashMap; @@ -135,9 +135,12 @@ public class DeleteKeyDialogFragment extends DialogFragment { intent.setAction(KeychainIntentService.ACTION_DELETE); // Message is received after importing is done in KeychainIntentService - KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler( - getActivity(), getString(R.string.progress_deleting), - ProgressDialog.STYLE_HORIZONTAL, true) { + ServiceProgressHandler saveHandler = new ServiceProgressHandler( + getActivity(), + getString(R.string.progress_deleting), + ProgressDialog.STYLE_HORIZONTAL, + true, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { @Override public void handleMessage(Message message) { super.handleMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java index df7943f55..b58f584c8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java @@ -32,23 +32,43 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.service.CloudImportService; import org.sufficientlysecure.keychain.service.KeychainIntentService; +import org.sufficientlysecure.keychain.util.Log; public class ProgressDialogFragment extends DialogFragment { private static final String ARG_MESSAGE = "message"; private static final String ARG_STYLE = "style"; private static final String ARG_CANCELABLE = "cancelable"; + private static final String ARG_SERVICE_TYPE = "service_class"; + + public static enum ServiceType { + KEYCHAIN_INTENT, + CLOUD_IMPORT + } + + ServiceType mServiceType; boolean mCanCancel = false, mPreventCancel = false, mIsCancelled = false; - /** Creates new instance of this fragment */ - public static ProgressDialogFragment newInstance(String message, int style, boolean cancelable) { + /** + * creates a new instance of this fragment + * @param message the message to be displayed initially above the progress bar + * @param style the progress bar style, as defined in ProgressDialog (horizontal or spinner) + * @param cancelable should we let the user cancel this operation + * @param serviceType which Service this progress dialog is meant for + * @return + */ + public static ProgressDialogFragment newInstance(String message, int style, boolean cancelable, + ServiceType serviceType) { ProgressDialogFragment frag = new ProgressDialogFragment(); Bundle args = new Bundle(); args.putString(ARG_MESSAGE, message); args.putInt(ARG_STYLE, style); args.putBoolean(ARG_CANCELABLE, cancelable); + args.putSerializable(ARG_SERVICE_TYPE, serviceType); frag.setArguments(args); @@ -106,6 +126,7 @@ public class ProgressDialogFragment extends DialogFragment { String message = getArguments().getString(ARG_MESSAGE); int style = getArguments().getInt(ARG_STYLE); mCanCancel = getArguments().getBoolean(ARG_CANCELABLE); + mServiceType = (ServiceType) getArguments().getSerializable(ARG_SERVICE_TYPE); dialog.setMessage(message); dialog.setProgressStyle(style); @@ -175,9 +196,22 @@ public class ProgressDialogFragment extends DialogFragment { // send a cancel message. note that this message will be handled by // KeychainIntentService.onStartCommand, which runs in this thread, // not the service one, and will not queue up a command. - Intent intent = new Intent(getActivity(), KeychainIntentService.class); - intent.setAction(KeychainIntentService.ACTION_CANCEL); - getActivity().startService(intent); + Intent serviceIntent = null; + + switch (mServiceType) { + case CLOUD_IMPORT: + serviceIntent = new Intent(getActivity(), CloudImportService.class); + break; + case KEYCHAIN_INTENT: + serviceIntent = new Intent(getActivity(), KeychainIntentService.class); + break; + default: + //should never happen, unless we forget to include a ServiceType enum case + Log.e(Constants.TAG, "Unrecognized ServiceType at ProgressDialogFragment"); + } + + serviceIntent.setAction(KeychainIntentService.ACTION_CANCEL); + getActivity().startService(serviceIntent); } }); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java index 7b164f2b2..7efb7c5af 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java @@ -19,9 +19,7 @@ package org.sufficientlysecure.keychain.util; import android.app.ProgressDialog; import android.content.Intent; -import android.net.Uri; import android.os.Bundle; -import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.support.v4.app.FragmentActivity; @@ -29,11 +27,9 @@ import android.support.v4.app.FragmentActivity; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.ExportResult; -import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; -import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; -import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; -import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment; +import org.sufficientlysecure.keychain.service.ServiceProgressHandler; +import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; import java.io.File; @@ -102,9 +98,10 @@ public class ExportHelper { intent.putExtra(KeychainIntentService.EXTRA_DATA, data); // Message is received after exporting is done in KeychainIntentService - KeychainIntentServiceHandler exportHandler = new KeychainIntentServiceHandler(mActivity, + ServiceProgressHandler exportHandler = new ServiceProgressHandler(mActivity, mActivity.getString(R.string.progress_exporting), - ProgressDialog.STYLE_HORIZONTAL) { + ProgressDialog.STYLE_HORIZONTAL, + ProgressDialogFragment.ServiceType.KEYCHAIN_INTENT) { public void handleMessage(Message message) { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); From 5bdac11ef84d9ce5990536110280d7857165cf10 Mon Sep 17 00:00:00 2001 From: JesperBK Date: Mon, 23 Mar 2015 11:17:01 +0100 Subject: [PATCH 10/18] Fixed issue where setting a passphrase to null later causes a NullPointerException. --- .../sufficientlysecure/keychain/ui/EncryptTextActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java index c800153ae..dd09e62c3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java @@ -136,7 +136,9 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv @Override public void setPassphrase(Passphrase passphrase) { - mPassphrase.removeFromMemory(); + if (mPassphrase != null) { + mPassphrase.removeFromMemory(); + } mPassphrase = passphrase; } From aa3565b857d088be3d12c1fb9acf052cc6cb7720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 15:38:02 +0100 Subject: [PATCH 11/18] Fix passphrase cache not clearing all passphrases --- .../keychain/service/PassphraseCacheService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java index ee481ad31..93a2bee23 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java @@ -93,7 +93,6 @@ public class PassphraseCacheService extends Service { public static final String EXTRA_MESSENGER = "messenger"; public static final String EXTRA_USER_ID = "user_id"; - private static final int REQUEST_ID = 0; private static final long DEFAULT_TTL = 15; private static final int NOTIFICATION_ID = 1; @@ -314,7 +313,8 @@ public class PassphraseCacheService extends Service { private static PendingIntent buildIntent(Context context, long keyId) { Intent intent = new Intent(BROADCAST_ACTION_PASSPHRASE_CACHE_SERVICE); intent.putExtra(EXTRA_KEY_ID, keyId); - return PendingIntent.getBroadcast(context, REQUEST_ID, intent, + // request code should be unique for each PendingIntent, thus keyId is used + return PendingIntent.getBroadcast(context, (int) keyId, intent, PendingIntent.FLAG_CANCEL_CURRENT); } From 4fb88d0049f98b939687b2d80af0e81a57e7bfec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 15:48:02 +0100 Subject: [PATCH 12/18] Fix transifex config --- .tx/config | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.tx/config b/.tx/config index 77a76ad07..16292a787 100644 --- a/.tx/config +++ b/.tx/config @@ -1,9 +1,6 @@ [main] host = https://www.transifex.com -lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_ -MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl- -rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA, no_NO: no-rNO, - he_IL: iw-rIL, he: iw +lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA, no_NO: no-rNO, he_IL: iw-rIL, he: iw [open-keychain.strings] file_filter = OpenKeychain/src/main/res/values-/strings.xml From 4405e5fbdd18faaceb0bc033cbde73af15bac92d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 15:48:51 +0100 Subject: [PATCH 13/18] Remove remaining html entities in changelog --- OpenKeychain/src/main/res/raw/help_changelog.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenKeychain/src/main/res/raw/help_changelog.md b/OpenKeychain/src/main/res/raw/help_changelog.md index 26e1a4df8..18203b1c5 100644 --- a/OpenKeychain/src/main/res/raw/help_changelog.md +++ b/OpenKeychain/src/main/res/raw/help_changelog.md @@ -96,7 +96,7 @@ * Notification showing cached passphrases * Keys are connected to Android's contacts -

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar ## 2.7 @@ -130,9 +130,9 @@ ## 2.4 -

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): -Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser. * New unified key list * Colorized key fingerprint From e2f27d0f47b5a459183f6641fdc26ced6917d93c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 15:54:48 +0100 Subject: [PATCH 14/18] Pull from transifex --- .../keychain/ui/HelpAboutFragment.java | 2 +- .../keychain/ui/HelpActivity.java | 8 +- .../keychain/ui/HelpMarkdownFragment.java | 10 +- .../src/main/res/raw-bg/help_about.md | 45 +++ .../src/main/res/raw-bg/help_certification.md | 27 ++ .../src/main/res/raw-bg/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-bg/help_start.md | 15 + .../src/main/res/raw-cs/help_about.md | 45 +++ .../src/main/res/raw-cs/help_certification.md | 27 ++ .../src/main/res/raw-cs/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-cs/help_start.md | 15 + .../src/main/res/raw-de/help_about.md | 45 +++ .../src/main/res/raw-de/help_certification.md | 27 ++ .../src/main/res/raw-de/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-de/help_start.md | 15 + .../src/main/res/raw-es/help_about.md | 45 +++ .../src/main/res/raw-es/help_certification.md | 27 ++ .../src/main/res/raw-es/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-es/help_start.md | 15 + .../src/main/res/raw-et/help_about.md | 45 +++ .../src/main/res/raw-et/help_certification.md | 27 ++ .../src/main/res/raw-et/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-et/help_start.md | 15 + .../src/main/res/raw-eu/help_about.md | 45 +++ .../src/main/res/raw-eu/help_certification.md | 27 ++ .../src/main/res/raw-eu/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-eu/help_start.md | 15 + .../src/main/res/raw-fi/help_about.md | 45 +++ .../src/main/res/raw-fi/help_certification.md | 27 ++ .../src/main/res/raw-fi/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-fi/help_start.md | 15 + .../src/main/res/raw-fr/help_about.md | 45 +++ .../src/main/res/raw-fr/help_certification.md | 27 ++ .../src/main/res/raw-fr/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-fr/help_start.md | 15 + .../src/main/res/raw-is/help_about.md | 45 +++ .../src/main/res/raw-is/help_certification.md | 27 ++ .../src/main/res/raw-is/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-is/help_start.md | 15 + .../src/main/res/raw-it/help_about.md | 45 +++ .../src/main/res/raw-it/help_certification.md | 27 ++ .../src/main/res/raw-it/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-it/help_start.md | 15 + .../src/main/res/raw-ja/help_about.md | 45 +++ .../src/main/res/raw-ja/help_certification.md | 27 ++ .../src/main/res/raw-ja/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-ja/help_start.md | 15 + .../src/main/res/raw-nl/help_about.md | 45 +++ .../src/main/res/raw-nl/help_certification.md | 27 ++ .../src/main/res/raw-nl/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-nl/help_start.md | 15 + .../src/main/res/raw-pl/help_about.md | 45 +++ .../src/main/res/raw-pl/help_certification.md | 27 ++ .../src/main/res/raw-pl/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-pl/help_start.md | 15 + .../src/main/res/raw-pt/help_about.md | 45 +++ .../src/main/res/raw-pt/help_certification.md | 27 ++ .../src/main/res/raw-pt/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-pt/help_start.md | 15 + .../src/main/res/raw-ro/help_about.md | 45 +++ .../src/main/res/raw-ro/help_certification.md | 27 ++ .../src/main/res/raw-ro/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-ro/help_start.md | 15 + .../src/main/res/raw-ru/help_about.md | 45 +++ .../src/main/res/raw-ru/help_certification.md | 27 ++ .../src/main/res/raw-ru/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-ru/help_start.md | 15 + .../src/main/res/raw-sl/help_about.md | 45 +++ .../src/main/res/raw-sl/help_certification.md | 27 ++ .../src/main/res/raw-sl/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-sl/help_start.md | 15 + .../src/main/res/raw-sr/help_about.md | 45 +++ .../src/main/res/raw-sr/help_certification.md | 27 ++ .../src/main/res/raw-sr/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-sr/help_start.md | 15 + .../src/main/res/raw-sv/help_about.md | 45 +++ .../src/main/res/raw-sv/help_certification.md | 27 ++ .../src/main/res/raw-sv/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-sv/help_start.md | 15 + .../src/main/res/raw-tr/help_about.md | 45 +++ .../src/main/res/raw-tr/help_certification.md | 27 ++ .../src/main/res/raw-tr/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-tr/help_start.md | 15 + .../src/main/res/raw-uk/help_about.md | 45 +++ .../src/main/res/raw-uk/help_certification.md | 27 ++ .../src/main/res/raw-uk/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-uk/help_start.md | 15 + .../src/main/res/raw-zh-rTW/help_about.md | 45 +++ .../main/res/raw-zh-rTW/help_certification.md | 27 ++ .../src/main/res/raw-zh-rTW/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-zh-rTW/help_start.md | 15 + .../src/main/res/raw-zh/help_about.md | 45 +++ .../src/main/res/raw-zh/help_certification.md | 27 ++ .../src/main/res/raw-zh/help_changelog.md | 268 ++++++++++++++++++ .../src/main/res/raw-zh/help_start.md | 15 + .../src/main/res/values-cs/strings.xml | 20 +- .../src/main/res/values-de/strings.xml | 223 ++++++++++----- .../src/main/res/values-es/strings.xml | 45 ++- .../src/main/res/values-et/strings.xml | 8 +- .../src/main/res/values-eu/strings.xml | 244 +++++++++++++++- .../src/main/res/values-fi/strings.xml | 10 +- .../src/main/res/values-fr/strings.xml | 70 +++-- .../src/main/res/values-it/strings.xml | 9 +- .../src/main/res/values-ja/strings.xml | 65 ++++- .../src/main/res/values-nl/strings.xml | 33 ++- .../src/main/res/values-pl/strings.xml | 9 +- .../src/main/res/values-ru/strings.xml | 15 +- .../src/main/res/values-sl/strings.xml | 11 +- .../src/main/res/values-sv/strings.xml | 72 ++++- .../src/main/res/values-tr/strings.xml | 10 +- .../src/main/res/values-uk/strings.xml | 9 +- .../src/main/res/values-zh-rTW/strings.xml | 8 +- .../src/main/res/values-zh/strings.xml | 22 +- README.md | 2 +- 114 files changed, 8860 insertions(+), 210 deletions(-) create mode 100644 OpenKeychain/src/main/res/raw-bg/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-bg/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-bg/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-bg/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-cs/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-cs/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-cs/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-cs/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-de/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-de/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-de/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-de/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-es/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-es/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-es/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-es/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-et/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-et/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-et/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-et/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-eu/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-eu/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-eu/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-eu/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-fi/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-fi/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-fi/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-fi/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-fr/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-fr/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-fr/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-fr/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-is/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-is/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-is/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-is/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-it/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-it/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-it/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-it/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-ja/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-ja/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-ja/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-ja/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-nl/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-nl/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-nl/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-nl/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-pl/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-pl/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-pl/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-pl/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-pt/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-pt/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-pt/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-pt/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-ro/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-ro/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-ro/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-ro/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-ru/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-ru/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-ru/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-ru/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-sl/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-sl/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-sl/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-sl/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-sr/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-sr/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-sr/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-sr/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-sv/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-sv/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-sv/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-sv/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-tr/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-tr/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-tr/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-tr/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-uk/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-uk/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-uk/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-uk/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_start.md create mode 100644 OpenKeychain/src/main/res/raw-zh/help_about.md create mode 100644 OpenKeychain/src/main/res/raw-zh/help_certification.md create mode 100644 OpenKeychain/src/main/res/raw-zh/help_changelog.md create mode 100644 OpenKeychain/src/main/res/raw-zh/help_start.md diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java index 912caf32f..ac4b94d64 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java @@ -47,7 +47,7 @@ public class HelpAboutFragment extends Fragment { HtmlTextView aboutTextView = (HtmlTextView) view.findViewById(R.id.help_about_text); - // load mardown from raw resource + // load markdown from raw resource try { String html = new Markdown4jProcessor().process( getActivity().getResources().openRawResource(R.raw.help_about)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java index 24136a4b8..6c3336547 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java @@ -64,22 +64,22 @@ public class HelpActivity extends BaseActivity { } Bundle startBundle = new Bundle(); - startBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_start); + startBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_RES, R.raw.help_start); mTabsAdapter.addTab(HelpMarkdownFragment.class, startBundle, getString(R.string.help_tab_start)); Bundle certificationBundle = new Bundle(); - certificationBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_certification); + certificationBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_RES, R.raw.help_certification); mTabsAdapter.addTab(HelpMarkdownFragment.class, certificationBundle, getString(R.string.help_tab_wot)); Bundle faqBundle = new Bundle(); - faqBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_faq); + faqBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_RES, R.raw.help_faq); mTabsAdapter.addTab(HelpMarkdownFragment.class, faqBundle, getString(R.string.help_tab_faq)); Bundle changelogBundle = new Bundle(); - changelogBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_FILE, R.raw.help_changelog); + changelogBundle.putInt(HelpMarkdownFragment.ARG_MARKDOWN_RES, R.raw.help_changelog); mTabsAdapter.addTab(HelpMarkdownFragment.class, changelogBundle, getString(R.string.help_tab_changelog)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java index 69ddf2e99..97d39feb1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java @@ -38,17 +38,17 @@ public class HelpMarkdownFragment extends Fragment { private int mHtmlFile; - public static final String ARG_MARKDOWN_FILE = "htmlFile"; + public static final String ARG_MARKDOWN_RES = "htmlFile"; /** * Create a new instance of HelpHtmlFragment, providing "htmlFile" as an argument. */ - static HelpMarkdownFragment newInstance(int htmlFile) { + static HelpMarkdownFragment newInstance(int markdownRes) { HelpMarkdownFragment f = new HelpMarkdownFragment(); // Supply html raw file input as an argument. Bundle args = new Bundle(); - args.putInt(ARG_MARKDOWN_FILE, htmlFile); + args.putInt(ARG_MARKDOWN_RES, markdownRes); f.setArguments(args); return f; @@ -58,7 +58,7 @@ public class HelpMarkdownFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mActivity = getActivity(); - mHtmlFile = getArguments().getInt(ARG_MARKDOWN_FILE); + mHtmlFile = getArguments().getInt(ARG_MARKDOWN_RES); ScrollView scroller = new ScrollView(mActivity); HtmlTextView text = new HtmlTextView(mActivity); @@ -70,7 +70,7 @@ public class HelpMarkdownFragment extends Fragment { scroller.addView(text); - // load mardown from raw resource + // load markdown from raw resource try { String html = new Markdown4jProcessor().process(getActivity().getResources().openRawResource(mHtmlFile)); text.setHtmlFromString(html, true); diff --git a/OpenKeychain/src/main/res/raw-bg/help_about.md b/OpenKeychain/src/main/res/raw-bg/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-bg/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-bg/help_certification.md b/OpenKeychain/src/main/res/raw-bg/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-bg/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-bg/help_changelog.md b/OpenKeychain/src/main/res/raw-bg/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-bg/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-bg/help_start.md b/OpenKeychain/src/main/res/raw-bg/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-bg/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-cs/help_about.md b/OpenKeychain/src/main/res/raw-cs/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-cs/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-cs/help_certification.md b/OpenKeychain/src/main/res/raw-cs/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-cs/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-cs/help_changelog.md b/OpenKeychain/src/main/res/raw-cs/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-cs/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-cs/help_start.md b/OpenKeychain/src/main/res/raw-cs/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-cs/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-de/help_about.md b/OpenKeychain/src/main/res/raw-de/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-de/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-de/help_certification.md b/OpenKeychain/src/main/res/raw-de/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-de/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-de/help_changelog.md b/OpenKeychain/src/main/res/raw-de/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-de/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-de/help_start.md b/OpenKeychain/src/main/res/raw-de/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-de/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-es/help_about.md b/OpenKeychain/src/main/res/raw-es/help_about.md new file mode 100644 index 000000000..0435b2d5b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-es/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) es una implementación de OpenPGP para Android. + +Licencia: GPLv3+ + +## Desarrolladores + * Dominik Schürmann (Mantenedor) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Librerías + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (Licencia MIT X11) + * [Librería SafeSlinger Exchange](https://github.com/SafeSlingerProject/exchange-android) (Licencia MIT) + * [Librerías de Soporte Android](http://developer.android.com/tools/support-library/index.html) (Licencia Apache v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Licencia Apache v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Licencia Apache v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Licencia Apache v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Licencia Apache v2) + * [ZXing](https://github.com/zxing/zxing) (Licencia Apache v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Licencia Apache v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Diseño estilo Material) (Licencia Apache v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Licencia Apache v2) + * [Snackbar](https://github.com/nispok/snackbar) (Licencia MIT) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Licencia Apache v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Licencia Apache v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Licencia Apache v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-es/help_certification.md b/OpenKeychain/src/main/res/raw-es/help_certification.md new file mode 100644 index 000000000..16746dd4c --- /dev/null +++ b/OpenKeychain/src/main/res/raw-es/help_certification.md @@ -0,0 +1,27 @@ + +## Confirmación de clave +Sin confirmación, no puede estar seguro de si una clave corresponde realmente a una persona específica. +La forma más simple de confirmar una clave es escanear el código QR o intercambiarlo vía NFC. +Para confirmar claves entre más de dos personas, sugerimos usar el método de intercambio de claves disponible para sus claves. + +## Estado de la clave + + +Confirmada: Ya ha confirmado esta clave, ej. al escanear el código QR. + +No confirmada: Esta clave no ha sido confirmada aún. No puede estar seguro de si la clave corresponde realmente a una persona específica. + +Caducada: Esta clave ya no es válida. Sólo el propietario puede extender su validez. + +Revocada: Esta clave ya no es válida. Ha sido revocada por su propietario. + +## Información avanzada +Una "confirmación de clave" en OpenKeychain se implementa al crear una certificación de acuerdo al estándar OpenPGP. +Esta certificación es una ["certificación genérica (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) descrita en el estándar por: +"El emisor de esta certificación no hace ninguna afirmación particular acerca de lo bien o mal que el certificador ha comprobado que el propietario de la clave sea de hecho la persona descrita por la identificación del usuario." + +Tradicionalmente, las certificaciones (también con niveles más altos de certificación, tales como "certificaciones positivas" (0x13)) se organizan en la Web of Trust de OpenPGP. +Nuestro modelo de confirmación de clave es un concepto mucho más simple para evitar problemas comunes de usabilidad relacionados con esta Web of Trust. +Asumimos que las claves están verificadas sólo hasta cierto grado, que no obstante es suficientemente usable para ejecutarse "sobre la marcha". +Tampoco implementamos firmas de confianza (potencialmente transitivas) o una base de datos ownertrust (de valores de confianza para el propietario) como en GnuPG. +Más aún, las claves que contengan al menos una identificación de usuario certificada por una clave de confianza se marcarán como "confirmadas" en los listados de claves. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-es/help_changelog.md b/OpenKeychain/src/main/res/raw-es/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-es/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-es/help_start.md b/OpenKeychain/src/main/res/raw-es/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-es/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-et/help_about.md b/OpenKeychain/src/main/res/raw-et/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-et/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-et/help_certification.md b/OpenKeychain/src/main/res/raw-et/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-et/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-et/help_changelog.md b/OpenKeychain/src/main/res/raw-et/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-et/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-et/help_start.md b/OpenKeychain/src/main/res/raw-et/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-et/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-eu/help_about.md b/OpenKeychain/src/main/res/raw-eu/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-eu/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-eu/help_certification.md b/OpenKeychain/src/main/res/raw-eu/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-eu/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-eu/help_changelog.md b/OpenKeychain/src/main/res/raw-eu/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-eu/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-eu/help_start.md b/OpenKeychain/src/main/res/raw-eu/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-eu/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fi/help_about.md b/OpenKeychain/src/main/res/raw-fi/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fi/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fi/help_certification.md b/OpenKeychain/src/main/res/raw-fi/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fi/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fi/help_changelog.md b/OpenKeychain/src/main/res/raw-fi/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fi/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fi/help_start.md b/OpenKeychain/src/main/res/raw-fi/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fi/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_about.md b/OpenKeychain/src/main/res/raw-fr/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fr/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_certification.md b/OpenKeychain/src/main/res/raw-fr/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fr/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_changelog.md b/OpenKeychain/src/main/res/raw-fr/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fr/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_start.md b/OpenKeychain/src/main/res/raw-fr/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-fr/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-is/help_about.md b/OpenKeychain/src/main/res/raw-is/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-is/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-is/help_certification.md b/OpenKeychain/src/main/res/raw-is/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-is/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-is/help_changelog.md b/OpenKeychain/src/main/res/raw-is/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-is/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-is/help_start.md b/OpenKeychain/src/main/res/raw-is/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-is/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-it/help_about.md b/OpenKeychain/src/main/res/raw-it/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-it/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-it/help_certification.md b/OpenKeychain/src/main/res/raw-it/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-it/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-it/help_changelog.md b/OpenKeychain/src/main/res/raw-it/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-it/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-it/help_start.md b/OpenKeychain/src/main/res/raw-it/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-it/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ja/help_about.md b/OpenKeychain/src/main/res/raw-ja/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ja/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ja/help_certification.md b/OpenKeychain/src/main/res/raw-ja/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ja/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ja/help_changelog.md b/OpenKeychain/src/main/res/raw-ja/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ja/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ja/help_start.md b/OpenKeychain/src/main/res/raw-ja/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ja/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-nl/help_about.md b/OpenKeychain/src/main/res/raw-nl/help_about.md new file mode 100644 index 000000000..15d3796e9 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-nl/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is een OpenPGP implementatie voor Android. + +Licentie: GPLv3+ + +## Ontwikkelaars + * Dominik Schürmann (beheerder) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Bibliotheken + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 licentie) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT licentie) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache licentie v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache licentie v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache licentie v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache licentie v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache licentie v2) + * [ZXing](https://github.com/zxing/zxing) (Apache licentie v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache licentie v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache licentie v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache licentie v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT licentie) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache licentie v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache licentie v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache licentie v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-nl/help_certification.md b/OpenKeychain/src/main/res/raw-nl/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-nl/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-nl/help_changelog.md b/OpenKeychain/src/main/res/raw-nl/help_changelog.md new file mode 100644 index 000000000..96dcb5241 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-nl/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integratie van QR-scanner (nieuwe machtigingen vereist) + * Sleutelaanmaakwizard verbeterd + * Probleem met ontbrekende contacten na synchronisatie opgelost + * Vereist Android 4 + * Nieuw design voor sleutelscherm + * Cryptovoorkeuren vereenvoudigd, betere selectie van veilige ciphers + * API: ondertekeningen ontkoppeld, vrije selectie van ondertekeningssleutel, ... + * Oplossing voor probleem waarbij sommige geldige sleutels weergegeven werden als ingetrokken of verlopen + * Aanvaard geen ondertekeningen door verlopen of ingetrokken subsleutels + * Ondersteuning voor Keybase.io in geavanceerde modus + + +## 3.1.2 + + * Oplossing voor exporteren van sleutels naar bestanden (deze keer echt) + + +## 3.1.1 + + * Oplossing voor exporteren van sleutels naar bestanden (ze werden maar gedeeltelijk geschreven) + * Oplossing voor crash op Android 2.3 + + +## 3.1 + + * Oplossing voor crash op Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Grote sleutelimportaties worden beter behandeld + * Subsleutelselectie verbeterd + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Oplossing voor gebroken sleutels in 2.9.1 + * Yubikey-ontsleuteling werkt nu via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Oplossing voor crashes geïntroduceerd in v2.8 + * Experimentele ondersteuning voor ECC + * Experimentele ondersteuning voor Yubikey (alleen ondertekenen met geïmporteerde sleutels) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Enkele oplossingen voor regressies + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix voor crash bij upgraden van oude versies + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API updates, voorbereiding voor K-9 Mail integratie + + +## 2.1 + + * Veel bugfixes + * Nieuwe API voor ontwikkelaars + * PRNG bug fix door Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Probleem met ondertekeningsverificatie van text met achterlopende newline opgelost + * Meer opties voor wachtwoord cachetijd (20, 40, 60 min.) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Een andere crash veroorzaakt door een SDK-bug met de query builder opgelost + + +## 1.0.3 + + * Crashes tijdens versleuteling/ondertekenen en mogelijk sleutelexportatie opgelost + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account lijsten was stuk in 1.0.0, weer opgelost + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-nl/help_start.md b/OpenKeychain/src/main/res/raw-nl/help_start.md new file mode 100644 index 000000000..83e27bf97 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-nl/help_start.md @@ -0,0 +1,15 @@ + +## Hoe activeer ik OpenKeychain in K-9 Mail? +Volg deze stappen om OpenKeychain te gebruiken met K-9 Mail: + 1. Open K-9 Mail en druk lang op de account waarmee je OpenKeychain wil gebruiken. + 2. Selecteer "Accountinstellingen", scroll helemaal naar beneden en klik op "Cryptografie". + 3. Klik op "OpenPGP-provider" en selecteer OpenKeychain in de lijst. + +## Ik heb een bug in OpenKeychain gevonden! +Rapporteer de bug met de [problementracker van OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Bijdragen +Als je ons wil helpen om OpenKeychain te ontwikkelen door code bij te dragen, [volg dan onze kleine gids op GitHub](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Vertalingen +Help OpenKeychain te vertalen! Iedereen kan deelnemen op [OpenKeychain op Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pl/help_about.md b/OpenKeychain/src/main/res/raw-pl/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pl/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pl/help_certification.md b/OpenKeychain/src/main/res/raw-pl/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pl/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pl/help_changelog.md b/OpenKeychain/src/main/res/raw-pl/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pl/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pl/help_start.md b/OpenKeychain/src/main/res/raw-pl/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pl/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pt/help_about.md b/OpenKeychain/src/main/res/raw-pt/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pt/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pt/help_certification.md b/OpenKeychain/src/main/res/raw-pt/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pt/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pt/help_changelog.md b/OpenKeychain/src/main/res/raw-pt/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pt/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-pt/help_start.md b/OpenKeychain/src/main/res/raw-pt/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-pt/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ro/help_about.md b/OpenKeychain/src/main/res/raw-ro/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ro/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ro/help_certification.md b/OpenKeychain/src/main/res/raw-ro/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ro/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ro/help_changelog.md b/OpenKeychain/src/main/res/raw-ro/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ro/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ro/help_start.md b/OpenKeychain/src/main/res/raw-ro/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ro/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ru/help_about.md b/OpenKeychain/src/main/res/raw-ru/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ru/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ru/help_certification.md b/OpenKeychain/src/main/res/raw-ru/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ru/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ru/help_changelog.md b/OpenKeychain/src/main/res/raw-ru/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ru/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-ru/help_start.md b/OpenKeychain/src/main/res/raw-ru/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-ru/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sl/help_about.md b/OpenKeychain/src/main/res/raw-sl/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sl/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sl/help_certification.md b/OpenKeychain/src/main/res/raw-sl/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sl/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sl/help_changelog.md b/OpenKeychain/src/main/res/raw-sl/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sl/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sl/help_start.md b/OpenKeychain/src/main/res/raw-sl/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sl/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sr/help_about.md b/OpenKeychain/src/main/res/raw-sr/help_about.md new file mode 100644 index 000000000..2ffe80e3b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sr/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[Отворени кључарник (OpenKeychain)](http://www.openkeychain.org) је ОпенПГП имплементација за Андроид. + +Лиценца: ГПЛв3+ + +## Програмери + * Dominik Schürmann (главни програмер) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar „kalkin“ Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * „mar-v-in“ + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * „Senecaso“ + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (АПГ 1.x) + * Tim Bray + * Vincent Breitmoser + +## Библиотеке + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (МИТ Икс11 лиценца) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (МИТ лиценца) + * [Андроидове библиотеке подршке](http://developer.android.com/tools/support-library/index.html) (Апачи лиценца в2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Апачи лиценца в2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Апачи лиценца в2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Апачи лиценца в2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Апачи лиценца в2) + * [ZXing](https://github.com/zxing/zxing) (Апачи лиценца в2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Апачи лиценца в2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Материјал дизајн) (Апачи лиценца в2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Апачи лиценца в2) + * [Snackbar](https://github.com/nispok/snackbar) (МИТ лиценца) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Апачи лиценца в2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Апачи лиценца в2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Апачи лиценца в2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sr/help_certification.md b/OpenKeychain/src/main/res/raw-sr/help_certification.md new file mode 100644 index 000000000..03af89a61 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sr/help_certification.md @@ -0,0 +1,27 @@ + +## Потврда кључа +Без потврде не можете бити сигурни да ли кључ заиста одговара одређеној особи. +Најједноставнији начин потврђивања кључа је очитавање бар-кôда или размена преко НФЦ. +Да бисте потврдили кључеве између две или више особа, предлажемо да користите методу размене кључева која је доступна за ваш кључ. + +## Стање кључа + + +Потврђен: Већ сте потврдили овај кључ, нпр. очитавањем бар-кôда. + +Непотврђен: овај кључ још није потврђен. Не можете бити сигурни да ли кључ заиста одговара одређеној особи. + +Истекао: овај кључ више није исправан. Само му власник може продужити ваљаност. + +Опозван: овај кључ више није исправан. Власник је опозвао кључ. + +## Напредни подаци +„Потврда кључа“ у Отвореном кључарнику се реализује прављењем сертификације по ОпенПГП стандарду. +Ова сертификација је [„општа сертификација (0x10)“](http://tools.ietf.org/html/rfc4880#section-5.2.1) описана стандардом у: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sr/help_changelog.md b/OpenKeychain/src/main/res/raw-sr/help_changelog.md new file mode 100644 index 000000000..3b0dbcc05 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sr/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Материјал дизајн + * Интеграција читача бар-кôда (захтева нове дозволе) + * Побољшан чаробњак прављења кључа + * Поправка недостајућих контаката након синхронизације + * Захтева Андроид 4 + * Редизајн екрана кључа + * Поједностављење поставки криптографије, бољи избор безбедних шифрара + * АПИ: одвојени потписи, слободан избор кључа за потпис,... + * Поправка: неки од важећих кључева су били приказивани као опозвани или истекли + * Не прихаћај потписе од истеклих или опозваних кључева + * Keybase.io подршка у напредном приказу + + +## 3.1.2 + + * Поправка извоза кључева у фајлове (сада заиста) + + +## 3.1.1 + + * Поправка извоза кључева у фајлове (били су уписивани делимично) + * Поправка рушења на Андроиду 2.3 + + +## 3.1 + + * Поправка рушења на Андроиду 5 + * Нови екран за оверавање + * Сигурна размена директно са списка кључева (Сејфслингер библиотека) + * Нови програмски ток за бар-кôд + * Редизајн екрана дешифровања + * Нова употреба икона и боја + * Поправка увоза тајних кључева са „Symantec Encryption Desktop“ + * ИД-ови поткључева на Јубикључу сада се исправно проверавају + + +## 3.0.1 + + * Боље руковање увозима великих кључева + * Побољшан одабир поткључева + + +## 3.0 + + * Пуна подршка за прављење и дешифровање Јубикључ потписа! + * Предлози за инсталабилне компатибилне апликације у списку апликација + * Нови дизајн за екране дешифровања + * Много поправки за увоз кључа, такође поправљени огољени кључеви + * Поштовање и приказ заставица аутентификације кључа + * Корисничко сучеље за прављење прилагођених кључева + * Поправка корисничког ид-а сертификата опозива + * Нова клауд претрага (тражи преко традиционални сервера кључева и keybase.io) + * Подршка за огољивање кључева унутар Отвореног кључарника + + +## 2.9.2 + + * Поправка кључева покварених у 2.9.1 + * Јубикључ дешифровање сада ради преко АПИ-ја + + +## 2.9.1 + + * Подела екрана шифровања на два дела + * Поправка руковања заставицама кључа (подршка за Mailvelope 0.7 кључеве) + * Побољшано руковање лозинкама + * Дељење кључа преко Сејфслингера (SafeSlinger) + * Јубикључ: опција за дозволу осталих ПИН-ова, тренутно ради само потписивање преко ОпенПГП АПИ-ја, не унутар Отвореног кључарника + * Поправка употребе огољених кључева + * СХА256 подразумевано због компатибилности + * Интент АПИ је измењен, погледајте https://github.com/open-keychain/open-keychain/wiki/Intent-API + * ОпенПГП АПИ сада рукује опозваним/истеклим кључевима и враћа све корисничке ид-ове + + +## 2.9 + + * Поправка рушења која су се појавила у в2.8 + * Експериментална подршка за ЕЦЦ + * Експериментална подршка за Јубикључ (Yubikey) (само пријава са увезеним кључевима) + + +## 2.8 + + * Толико много грешака је поправљено у овом издању па се базирамо на главне нове функције + * Уређивање кључа: сјајан нови дизајн, опозив кључа + * Увоз кључа: сјајан нови дизајн, сигурне везе на сервере кључева преко hkps, разлучивање сервера кључева преко ДНС СРВ записа + * Нови почетни екран + * Нови екран за прављење кључа: аутоматско довршавање имена и е-адресе на основу ваших личних Андроид налога + * Шифровање фајла: сјајан нови дизајн, подршка за шифровање више фајлова + * Нове иконе за приказ стања кључа (Бренан Новак (Brennan Novak)) + * Важна поправка: увоз великих збирки кључева из фајла је сада могуће + * Обавештење које показује кеширане лозинке + * Кључеви су повезани са Андроидовим контактима + +

Ово издање не би било могуће без рада Винсента Брајтмозера (ГСоЦ 2014), „mar-v-in“-а (ГСоЦ 2014), Данијела Алберта (Daniel Albert), Арта Катијана (Art O Cathain), Данијела Хаса, Тима Бреја, „Thialfihar“-а

+ +## 2.7 + + * Љубичасто! (Доминик, Винсент) + * Нови дизајн приказа кључа (Доминик, Винсент) + * Нова равна Андроид дугмад (Доминик, Винсент) + * Поправке АПИ-ја (Доминик) + * Keybase.io увоз (Тим Бреј (Tim Bray)) + + +## 2.6.1 + + * Поправке неких регресивних грешака + + +## 2.6 + + * Овере кључа (захваљујући Винсенту Брајтмозеру) + * Подршка за ГнуПГ деломично тајне кључеве (захваљујући Винсенту Брајтмозеру) + * Нови дизајн за оверу потписа + * Подесива дужина кључа (захваљујући Грегу Вичаку) + * Поправка функције дељења из других апликација + + +## 2.5 + + * Поправка дешифровања симетричних ОпенПГП порука/фајлова + * Прерађен екран уређивања кључа (захваљујући Ешу Хјуџесу) + * Нови модерни дизајн за екране шифровања/дешифровања + * ОпенПГП АПИ издање 3 (вишеструки АПИ налози, унутрашње поправке, потрага кључа) + + +## 2.4 +

Хвала свим апликантима Гугловог Лета Ко̂да 2014 који су учинили ово издање богатим у могућностима и без грешака! +Осим неколицине малих закрпа, значајан број закрпа направили су следећи људи (по абецедном реду): +Данијел Хаман (Daniel Hammann), Данијел Хас (Daniel Haß), Грег Вичак (Greg Witczak), Мируђин Бакши (Miroojin Bakshi), Никил Питер Раж (Nikhil Peter Raj), Паул Сарбиновски (Paul Sarbinowski), Срирам Бујапати (Sreeram Boyapati), Винсент Брајтмозер (Vincent Breitmoser).

+ + * Нови обједињени списак кључева + * Обојени отисак прста кључа + * Подршка за портове сервера кључева + * Искључи могућност стварања слабих кључева + * Много унутрашњег рада на АПИ-ју + * Овери корисничке ид + * Упит сервера кључева заснован на машински читљивом излазу + * Закључавање навигационе фиоке на таблетима + * Предлози за е-адресе на прављењу кључева + * Претрага спискова јавних кључева + * И још много побољшања и поправки… + + +## 2.3.1 + + * Брза поправка рушења приликом надоградње са претходних издања + + +## 2.3 + + * Уклоњен непотребан извоз јавних кључева приликом извоза тајног кључа (захваљујући Ешу Хјуџесу) + * Поправљено постављање датума истицања кључева (захваљујући Ешу Хјуџесу) + * Још унутрашњих поправки уређивања кључа (захваљујући Ешу Хјуџесу) + * Упит сервера кључева директно са екрана увоза + * Поправка распореда и стила дијалога на Андроиду 2.2-3.0 + * Поправка рушења на кључевима са празним корисничким ид + * Поправка рушења и празних спискова након повратка са екрана потписа + * „Bouncy Castle“ (криптографска библиотека) ажурирана са 1.47 на издање 1.50 и изграђена од изворног ко̂да + * Поправка учитавања кључа са екрана потписа + + +## 2.2 + + * Нови дизајн са навигационом фиоком + * Нови дизајн списка јавних кључева + * Нови приказ јавног кључа + * Поправке грешака увоза кључева + * Унакрсна сертификација кључева (захваљујући Ешу Хјуџесу) + * Исправно руковање УТФ-8 лозинкама (захваљујући Ешу Хјуџесу (Ash Hughes)) + * Прво издање са новим језицима (захваљујући доприносиоцима са Трансифекса) + * Поправљено и побољшано дељење кључева преко бар-кôдова + * Овера потписа пакета за АПИ + + +## 2.1.1 + + * Ажурирања АПИ-ја, припрема за интеграцију у К-9 Пошту + + +## 2.1 + + * Много поправљних грешака + * Нови АПИ за програмере + * Гуглова поправка ПРНГ грешке + + +## 2.0 + + * Комплетан редизајн + * Подела кључева преко бар-кôдова, НФЦ сноп + * Потпис кључева + * Учитавање кључева на сервер + * Поправке за проблеме увоза + * Нови АИДЛ АПИ + + +## 1.0.8 + + * Основна подршка за сервер кључева + * App2sd + * Још избора за кеш лозинке: 1, 2, 4, 8 сати + * Преводи: норвешки (Сандер Даниелсен (Sander Danielsen)), кинески (Жанг Фредрик (Zhang Fredrick)) + * Поправке грешака + * Оптимизације + + +## 1.0.7 + + * Решен проблем овере потписа текста са пратећим новим редом + * Још опција за време живота кеша лозинке (20, 40, 60 минута) + + +## 1.0.6 + + * Поправљено рушење при додавању налога на Фроју + * Сигурно брисање фајлова + * Опција за брисање фајла кључа након увоза + * Проточно шифровање/дешифровање (галерија, итд.) + * Нове опције (језик, форсирање в3 потписа) + * Промене сучеља + * Поправке грешака + + +## 1.0.5 + + * Немачки и талијански преводи + * Много мањи пакет, захваљујући редукованим БЦ изворима + * Нови ГУИ за поставке + * Подешен распоред за локализацију + * Поправка грешке потписа + + +## 1.0.4 + + * Поправљено још једно рушење узроковано неком СДК грешком у креатору упита + + +## 1.0.3 + + * Поправљено рушење током шифровања/потписивања и можда извоза кључева + + +## 1.0.2 + + * Могућност филтрирања списка кључева + * Паметнији предизбор кључева за шифровање + * Ново Интент руковање за VIEW и SEND, дозвољава да фајлови буду шифровани/дешифровани унутар менаџера фајлова + * Поправке и додатне могућности (предизбор кључа) за К-9 Пошту, ново бета издање доступно + + +## 1.0.1 + + * Испис налога ГМејла је био покварен у 1.0.0, поправљен поново + + +## 1.0.0 + + * Интеграција у К-9 Пошту, АПГ подржава бета издања К-9 Поште + * Подршка за још менаџера фајлова (укључујући АСТРО) + * Словеначки превод + * Нова база података, много бржа, мањи утрошак меморије + * Дефинисани „Интент“ и давалац садржаја за друге апликације + * Поправке грешака \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sr/help_start.md b/OpenKeychain/src/main/res/raw-sr/help_start.md new file mode 100644 index 000000000..f531fdc82 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sr/help_start.md @@ -0,0 +1,15 @@ + +## Како да активирам Отворени кључарник у К-9 Пошти? +Да бисте користили Отворени кључарник са К-9 Поштом, пратите ове кораке: + 1. Отворите К-9 Пошту и тапните и задржите на налог са којим желите да користите Отворени кључарник. + 2. Изаберите „поставке налога“ и клизајте на дно и тапните на „криптографија“. + 3. Тапните на „ОпенПГП апликација“ и изаберите Отворени кључарник са списка. + +## Пронађох грешку у Отвореном кључарнику! +Пријавите грешку на [пратиоцу проблема Отвореног кључарника](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Доприноси +Ако желите да нам помогнете у развоју Отвореног кључарника доприношењем кôда, [пратите наш мали водич на Гитхабу](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Преводи +Помозите превођењем Отвореног кључарника! Било ко може да учествује на [пројекту Отвореног кључарника на Трансифексу](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sv/help_about.md b/OpenKeychain/src/main/res/raw-sv/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sv/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sv/help_certification.md b/OpenKeychain/src/main/res/raw-sv/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sv/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sv/help_changelog.md b/OpenKeychain/src/main/res/raw-sv/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sv/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-sv/help_start.md b/OpenKeychain/src/main/res/raw-sv/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-sv/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-tr/help_about.md b/OpenKeychain/src/main/res/raw-tr/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-tr/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-tr/help_certification.md b/OpenKeychain/src/main/res/raw-tr/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-tr/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-tr/help_changelog.md b/OpenKeychain/src/main/res/raw-tr/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-tr/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-tr/help_start.md b/OpenKeychain/src/main/res/raw-tr/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-tr/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-uk/help_about.md b/OpenKeychain/src/main/res/raw-uk/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-uk/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-uk/help_certification.md b/OpenKeychain/src/main/res/raw-uk/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-uk/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-uk/help_changelog.md b/OpenKeychain/src/main/res/raw-uk/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-uk/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-uk/help_start.md b/OpenKeychain/src/main/res/raw-uk/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-uk/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_about.md b/OpenKeychain/src/main/res/raw-zh-rTW/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh-rTW/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_certification.md b/OpenKeychain/src/main/res/raw-zh-rTW/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh-rTW/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.md b/OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_start.md b/OpenKeychain/src/main/res/raw-zh-rTW/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh-rTW/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh/help_about.md b/OpenKeychain/src/main/res/raw-zh/help_about.md new file mode 100644 index 000000000..d6a8eca93 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh/help_about.md @@ -0,0 +1,45 @@ + +[http://www.openkeychain.org](http://www.openkeychain.org) + +[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. + +License: GPLv3+ + +## Developers + * Dominik Schürmann (Maintainer) + * Art O Cathain + * Ash Hughes + * Brian C. Barnes + * Bahtiar 'kalkin' Gadimov + * Daniel Albert + * Daniel Hammann + * Daniel Haß + * Greg Witczak + * 'mar-v-in' + * Markus Doits + * Miroojin Bakshi + * Nikhil Peter Raj + * Paul Sarbinowski + * 'Senecaso' + * Signe Rüsch + * Sreeram Boyapati + * Thialfihar (APG 1.x) + * Tim Bray + * Vincent Breitmoser + +## Libraries + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) + * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) + * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) + * [ZXing](https://github.com/zxing/zxing) (Apache License v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) + * [Snackbar](https://github.com/nispok/snackbar) (MIT License) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh/help_certification.md b/OpenKeychain/src/main/res/raw-zh/help_certification.md new file mode 100644 index 000000000..8da27e8e0 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh/help_certification.md @@ -0,0 +1,27 @@ + +## Key Confirmation +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +## Key Status + + +Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. + +Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. + +Expired: This key is no longer valid. Only the owner can extend its validity. + +Revoked: This key is no longer valid. It has been revoked by its owner. + +## Advanced Information +A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." + +Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh/help_changelog.md b/OpenKeychain/src/main/res/raw-zh/help_changelog.md new file mode 100644 index 000000000..e9d61d0f3 --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh/help_changelog.md @@ -0,0 +1,268 @@ + +## 3.2beta2 + + * Material design + * Integration of QR Scanner (New permissions required) + * Improved key creation wizard + * Fix missing contacts after sync + * Requires Android 4 + * Redesigned key screen + * Simplify crypto preferences, better selection of secure ciphers + * API: Detached signatures, free selection of signing key,... + * Fix: Some valid keys were shown revoked or expired + * Don't accept signatures by expired or revoked subkeys + * Keybase.io support in advanced view + + +## 3.1.2 + + * Fix key export to files (now for real) + + +## 3.1.1 + + * Fix key export to files (they were written partially) + * Fix crash on Android 2.3 + + +## 3.1 + + * Fix crash on Android 5 + * New certify screen + * Secure Exchange directly from key list (SafeSlinger library) + * New QR Code program flow + * Redesigned decrypt screen + * New icon usage and colors + * Fix import of secret keys from Symantec Encryption Desktop + * Subkey IDs on Yubikeys are now checked correctly + + +## 3.0.1 + + * Better handling of large key imports + * Improved subkey selection + + +## 3.0 + + * Full support for Yubikey signature generation and decryption! + * Propose installable compatible apps in apps list + * New design for decryption screens + * Many fixes for key import, also fixes stripped keys + * Honor and display key authenticate flags + * User interface to generate custom keys + * Fixing user id revocation certificates + * New cloud search (searches over traditional keyservers and keybase.io) + * Support for stripping keys inside OpenKeychain + + +## 2.9.2 + + * Fix keys broken in 2.9.1 + * Yubikey decryption now working via API + + +## 2.9.1 + + * Split encrypt screen into two + * Fix key flags handling (now supporting Mailvelope 0.7 keys) + * Improved passphrase handling + * Key sharing via SafeSlinger + * Yubikey: preference to allow other PINs, currently only signing via the OpenPGP API works, not inside of OpenKeychain + * Fix usage of stripped keys + * SHA256 as default for compatibility + * Intent API has changed, see https://github.com/open-keychain/open-keychain/wiki/Intent-API + * OpenPGP API now handles revoked/expired keys and returns all user ids + + +## 2.9 + + * Fixing crashes introduced in v2.8 + * Experimental ECC support + * Experimental Yubikey support (signing-only with imported keys) + + +## 2.8 + + * So many bugs have been fixed in this release that we focus on the main new features + * Key edit: awesome new design, key revocation + * Key import: awesome new design, secure keyserver connections via hkps, keyserver resolving via DNS SRV records + * New first time screen + * New key creation screen: autocompletion of name and email based on your personal Android accounts + * File encryption: awesome new design, support for encrypting multiple files + * New icons to show status of key (by Brennan Novak) + * Important bug fix: Importing of large key collections from a file is now possible + * Notification showing cached passphrases + * Keys are connected to Android's contacts + +

This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar

+ +## 2.7 + + * Purple! (Dominik, Vincent) + * New key view design (Dominik, Vincent) + * New flat Android buttons (Dominik, Vincent) + * API fixes (Dominik) + * Keybase.io import (Tim Bray) + + +## 2.6.1 + + * Some fixes for regression bugs + + +## 2.6 + + * Key certifications (thanks to Vincent Breitmoser) + * Support for GnuPG partial secret keys (thanks to Vincent Breitmoser) + * New design for signature verification + * Custom key length (thanks to Greg Witczak) + * Fix share-functionality from other apps + + +## 2.5 + + * Fix decryption of symmetric OpenPGP messages/files + * Refactored key edit screen (thanks to Ash Hughes) + * New modern design for encrypt/decrypt screens + * OpenPGP API version 3 (multiple api accounts, internal fixes, key lookup) + + +## 2.4 +

Thanks to all applicants of Google Summer of Code 2014 who made this release feature rich and bug free! +Besides several small patches, a notable number of patches are made by the following people (in alphabetical order): +Daniel Hammann, Daniel Haß, Greg Witczak, Miroojin Bakshi, Nikhil Peter Raj, Paul Sarbinowski, Sreeram Boyapati, Vincent Breitmoser.

+ + * New unified key list + * Colorized key fingerprint + * Support for keyserver ports + * Deactivate possibility to generate weak keys + * Much more internal work on the API + * Certify user ids + * Keyserver query based on machine-readable output + * Lock navigation drawer on tablets + * Suggestions for emails on creation of keys + * Search in public key lists + * And much more improvements and fixes… + + +## 2.3.1 + + * Hotfix for crash when upgrading from old versions + + +## 2.3 + + * Remove unnecessary export of public keys when exporting secret key (thanks to Ash Hughes) + * Fix setting expiry dates on keys (thanks to Ash Hughes) + * More internal fixes when editing keys (thanks to Ash Hughes) + * Querying keyservers directly from the import screen + * Fix layout and dialog style on Android 2.2-3.0 + * Fix crash on keys with empty user ids + * Fix crash and empty lists when coming back from signing screen + * Bouncy Castle (cryptography library) updated from 1.47 to 1.50 and build from source + * Fix upload of key from signing screen + + +## 2.2 + + * New design with navigation drawer + * New public key list design + * New public key view + * Bug fixes for importing of keys + * Key cross-certification (thanks to Ash Hughes) + * Handle UTF-8 passwords properly (thanks to Ash Hughes) + * First version with new languages (thanks to the contributors on Transifex) + * Sharing of keys via QR Codes fixed and improved + * Package signature verification for API + + +## 2.1.1 + + * API Updates, preparation for K-9 Mail integration + + +## 2.1 + + * Lots of bug fixes + * New API for developers + * PRNG bug fix by Google + + +## 2.0 + + * Complete redesign + * Share public keys via QR codes, NFC beam + * Sign keys + * Upload keys to server + * Fixes import issues + * New AIDL API + + +## 1.0.8 + + * Basic keyserver support + * App2sd + * More choices for passphrase cache: 1, 2, 4, 8, hours + * Translations: Norwegian (thanks, Sander Danielsen), Chinese (thanks, Zhang Fredrick) + * Bugfixes + * Optimizations + + +## 1.0.7 + + * Fixed problem with signature verification of texts with trailing newline + * More options for passphrase cache time to live (20, 40, 60 mins) + + +## 1.0.6 + + * Account adding crash on Froyo fixed + * Secure file deletion + * Option to delete key file after import + * Stream encryption/decryption (gallery, etc.) + * New options (language, force v3 signatures) + * Interface changes + * Bugfixes + + +## 1.0.5 + + * German and Italian translation + * Much smaller package, due to reduced BC sources + * New preferences GUI + * Layout adjustment for localization + * Signature bugfix + + +## 1.0.4 + + * Fixed another crash caused by some SDK bug with query builder + + +## 1.0.3 + + * Fixed crashes during encryption/signing and possibly key export + + +## 1.0.2 + + * Filterable key lists + * Smarter pre-selection of encryption keys + * New Intent handling for VIEW and SEND, allows files to be encrypted/decrypted out of file managers + * Fixes and additional features (key preselection) for K-9 Mail, new beta build available + + +## 1.0.1 + + * GMail account listing was broken in 1.0.0, fixed again + + +## 1.0.0 + + * K-9 Mail integration, APG supporting beta build of K-9 Mail + * Support of more file managers (including ASTRO) + * Slovenian translation + * New database, much faster, less memory usage + * Defined Intents and content provider for other apps + * Bugfixes \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-zh/help_start.md b/OpenKeychain/src/main/res/raw-zh/help_start.md new file mode 100644 index 000000000..1641f913b --- /dev/null +++ b/OpenKeychain/src/main/res/raw-zh/help_start.md @@ -0,0 +1,15 @@ + +## How do I activate OpenKeychain in K-9 Mail? +To use OpenKeychain with K-9 Mail, you want to follow these steps: + 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. + 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. + +## I found a bug in OpenKeychain! +Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). + +## Contribute +If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). + +## Translations +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/values-cs/strings.xml b/OpenKeychain/src/main/res/values-cs/strings.xml index ab8b00eca..2434c91df 100644 --- a/OpenKeychain/src/main/res/values-cs/strings.xml +++ b/OpenKeychain/src/main/res/values-cs/strings.xml @@ -6,6 +6,8 @@ Vybrat klíče Vybrat svůj klíč + Zašifrovat + Zašifrovat Rozšifrovat Odemknout klíč Přidat podklíč @@ -17,6 +19,7 @@ Sdílet otisk s... Sdílet klíč s... Sdílet soubor s... + Sdílet text s... Zašifrovat do souboru Rozšifrovat do souboru Importovat klíče @@ -25,20 +28,26 @@ Exportovat klíče Klíč nebyl nalezen Nahrát na keyserver + Potvrdit klíč Detaily klíče Nápověda Log Vytvořit klíč Vyměnit klíče Další informace ke klíči + Klíče + Smazat Váš klíč \'%s\'? + Exportovat log Identity + Důvěřujete tomuto klíči? Podklíče Vyhledávání v Cloud službě Obecné Výchozí hodnoty Pokročilé Cache hesel + Potvrdit Akce Klíč Synchronizovat klíč @@ -47,6 +56,8 @@ Soubory Text Certifikáty + Zašifrovat + Rozšifrovat Dešifrovat, ověřit a uložit soubor Zaširovat a uložit soubor @@ -71,7 +82,6 @@ Nápověda Exportovat do souboru Smazat klíč - Vytvořit moje klíče Importovat ze souboru Hledat Beam settings @@ -99,7 +109,6 @@ Používá základní PIN (123456) pro přístup k YubiKey přes NFC Podepsáno: Zašifrovat pro: - Smazat soubor po zašifrování Smazat po rozšifrování Šifrovací algoritmus Hashovací algoritmus @@ -173,7 +182,7 @@ Zadat PIN pro \'%s\' Zadejte PIN pro přístup k YubiKey pro \'%s\' Přidržte YubiKey u zadní strany vašeho přístroje. - Nejprve vyberte soubor. + Nejprve vyberte soubor. Úspěšně podepsáno a/nebo zašifrováno. Úspěšně podepsání a/nebo zašifrováno do schránky. Vyberte alespoň jeden šifrovací klíč. @@ -348,7 +357,6 @@ Schovat pokročilá nastavení Žádný klíč nebyl vybrán Vybrat klíč - Vytvořit nový klíč pro tento účet Uložit Účet byl uložen Zrušit @@ -486,7 +494,6 @@ Heslo Převezměte opět kontrolu nad svým soukromím s OpenKeychain! - Vytvořit vlastní klíč Přeskočit nastavení Detaily certifikátu @@ -506,8 +513,7 @@ Není dostupný šifrovací podklíč! Zobrazit klíč (%s) Potáhnout dolů pro aktualizaci z keyserveru - - + diff --git a/OpenKeychain/src/main/res/values-de/strings.xml b/OpenKeychain/src/main/res/values-de/strings.xml index 20c8d933d..0022153a6 100644 --- a/OpenKeychain/src/main/res/values-de/strings.xml +++ b/OpenKeychain/src/main/res/values-de/strings.xml @@ -6,6 +6,8 @@ Wähle Schlüssel Wähle Deinen Schlüssel + Verschlüsseln + Verschlüsseln Entschlüsseln Schlüssel entsperren Unterschlüssel hinzufügen @@ -18,6 +20,7 @@ Teile Fingerabdruck über… Teile Schlüssel über... Datei teilen mit… + Text teilen mit... In eine Datei verschlüsseln In eine Datei entschlüsseln Schlüssel importieren @@ -34,10 +37,13 @@ Schlüssel austauschen Erweiterte Schlüsselinformation Schlüssel - DEINEN Schlüssel löschen \'%s\'? + DEINEN Schlüssel \'%s\' löschen? + Log exportieren + Meine Schlüssel verwalten Identitäten - Sollten Sie diesem Schlüssel vertrauen? + Verknüpfter Systemkontakt + Sollte ich diesem Schlüssel vertrauen? Nachweis überprüfen Nachweise aus der Cloud Unterschlüssel @@ -54,15 +60,17 @@ Fingerabdruck Dateien Text - Zertifikate + Beglaubigungen Verschlüsseln Entschlüsseln Aktuelles Ablaufdatum Neues Ablaufdatum Datei entschlüsseln, verifizieren und speichern + Nachricht entschlüsseln und überprüfen Datei verschlüsseln und speichern Datei verschlüsseln und teilen + Datei verschlüsseln und speichern Speichern Abbrechen Löschen @@ -74,6 +82,8 @@ Nein Fingerabdrücke stimmen überein Schlüssel nachschlagen + Nachricht verschlüsseln und teilen + Text verschlüsseln und kopieren Beglaubigungsschlüssel anzeigen Schlüssel erzeugen Datei(en) hinzufügen @@ -83,12 +93,13 @@ Dateien entschlüsseln Dateien verschlüsseln Text verschlüsseln + Weitere E-Mail-Adresse hinzufügen Einstellungen Hilfe In Datei exportieren Schlüssel löschen - Erzeuge meinen Schlüssel + Meine Schlüssel verwalten Von Datei importieren Suchen NFC-Einstellungen @@ -100,7 +111,10 @@ Cloud durchsuchen Alle Schlüssel exportieren Erweiterte Infos anzeigen + Über Fingerabdruckvergleich bestätigen + Log exportieren + Nachricht Datei Datei(en) Datei: @@ -108,6 +122,7 @@ Passwort Wird entsperrt... Passwort wiederholen + Passwort anzeigen Algorithmus Datei: ASCII Armor Aktiviere ASCII Armor @@ -118,13 +133,14 @@ Verwendet zum Zugriff auf YubiKeys über NFC die Standard-PIN (123456) Signiert von: Verschlüsselt an: - Datei nach Verschlüsselung löschen + Dateien nach Verschlüsselung löschen Nach Entschlüsselung löschen Verschlüsselungsalgorithmus Hash-Algorithmus Mit Passwort verschlüsseln Zwischenspeicherdauer Passwort pro Unterschlüssel zwischenspeichern + Nachrichtenkomprimierung Datei Kompression Schlüsselserver Schlüssel-ID @@ -142,6 +158,9 @@ Ablaufdatum festsetzen (Oberster Schlüsselserver wird bevorzugt) bevorzugt + Komprimierung aktivieren + Dateinamen verschlüsseln + Empfänger verbergen <kein Name> <keine> @@ -189,8 +208,11 @@ Passwort für \'%s\' eingeben PIN für \'%s\' eingeben PIN für Zugriff auf Yubikey für \'%s\' eingeben - Halten Sie den YubiKey gegen die Rückseite Ihres Geräts. - Zuerst eine Datei auswählen. + Halte YubiKey gegen die Rückseite Deines Geräts. + Originaldateien löschen? + Die folgenden Dateien werden gelöscht: %s + %1$d von %2$d Dateien wurden gelöscht.%3$s + Zuerst eine Datei auswählen. Erfolgreich signiert und/oder verschlüsselt. Erfolgreich in die Zwischenablage signiert und/oder verschlüsselt. Mindestens einen Schlüssel zum Verschlüsseln auswählen. @@ -199,14 +221,16 @@ Bitte angeben in welche Datei entschlüsselt werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. Bitte angeben in welche Datei exportiert werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. Möchtest du wirklich alle ausgewählten Schlüssel löschen? + Nach dem Löschen wird es dir nicht mehr möglich sein mit diesem Schlüssel verschlüsselte Nachrichten zu lesen und zudem wirst du alle damit getätigten Bestätigungen verlieren! Schlüssel löschen \'%s\'? Exportiere auch private Schlüssel - Sie sind auf einen Fehler in Android gestoßen. Installieren Sie OpenKeychain erneut, wenn Sie Ihre Kontakte mit Schlüsseln verbinden wollen. + Du bist auf einen bekannten Fehler in Android gestoßen. Bitte installiere OpenKeychain erneut, wenn du deine Kontakte mit Schlüsseln verknüpfen willst. 1 Schlüssel erfolgreich exportiert. %d Schlüssel erfolgreich exportiert. Keine Schlüssel exportiert. Beachte: Nur Unterschlüssel unterstützen ElGamal. Schlüssel %08X konnte nicht gefunden werden. + Bitte Datei zum exportieren angeben.\nWARNUNG: Die Datei wird überschrieben, falls sie bereits existiert. %d kaputter privater Schlüssel ignoriert. Evtl. wurde er mit folgender Option exportiert:\n --export-secret-subkeys\nUnbedingt mit der Option\n --export-secret-keys\n exportieren. %d kaputte private Schlüssel ignoriert. Evtl. wurden sie mit folgender Option exportiert:\n --export-secret-subkeys\nUnbedingt mit der Option\n --export-secret-keys\n exportieren. @@ -215,11 +239,14 @@ Schlüssel erfolgreich mit NFC-Beam gesendet! Schlüssel wurde in die Zwischenablage kopiert! Fingerabdruck wurde in die Zwischenablage kopiert! + Bitte einen Schlüssel auswählen der für die Bestätigung genutzt werden soll! Schlüssel ist zu groß um so geteilt zu werden! Text wurde in Zwischenablage kopiert! + wurden nicht gelöscht, bitte manuell löschen! + %s wurde bereits hinzugefügt. Datei nicht gefunden kein geeigneter privater Schlüssel gefunden Externes Laufwerk ist nicht bereit @@ -229,7 +256,7 @@ Mindestens eine Identität wird benötigt kein Passwort angegeben kein Signaturschlüssel angegeben - Kein gültiger verschlüsselter / signierter OpenPGP Inhalt! + Kein gültiger verschlüsselter oder signierter OpenPGP-Inhalt! Integritätscheck fehlgeschlagen! Die Daten wurden modifiziert! falsches Passwort Privater Schlüssel konnte nicht extrahiert werden @@ -239,11 +266,11 @@ Beam muss aktiviert sein! Keine Schlüssel gefunden! Abrufen der Schlüsselkennung von den Kontakten ist fehlgeschlagen! - Ein allgemeiner Fehler trat auf, bitte schreiben Sie einen neuen Bugreport für OpenKeychain. + Ein allgemeiner Fehler trat auf, bitte reiche einen Fehlerbericht ein! Nicht Signiert Ungültige Signatur! - Signiert von (nicht beglaubigt!) + Signiert von (Nicht beglaubigt!) Signiert von Schlüssel ist abgelaufen! Schlüssel wurde zurückgezogen! @@ -334,6 +361,7 @@ Start FAQ + Schlüsselbestätigung NFC-Beam Changelog Über @@ -347,7 +375,7 @@ Falsch formatierter QR-Code! Bitte erneut versuchen! Der Fingerabdruck ist zu kurz (< 16 Zeichen) QR-Code scannen - Plazieren sie ihre Kamera über dem QR Code! + Halte deine Kamera über den QR-Code! Details , mit Warnungen @@ -423,24 +451,24 @@ Erweiterte Einstellungen ausblenden Kein Schlüssel ausgewählt Schlüssel auswählen - Einen neuen Schlüssel für diesen Account erzeugen + Erzeuge meinen Schlüssel Speichern Benutzerkonto wurde gespeichert Abbrechen Zugriff widerufen Starte Anwendung - Account löschen + Benutzerkonto löschen Paketname SHA-256 der Paketsignatur - Konten (veraltete API) + Benutzerkonten (veraltete API) Erweiterte Informationen Erlaubte Schlüssel Einstellungen - Account Schlüssel: - Keine Konten mit dieser Anwendung verknüpft. - Für diesen Account ist kein Schlüssel hinterlegt. Bitte wähle einen deiner existierenden Schlüssel aus oder erstelle einen neuen.\nApps können nur hier ausgewählte Schlüssel nutzen. - Der Schlüssel für diesen Account wurde gelöscht. Bitte wähle einen anderen aus!\nApps können nur hier ausgewählte Schlüssel nutzen. - Folgende Anwendung möchte Nachrichten ver-/entschlüsseln und in Ihrem Namen signieren. Zugriff erlauben?\n\nVORSICHT: Sollten Sie nicht wissen warum dieses Fenster erscheint, sollten Sie den Zugriff verbieten! Sie können Zugriffe später über das Menü \'Apps\' widerrufen. + Benutzerkontoschlüssel: + Keine Benutzerkonten mit dieser Anwendung verknüpft. + Für dieses Benutzerkonto ist kein Schlüssel konfiguriert. Bitte wähle einen deiner existierenden Schlüssel aus oder erzeuge einen neuen.\nApps können nur hier ausgewählte Schlüssel nutzen! + Der Schlüssel für dieses Benutzerkonto wurde gelöscht. Bitte wähle einen anderen aus!\nApps können nur hier ausgewählte Schlüssel nutzen. + Folgende Anwendung möchte Nachrichten ver-/entschlüsseln und in deinem Namen signieren. Zugriff erlauben?\n\nVORSICHT: Solltest du nicht wissen warum dieses Fenster erscheint, erlaube den Zugriff nicht! Du kannst den Zugriff später über den \'Apps\'-Bildschirm widerrufen. Zugriff erlauben Zugriff verbieten Bitte einen Schlüssel auswählen! @@ -449,6 +477,7 @@ Bitte die Liste der Empfänger überprüfen! Bitte wählen sie einen Empfänger! Signaturüberprüfung fehlgeschlagen! Haben Sie diese Anwendung aus einer anderen Quelle installiert? Wenn Sie eine Attacke ausschliessen können, sollten Sie die Registrierung der App in OpenKeychain widerrufen und die Anwendung erneut registrieren. + Bitte wähle einen deiner vorhandenen Schlüssel aus oder erzeuge einen neuen. Über QR-Code teilen Über NFC teilen @@ -477,18 +506,22 @@ Widerrufen Diese Identität wurde vom Schlüsselinhaber widerrufen. Sie ist nicht mehr gültig. Beglaubigt - Diese Identität wurde von Ihnen beglaubigt. + Diese Identität wurde von dir beglaubigt. Nicht beglaubigt - Diese Identität wurde noch nicht beglaubigt. Sie können nicht sicher sein, ob diese Identität wirklich zu einer bestimmten Person gehört. + Diese Identität wurde noch nicht beglaubigt. Du kannst nicht sicher sein, dass diese Identität wirklich zu einer bestimmten Person gehört. Ungültig Irgend etwas ist mit dieser Identität nicht in Ordnung! + Du hast diesen Schlüssel bereits bestätigt! Dies ist einer deiner Schlüssel! + Dieser Schlüssel ist weder widerrufen, noch abgelaufen.\nDu hast ihn bisher nicht bestätigt, kannst dich aber dazu entscheiden ihm zu vertrauen. Dieser Schlüssel wurde vom Schlüsselinhaber widerrufen. Du solltest ihm nicht vertrauen. Dieser Schlüssel ist abgelaufen. Du solltest ihm nicht vertrauen. + Es ist möglicherweise in Ordnung dies zu nutzen, um eine alte Nachricht zu entschlüsseln, die aus der Zeit stammt, als der Schlüssel noch gültig war. Kein Nachweis aus der Cloud zur Vertrauenswürdigkeit dieses Schlüssels. Suche beginnen Keybase.io bietet \"Nachweise\" die versichern, dass der Schlüsselinhaber: + Hinweis: Keybase.io-Nachweise sind ein experimentelles Feature von OpenKeychain. Wir rufen dazu auf, zusätzlich zur Überprüfung, QR-Codes zu nutzen oder Schlüssel via NFC auszutauschen. Schreibt auf Twitter als Ist auf GitHub bekannt als @@ -549,12 +582,21 @@ Einen Schlüssel zu erzeugen braucht eine Weile, trink in der Zeit einen Kaffee... (3 Unterschlüssel, RSA, 4096 Bit) (Benutzerdefinierte Schlüsseleinstellung) + Verknüpfe einen Namen mit diesem Schlüssel. Es kann ein voller Name, z.B. \"John Doe\", oder ein Spitzname, z.B. \"Johnny\", sein. + Gib deine Haupt-E-Mail-Adresse ein, die du für sichere Kommunikation nutzen möchtest. + Wähle ein starkes Passwort. Es schützt deinen Schlüssel, falls dein Gerät gestohlen wird. + Vollständiger Name oder Spitzname Schlüsselkonfiguration ändern + E-Mail-Adresse hinzufügen + Es sind zusätzliche E-Mail-Adressen mit diesem Schlüssel verknüpft, die zur sicheren Kommunikation verwendet werden können. Widerrufen: Schlüssel darf nicht mehr genutzt werden! Abgelaufen: Der Kontakt muss die Gültigkeit des Schlüssels verlängern! Abgelaufen: Du kannst die Gültigkeit des Schlüssels verlängern indem du ihn editierst. Mein Schlüssel + Bestätigter Schlüssel + Unbestätigt: QR-Code scannen, um den Schlüssel zu bestätigen! + <keine> Schlüssel Verschlüsseln/Entschlüsseln @@ -579,7 +621,7 @@ Vorgang abgebrochen. Eingabeoperationen werden angewendet. - Es wurde versucht einen geheimen Schlüsselbund als Öffentlich zu importieren. Das ist ein Fehler, bitte reiche einen Bericht ein. + Es wurde versucht einen geheimen Schlüsselbund als Öffentlich zu importieren. Dies ist ein Fehler, bitte reiche einen Fehlerbericht ein! Kein alter Schlüssel gelöscht (Einen neuen erzeugen?) Alte Schlüssel aus der Datenbank löschen Vorgang aufgrund Kodierungsfehler fehlgeschlagen @@ -641,7 +683,7 @@ Beglaubgigung ist älter als Vorherige, überspringe. Beglaubigung ist aktueller, ersetze Vorherhige. Korrekte Beglaubigung von %1$s gefunden - Korrekten Zertifikatswiderruf von %1$s gefunden + Korrekten Beglaubigungwiderruf von %1$s gefunden Ignoriere eine Beglaubigung, ausgestellt von unbekanntm öffentlichen Schlüssel Ignoriere %s Beglaubigungen, ausgestellt von unbekannten öffentlichen Schlüsseln @@ -656,21 +698,21 @@ User-ID wurde widerrufen Bilder werden verarbeitet Unbekannte Benutzerattribute werden verarbeitet - Ungültiges Zertifikat gefunden! - Fehler beim Verarbeiten des Zertifikates! - Besitzt bereits eine nicht widerrufbare Beglaubigung, überspringe. + Ungültige Beglaubigung gefunden! + Fehler beim Verarbeiten der Beglaubigung! + Nicht widerrufbare Beglaubigung bereits vorhanden, überspringe. Beglaubgigung ist älter als Vorherige, überspringe. Beglaubigung ist aktueller, ersetze Vorherhige. Korrekte Beglaubigung von %1$s gefunden - Korrekten Zertifikatswiderruf von %1$s gefunden + Korrekten Beglaubigungwiderruf von %1$s gefunden Ignoriere eine Beglaubigung, ausgestellt von einem unbekannten Schlüssel Ignoriere %s Beglaubigungen, ausgestellt von unbekannten öffentlichen Schlüsseln Klassifiziere Benutzerattribute Benutzerattribut wurde widerrufen - Es wurde versucht einen öffentlichen Schlüsselbund als Geheim zu importieren. Das ist ein Fehler, bitte reiche einen Bericht ein. - Es wurde versucht, einen Schlüsselbund ohne Anpassung zu importieren. Dies ist ein Fehler, bitte reiche einen Bericht ein. + Es wurde versucht einen öffentlichen Schlüsselbund als Geheim zu importieren. Dies ist ein Fehler, bitte reiche einen Fehlerbericht ein! + Es wurde versucht, einen Schlüsselbund ohne Anpassung zu importieren. Dies ist ein Fehler, bitte reiche einen Fehlerbericht ein! Importiere geheimen Schlüssel %s Datenbankfehler! @@ -697,27 +739,30 @@ Unterschlüssel %s kommt zweimal im Schlüsselbund vor. Schlüsselbund ist fehlerhaft, wird nicht importiert! Verarbeite Hauptschlüssel Hauptschlüsselbeglaubigung unbekannter Art wird entfernt (%s) - Entferne Hauptschlüsselbeglaubigung mit \'Local\'-Attribut + Entferne Hauptschlüsselbeglaubigung mit \'Lokal\'-Attribut Fehlerhafte Hauptschlüsselbeglaubigung wird entfernt Schlüsselbund-Widerrufszertifikat mit zukünftigem Zeitstempel wird entfernt User-ID-Beglaubigung an falscher Position wird entfernt Fehlerhafte Hauptschlüsselbeglaubigung wird entfernt - Entferne Hauptschlüsselbeglaubigung mit \'Local\'-Attribut - Entferne redundantes Schlüsselbund-Widerrufszertifikat + Entferne Hauptschlüsselbeglaubigung mit \'Lokal\'-Attribut + Entferne redundante Schlüsselbund-Widerrufszertifikat + Entferne redundante Vermerk-Beglaubigung + Entferne leere Vermerk-Beglaubigung Verarbeite Unterschlüssel %s - Entferne ungültige Unterschlüssel Zwischenbeglaubigung - Entferne fehlerhafte Unterschlüssel Zwischenbeglaubigung + Entferne ungültige Unterschlüssel-Zwischenbeglaubigung + Entferne fehlerhafte Unterschlüssel-Zwischenbeglaubigung + Entferne Unterschlüssel-Zwischenbeglaubigung mit \"Lokal\"-Attribut Ungleiche Zwischenausstellerkennung beim Unterschlüssels - Entferne Unterschlüssel Zwischenbeglaubigung mit zukünftigem Zeitstempel + Entferne Unterschlüssel-Zwischenbeglaubigung mit zukünftigem Zeitstempel Unbekannte Unterschlüsselbeglaubigungart: %s - Entferne redundate Unterschlüssel Zwischenwischenbeglaubigung - Entferne Unterschlüssel Zwischenbeglaubigung aufgrund ungültiger primärer Zwischenbeglaubigung - Entferne Unterschlüssel Zwischenbeglaubigung aufgrund fehlerhafter primärer Zwischenbeglaubigung - Entferne Unterschlüssel Zwischenbeglaubigung aufgrund fehlender primärer Zwischenbeglaubigung + Entferne redundate Unterschlüssel-Zwischenbeglaubigung + Entferne Unterschlüssel-Zwischenbeglaubigung aufgrund ungültiger primärer Zwischenbeglaubigung + Entferne Unterschlüssel-Zwischenbeglaubigung aufgrund fehlerhafter primärer Zwischenbeglaubigung + Entferne Unterschlüssel-Zwischenbeglaubigung aufgrund fehlender primärer Zwischenbeglaubigung Keine gültige Beglaubigung für %s gefunden, entferne vom Schlüsselbund - Entferne fehlerhaftes Unterschlüssel Widerrufszertifikat - Entferne fehlerhaftes Unterschlüssel Widerrufszertifikat - Entferne redundantes Unterschlüssel Widerrufszertifikat + Entferne fehlerhaftes Unterschlüssel-Widerrufszertifikat + Entferne fehlerhaftes Unterschlüssel-Widerrufszertifikat + Entferne redundantes Unterschlüssel-Widerrufszertifikat Unterschlüssel verwendet unbekannten Algorithmus, wird nicht importiert... Der Unterschlüssel soll für die Verschlüsselung genutzt werden, der zu verwendende Algorithmus unterstützt dies jedoch nicht. Der Unterschlüssel soll zum Unterschreiben genutzt werden, der zu verwendende Algorithmus unterstützt dies jedoch nicht. @@ -732,7 +777,7 @@ Schlüsselbund wurde erfolgreich in vorschriftsgemäße Form gebracht, %d redundante Beglaubigungen entfernt Fehlerhafte Eigenbeglaubigung für User-ID \'%s\' wird entfernt - User-ID-Beglaubigung mit \'Lokal\'-Attribut wird entfernt + Entferne User-ID-Beglaubigung mit \'Lokal\'-Attribut User-ID mit zukünftigem Zeitstempel wird entfernt User-ID-Beglaubigung unbekannter Art wird entfernt (%s) Fehlerhafte Eigenbeglaubigung für User-ID \'%s\' wird entfernt @@ -743,20 +788,22 @@ Keine gültige Eigenbeglaubigung für User-ID \'%s\' gefunden, wird aus Schlüsselbund entfernt Ungültige User-ID \'%s\' wird entfernt Doppelte User-ID \'%s\' wird entfernt. Der Schlüsselbund enthielt zwei davon. Hieraus könnten fehlende Beglaubigungen resultieren! + User-ID nicht als UTF-8 bestätigt! Das Benutzerattribut JPEG wird verarbeitet Ein unbekanntes Benutzerattribut wird verarbeitet Entferne fehlerhafte Eigenbeglaubigung für Benutzerattribut - Entferne Benutzerattributsbeglaubigung mit \'Lokal\'-Attribut + Entferne Benutzerattributs-Beglaubigung mit \'Lokal\'-Attribut Entferne fehlerhaftes Benutzerattribute mit zukünftigem Zeitstempel Entferne Benutzerattributbeglaubigung unbekannter Art (%s) Entferne fehlerhafte Eigenbeglaubigung für Benutzerattribut Entferne abgelaufene Eigenbeglaubigung für Benutzerattribut Doppeltes Benutzerattribut wird entfernt. Der Schlüsselbund enthielt zwei davon. Hieraus könnten fehlende Beglaubigungen resultieren! - Entferne fremdes Benutzerattributszertifikat von - Entferne redundantes Widerrufszertifikat für Benutzerkennung - Entferne abgelaufenes Widerrufszertifikat für Benutzerkennung + Entferne fremde Benutzerattributsbeglaubigung von + Entferne redundantes Widerrufszertifikat der Benutzerattribute + Entferne abgelaufenes Widerrufszertifikat der Benutzerattribute Keine gültige Eigenbeglaubigung für das Benutzerattribut gefunden, wird aus Schlüsselbund entfernt Ungültiges Benutzerattribut wird entfernt + User-ID nicht als UTF-8 bestätigt! Neuer öffentlicher Unterschlüssel gefunden, aber Erstellung von geheimen Unterschlüsseldummys wird nicht unterstützt! Versuch Schlüsselbünde mit unterschiedlichen Fingerabdrücken zusammenzuführen! @@ -770,33 +817,37 @@ Neuer Masterschlüssel wird erzeugt Keine Hauptschlüsseloptionen definiert! - Schlüsselbünde müssen mit mindestens einer User-ID erstellt werden! + Schlüsselbünde müssen mindestens eine User-ID enthalten! Hauptschlüssel benötigt das Attribut beglaubigen! - Ablaufdatum kann bei Schlüsselerstellung nicht \'gleiche wie vorher\' sein. Das ist ein Programmierfehler, bitte reiche einen Fehlerbericht ein. + Ablaufdatum kann bei Schlüsselerstellung nicht \'gleiche wie vorher\' sein. Dies ist ein Programmierfehler, bitte reiche einen Fehlerbericht ein! Schlüsselgröße muss größer/gleich 512 sein! - Keine Schlüsselgröße angegeben. Das ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! - Keine Elliptische Kurve angegeben. Das ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! + Keine Schlüsselgröße angegeben. Dies ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! + Keine Elliptische Kurve angegeben. Dies ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! Interner OpenPGP Fehler! - Unbekannter Algorithmus ausgewählt. Das ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! + Unbekannter Algorithmus ausgewählt. Dies ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! Falsche Schlüsselattribute gewählt, DSA kann nicht zum verschlüsseln verwendet werden! Falsche Schlüsselattribute gewählt, ElGamal kann nicht zum signieren verwendet werden! Falsche Schlüsselattribute gewählt, ECDSA kann nicht zum verschlüsseln verwendet werden! Falsche Schlüsselattribute gewählt, ECDH kann nicht zum signieren verwendet werden! Verändere Schlüsselbund %s + Die Seriennummer eines \"Umgeleitet zu SmartCard/NFC\"-Schlüssels muss 16 Byte lang sein! Dies ist ein Progammierfehler, bitte reiche einen Fehlerbericht ein! Kodierungsfehler! Tatsächlicher Fingerabdruck des Schlüssels entspricht nicht dem Erwarteten! - Keine Schlüssel ID. Dies ist ein interner Fehler, bitte reiche einen Fehlerbericht ein. + Keine Schlüssel-ID. Dies ist ein interner Fehler, bitte reiche einen Fehlerbericht ein! Interner Fehler, Integritätsprüfung fehlgeschlagen! Keine Hauptbeglaubigung zum arbeiten gefunden! (Alle widerrufen?) Falsche primäre User-ID festgelegt! Falsche User-ID für Widerruf festgelegt! + Es wurde versucht eine beschränkte Operation ohne Passwort auszuführen! Dies ist ein Programmierfehle, bitte reiche einen Fehlerbericht ein! Widerrufene User-IDs können nicht primäre IDs sein! - Ablaufdatum kann bei Unterschlüsselerstellung nicht \'gleiche wie vorher\' sein. Das ist ein Programmierfehler, bitte reiche einen Fehlerbericht ein. - Schwerer Fehler beim Entschlüsseln des Hauptschlüssels! Dies ist wahrscheinlich ein Programmierfehler, bitte reiche einen Fehlerbericht ein. + Ablaufdatum kann bei Unterschlüsselerstellung nicht \"identisch wie vorher\" sein. Dies ist ein Programmierfehler, bitte reiche einen Fehlerbericht ein! + Schwerer Fehler beim Entschlüsseln des Hauptschlüssels! Dies ist wahrscheinlich ein Programmierfehler, bitte reiche einen Fehlerbericht ein! Interner OpenPGP Fehler! Signaturfehler! Verändere Hauptbeglaubigungen + Füge leeres Vermerk-Paket hinzu + Füge PIN-Vermerk-Paket hinzu Passwort für Schlüsselbund wird geändert Erneute Verschlüsselung des Unterschlüssels %s mit neuem Passwort Setzen des neuen Passworts fehlgeschlagen, versuche es nochmal mit leerem altem Passwort @@ -822,7 +873,7 @@ Schlüsselbund wird entsperrt Datenbank wird zusammengeführt - Zusammenführung wurde gestartet während keine Datenbank zwischengespeichert war! Dies ist wahrscheinlich ein Programmierfehler, bitte reichen Sie einen Fehlerbericht ein! + Zusammenführung wurde gestartet während keine Datenbank zwischengespeichert war! Dies ist wahrscheinlich ein Programmierfehler, bitte reiche einen Fehlerbericht ein! Zusammenführung abgebrochen, läuft bereits auf einem anderen Thread! Geheime Schlüsselbünde werden gespeichert Öffentliche Schlüsselbünde werden gespeichert @@ -838,6 +889,7 @@ Fehler beim reimportieren der öffentlichen Schlüssel! Fehler beim reimportieren der geheimen Schlüssel! Zusammenführungsvorgang wird fortgesetzt + Rekursive Zusammenführung wird übersprungen Zusammenführungsvorgang aus unbekanntem Zustand wird fortgesetzt Reimportiere einen öffentlichen Schlüssel @@ -854,7 +906,7 @@ Schlüsselvorgang wird durchgeführt Neues Passwort wird zwischengespeichert - SaveKeyringParcel fehlt! (Dies ist ein Bug, bitte melden.) + \"SaveKeyringParcel\" fehlt! (Dies ist ein Fehler, bitte reiche einen Fehlerbericht ein!) Schlüssel nicht gefunden! Zu ändernder Schlüssel wird abgerufen (%s) Schlüsselvorgang erfolgreich @@ -881,6 +933,7 @@ Dateigröße unbekannt Änderungszeit: %s Signaturprüfung NICHT OK! + Nicht unterstützter und potentiell unsicherer Hash-Algorithmus! Überprüfe Signaturdaten Signaturprüfung OK Speichere Signatur für später @@ -888,6 +941,7 @@ Fehler bei Schlüsselentsperrung, falsches Passwort! Unbekannter Fehler bei Schlüsselentsperrung! Integritätsprüfungsfehler! + Fehlende Integritätsprüfung Dies kann passieren, wenn die Verschlüsselungsanwendung veraltet ist oder durch einen Downgrade-Angriff. Keine gültigen Signaturdaten gefunden! Ein-/Ausgabefehler während Vorgang aufgetreten! Keine verschlüsselten Daten in Datenstrom gefunden! @@ -895,6 +949,7 @@ Es ist ein OpenPGP-Ausnahmefehler während des Vorgangs aufgetreten! Integritätsprüfung OK! Es wurden nur Metadaten angefragt, überspringe Entschlüsselung + Entschlüsselung/Überprüfung abgeschlossen Verwende Passwort aus Zwischenspeicher NFC-Token benötigt, verlange Benutzereingabe... Passwort benötigt, verlange Benutezreingabe... @@ -906,12 +961,18 @@ Anhang gefunden, symmetrisch verschlüsselte Daten Anhängende Daten unbekannter Art gefunden Geheimer Schlüssel wird entsperrt + Ein potentiell unsicherer Verschlüsselungsalgorithmus wurde verwendet! + Starte Signaturprüfung + Keine Signaturliste in signierten Literaldaten + Nachricht nicht mit dem richtigen Schlüssel signiert + Keine Nutzdaten in signierten Literaldaten Dateiname: %s MIME-Typ: %s Änderungszeit: %s Dateigröße: %s Überprüfe Signaturdaten + Integritätsprüfung fehlgeschlagen! OK Starte Signier-/Verschlüsselungsvorgang @@ -920,6 +981,8 @@ Keine Eingabe gegeben! Fehler beim öffnen der URI zum lesen! Fehler beim öffnen der URI zum schreiben! + Mehr Eingaben als Ausgaben angegeben! Dies ist vermutlich ein Programmierfehler, diesen bitte melden! + Es sind Ausgaben, aber keine Eingaben mehr übrig! Dies ist vermutlich ein Programmierfehler, diesen bitte melden! Signier-/Verschlüsselungsvorgang erfolgreich! Bereite öffentliche Schlüssel für Verschlüsselung vor @@ -944,11 +1007,19 @@ Passwort benötigt, verlange Benutzereingabe... Signiere Daten (ohne Verschlüsselung) Erstelle Klartextsignatur - Separate Signatur wird erstellt + Abgetrennte Signatur wird erstellt Verschlüssele Daten mit Signatur Starte Signier- und/oder Verschlüsselungsvorgang Bereite symmetrische Verschlüsselung vor - Zertifizierungen werden erzeugt + Beglaubigungen werden erzeugt + + Beglaubige eine User-ID für Schlüssel %2$s + Beglaubige %1$d User-IDs für Schlüssel %2$s + + + Beglaubige ein Benutzerattribut für Schlüssel %2$s + Beglaubige %1$d Benutzerattribute für Schlüssel %2$s + Auf diese Art und Weise kann keine Eigenbeglaubigung ausgestellt werden! Hauptschlüssel nicht gefunden! Keine beglaubigten Schlüssel! @@ -961,7 +1032,7 @@ Hauptschlüssel wird entsperrt Identitäten erfolgreich beglaubigt Schlüssel nicht gefunden! - Erzeugen des Zertifikates fehlgeschlagen! + Erzeugen der Beglaubigung fehlgeschlagen! Speichern fehlgeschlagen! Schlüssel wurde erfolgreich hochgeladen @@ -973,7 +1044,7 @@ Empfange von keybase.io: %s Konnte Schlüssel nicht von Keybase empfangen! Von einem Schlüsselserver abrufen: %s - Schlüsselabruf erfolgreich + Schlüsselabruf erfolgreich! Schlüsselserver %s wird verwendet Fingerabdruck des abgerufenen Schlüssels entspricht nicht dem Erwarteten! Fingerabdrucktest in Ordnung @@ -1015,7 +1086,7 @@ Fehler beim Löschen eines Schlüssels Fehler beim Löschen von %d Schlüsseln - Konto gespeichert + Benutzerkonto gespeichert Erfolgreich heruntergeladen! Keine gültigen Schlüssel in der Datei/Zwischenablage gefunden! NOCH ZU MACHEN: Plurale! @@ -1023,12 +1094,16 @@ Ein Teil der geladenen Datei ist ein gültiges OpenPGP Objekt aber kein OpenPGP Schlüssel Teile der geladenen Dateien sind gültige OpenPGP Objekte aber keine OpenPGP Schlüssel - Suchanfrage zu kurz. Bitte verfeinern Sie Ihre Suchanfrage! - Schlüsselsuchanfrage lieferte zu viele Kandidaten. Bitte verfeinern Sie Ihre Anfrage! - Entweder keine oder zu viele Schlüssel wurden gefunden. Bitte verbessern Sie Ihre Anfrage! + Die Suchanfrage ist zu kurz, bitte die Suchanfrage verfeinern! + Schlüsselsuchanfrage lieferte zu viele Kandidaten, bitte die Suchanfrage verfeinern! + Entweder keine oder zu viele Schlüssel wurden gefunden, bitte die Suchanfrage prä­zi­sie­ren! Beim suchen der Schlüssel ist ein Fehler aufgetreten. + Exportiere Protokoll + Fehler beim Öffnen der Datei Kein Dateiname angegeben! + Ein-/Ausgabefehler beim schreiben in die Datei! + Protokoll erfolgreich exportiert! Klicken um Passworte aus Zwischenspeicher zu löschen OpenKeychain hat %d Passworte zwischengespeichert @@ -1037,17 +1112,19 @@ Passwort Hol dir deine Privatsphäre mit OpenKeychain zurück! - Erzeuge meinen Schlüssel - Von Datei importieren + Meinen Schlüssel erzeugen (empfohlen) + Schlüssel aus Datei importieren + YubiKey NEO verwenden Setup überspringen Beglaubiger - Zertifikatdetails + Beglaubigungsdetails Identität <unbekannt> Keine Beglaubigungen für diesen Schlüssel - Nur geprüfte Eigenbeglaubigungen und geprüfte Beglaubigungen welche mit deinen Schlüsseln erstellt wurden werden hier angezeigt. + Nur geprüfte Eigenbeglaubigungen und geprüfte Beglaubigungen, die mit deinen Schlüsseln erzeugt wurden, werden hier angezeigt. Identitäten für + Die Schlüssel, die importiert werden, enthalten \"Identitäten\": Namen und E-Mail-Adressen. Wähle genau diejenigen zum Bestätigen aus, die deinen Erwartungen entsprechen. Vergleiche den angezeigten Fingerabdruck zeichenweise mit dem, der auf dem Gerät deines Gegenübers angezeigt wird. Stimmen die angezeigten Fingerabdrücke überein? Widerrufsgrund @@ -1059,16 +1136,17 @@ kein Passwort nicht verfügbar Deine eigenen Schlüssel können nur einzeln gelöscht werden! - Zertifikatdetails anzeigen + Beglaubigungsdetails anzeigen unbekannt Kann nicht unterschreiben Kein Unterschlüssel zum Verschlüsseln verfügbar! - Erstelle keine OpenKeychain-Accounts manuell.\n Für mehr Informationen sieh in die Hilfe. + Erstelle OpenKeychain-Benutzerkonten nicht manuell.\nFür mehr Informationen sieh in die Hilfe. Schlüssel anzeigen (%s) Nach unten wischen um von Schlüsselserver zu aktualisieren Mindestens eine Datei zum Verschlüsseln auswählen! Das speichern von mehreren Dateien wird nicht unterstützt. Dies ist eine Einschränkung der aktuellen Android Version. Schlüssel: + Um einen Schlüsselaustausch zu starten wähle auf der rechten Seite die Teilnehmer aus, drücke dann den \"Austausch starten\"-Knopf.\n\nDu wirst zusätzlich zwei Fragen gestellt bekommen um sicherzustellen, dass nur die richtigen Teilnehmer am Austausch beteiligt sind und deren Fingerabdrücke korrekt sind. Austausch starten ]]> @@ -1097,5 +1175,4 @@ Erfolgreich auf den NFC-Tag geschrieben Entsperrt Einstellungen - diff --git a/OpenKeychain/src/main/res/values-es/strings.xml b/OpenKeychain/src/main/res/values-es/strings.xml index 6ba096420..a042f3809 100644 --- a/OpenKeychain/src/main/res/values-es/strings.xml +++ b/OpenKeychain/src/main/res/values-es/strings.xml @@ -6,6 +6,8 @@ Seleccionar claves Seleccionar su clave + Cifrar + Cifrar Descifrar Desbloquear clave Añadir subclave @@ -18,6 +20,7 @@ Compartir huella de validación de clave con... Compartir clave con... Compartir fichero con... + Compartir texto con... Cifrar hacia archivo Descifrar hacia archivo Importar claves @@ -34,10 +37,12 @@ Intercambiar claves Información avanzada de clave Claves - ¿Borrar SU clave \'%s\'? + ¿Borrar la clave DE USTED \'%s\'? Exportar registro (log) + Administrar mis claves Identificaciones + Contacto de sistema enlazado ¿Debe confiar en esta clave? Comprobante de verificación Comprobantes desde la nube @@ -62,8 +67,10 @@ Nueva caducidad Descifrar, verificar, y guardar fichero + Descifrar y verificar texto Cifrar y guardar fichero Cifrar y compartir fichero + Cifrar y guardar fichero Guardar Cancelar Eliminar @@ -75,6 +82,8 @@ No Las huellas de validación coinciden Buscar clave + Cifrar y compartir texto + Cifrar y copiar texto Ver clave de verificación Crear clave Añadir fichero(s) @@ -84,12 +93,13 @@ Descifrar ficheros Cifrar ficheros Cifrar texto + Añadir dirección de correo electrónico adicional Ajustes Ayuda Exportar hacia archivo Borrar clave - Crear mi clave + Administrar mis claves Importar desde fichero Buscar Configuraciones NFC @@ -104,6 +114,7 @@ Confirmar mediante comparación de la huella de validación (fingerprint) Exportar registro (log) + Texto Archivo Fichero(s) Fichero: @@ -111,6 +122,7 @@ Frase de contraseña Desbloqueando... Repetir frase-contraseña + Mostrar frase-contraseña Algoritmo Armadura ASCII del fichero Habilitar armadura ASCII @@ -121,13 +133,14 @@ Utiliza el PIN predeterminado (123456) para acceder a las YubiKeys sobre NFC Firmado por: Cifrar hacia: - Eliminar fichero después del cifrado + Borrar ficheros después del cifrado Eliminar fichero después del descifrado Algoritmo de cifrado Algoritmo de identificación criptográfica (hash) Cifrar con frase-contraseña Duración en caché Almacenar en caché frases-contraseña por subclave + Compresión de texto Compresión del fichero Servidores de claves ID de clave @@ -146,6 +159,8 @@ (Se prefiere el primer servidor de claves listado) preferido Habilitar compresión + Cifrar nombres de ficheros + Ocultar receptores <sin nombre> <ninguna> @@ -194,7 +209,10 @@ Introduzca el PIN para \'%s\' Introduzca el PIN para acceder a la YubiKey para \'%s\' Sostenga la YubiKey contra el reverso de su dispositivo. - Selecciona un archivo antes. + ¿Borrar ficheros originales? + Los siguientes ficheros se borrarán:%s + %1$d de %2$d ficheros han sido borrados.%3$s + Selecciona un archivo antes. Firmado y/o cifrado con éxito. Firmado y/o cifrado del portapapeles con éxito. Selecciona al menos una clave de cifrado. @@ -227,6 +245,8 @@ + no ha sido borrado. ¡Borrarlos manualmente! + %s ya ha sido añadida. archivo no encontrado no se ha encontrado una clave secreta adecuada el almacenamiento externo no está preparado @@ -431,7 +451,7 @@ Ocultar la configuración avanzada No se ha seleccionado ninguna clave Seleccionar clave - Crear una nueva clave para esta cuenta + Crear nueva clave Guardar Se ha guardado la cuenta Cancelar @@ -457,6 +477,7 @@ ¡Por favor, revisa la lista de destinatarios! ¡Por favor seleccione los receptores! ¡La comprobación de la firma ha fallado! ¿Has instalado esta app desde una fuente distinta? Si estás seguro de que esto no es un ataque, revoca el registro de esta app en OpenKeychain y regístrala de nuevo. + Por favor, seleccione una de sus claves existentes o cree una nueva. Compartir con código QR Compartir con NFC @@ -496,6 +517,7 @@ Esta clave no está revocada ni ha caducado.\nNo la ha confirmado, pero puede elegir confiar en ella. Esta clave ha sido revocada por su propietario. No debe confiar en ella. Esta clave ha caducado. No debe confiar en ella. + Puede ser correcto utilizar esta para descifrar un mensaje antiguo que data del momento en que esta clave era válida. No hay comprobantes desde la nube sobre la confiabilidad de esta clave. Comenzar búsqueda Keybase.io ofrece \"comprobantes\" que sostienen que el propietario de esta clave: @@ -560,7 +582,13 @@ Crear una clave puede llevar un tiempo, tómese una taza de café entre tanto... (3 subclaves, RSA, 4096 bits) (configuración de clave personalizada) + Elija un nombre asociado con esta clave. Este puede ser un nombre completo, ej. \'Juan Nadie\', o un apodo, ej. \'Juanito\'. + Introduzca su dirección principal de correo electrónico para comunicación segura. + Elija una frase-contraseña robusta. Protege su clave cuando su dispositivo es robado. + Nombre completo o apodo Cambiar configuración de clave + Añadir dirección de correo electrónico + Las direcciones adicionales de correo electrónico también están asociadas a esta clave y pueden utilizarse para asegurar la comunicación. Revocada: ¡La clave no debe volver a ser usada! Caducada: ¡El contacto necesita extender la vigencia de la clave! @@ -568,6 +596,7 @@ Mi clave Clave confirmada No confirmada: ¡Escanee el código QR para confirmar clave! + <ninguno> Claves Cifrar/Descifrar @@ -1082,8 +1111,9 @@ Frase-contraseña ¡Recupere su privacidad con OpenKeychain! - Crear mi clave - Importar desde fichero + Crear mi clave (recomendado) + Importar clave desde fichero + Usar Yubikey NEO Omitir configuración Certificador @@ -1144,5 +1174,4 @@ Se escribió con éxito en la etiqueta NFC Desbloqueado Configuración - diff --git a/OpenKeychain/src/main/res/values-et/strings.xml b/OpenKeychain/src/main/res/values-et/strings.xml index f67ffb328..15b0c6c1e 100644 --- a/OpenKeychain/src/main/res/values-et/strings.xml +++ b/OpenKeychain/src/main/res/values-et/strings.xml @@ -61,11 +61,9 @@ Vale salasõne Salasõned ei ühti. Sümmeetriline krüpteering - - - + diff --git a/OpenKeychain/src/main/res/values-eu/strings.xml b/OpenKeychain/src/main/res/values-eu/strings.xml index 73ac12403..77f897b7c 100644 --- a/OpenKeychain/src/main/res/values-eu/strings.xml +++ b/OpenKeychain/src/main/res/values-eu/strings.xml @@ -6,6 +6,8 @@ Hautatu Giltzak Hautatu Zure Giltza + Enkriptatu + Enkriptatu Dekriptatu Desblokeatu Giltza Gehitu azpigiltza @@ -17,6 +19,7 @@ Aldatu Sar-esaldia Elkarbanatu giltza honekin... Elkarbanatu agiria honekin... + Elkarbanatu idazkia honekin... Enkriptatu Agirira Dekriptatu Agirira Inportatu Giltzak @@ -25,14 +28,19 @@ Esportatu Giltzak Giltza Ez da Aurkitu Igo Giltza-zerbitzarira + Baieztatu Giltza Giltzaren Xehetasunak Laguntza Oharra Sortu Giltza + Trukatu Giltzak Giltza Argibide Aurreratuak Giltzak + Esportatu Oharra + Kudeatu nire giltzak Nortasunak + Loturatutako Sistema Harremana Fildatu behar zara giltza honetaz? Azpigiltzak Hodei bilaketa @@ -40,6 +48,7 @@ Berezkoak Aurreratua Sar-esaldi Katxea + Baieztatu Ekintzak Giltza Aldiberetu Giltza @@ -49,10 +58,14 @@ Egiaztagiriak Enkriptatu Dekriptatu + Oraingo epemuga + Epemuga berria Dekriptatu, egiaztatu eta gorde agiria + Dekriptatu eta egiaztatu idazkia Enkriptatu eta gorde agiria Enkriptatu eta elkarbanatu agiria + Enkriptatu eta gorde agiria Gorde Ezeztatu Ezabatu @@ -62,6 +75,8 @@ Hurrengoa Atzera Ez + Enkriptatu eta elkarbanatu idazkia + Enkriptatu eta kopiatu idazkia Ikusi egiaztagiri giltza Sortu giltza Gehitu agiria(k) @@ -71,12 +86,13 @@ Dekriptatu agiriak Enkriptatu agiriak Enkriptatu idazkia + Gehitu post@ helbide gehigarriak Ezarpenak Laguntza Esportatu agirira Ezabatu giltza - Sortu nire giltza + Kudeatu nire giltzak inportatu agiritik Bilatu NFC ezarpenak @@ -88,7 +104,9 @@ Bilatu hodeian Esportatu giltza guztiak Erakutsi argibide aurreratuak + Esportatu Oharra + Idazkia Agiria Agiria(k) Agiria: @@ -96,17 +114,19 @@ Sar-esaldia Desblokeatzen... Berregin Sar-esaldia + Erakutsi Sar-esaldia Algoritmoa + ASCII Armor agiria Gaitu ASCII Armor Erabili berezko YubiKey PIN-a Sinatzailea: Enkriptatu hona: - Ezabatu agiria enkriptatu ondoren Ezabatu dekriptatu ondoren Enkriptaketa algoritmoa Hash algoritmoa Enkriptatu sar-esaldiarekin Katxe denbora + Idazki konpresioa Agiri konpresioa Giltza-zerbitzariak Giltza ID-a @@ -122,6 +142,13 @@ Aldiberetu hodeiarekin Ezarri epemuga eguna hobetsia + Gaitu konpresioa + Enkriptatu agirizenak + Ezkutatu jasotzaileak + + %d giltza-zerbitzari + %d giltza-zerbitzari + Giltza Sekretua: Ezer ez @@ -156,12 +183,37 @@ Sar-esaldiak ez datoz bat. Mesedez sartu sar-esaldi bat. Enkriptaketa simetrikoa. + Sartu sar-esaldia \'%s\'-rako + Sartu PIN-a \'%s\'-rako + Ezabatu jatorrizko agiriak? + Hurrengo agiriak ezabatu egingo dira: %s + Hautatu agiri bat lehenik. + Ongi sinatu eta/edo enkriptatu da. + Ongi sinatu eta/edo enkriptatu da gakora. + Hautatu enkriptaketa giltza bat gutxienez. + Hautatu enkriptaketa giltza bat edo sinadura giltza bat gutxienez. + Egitan nahi duzu hautaturiko giltzak ezabatzea? + Ezabatu \'%s\' giltza? + Esportatu giltza sekretuak ere + Ongi esportatu da 1 giltza + Ongi esportatu dira %d giltza + Ez da giltzarik esportatu. + Oharra: azpigiltzek bakarrik sostengatzen dute EIGamal. + Ezin da %08X giltza aurkitu. Zerrenda hau hutsik dago! + Giltza ongi bidali da NFC Beam-rekin! + Giltz gakora kopiatu da! + Mesedez hautatu baiztapenerako erabiltzeko giltza! + Giltza handiegia da modu honetan elkarbanatzeko! Idazkia gakora kopiatu da! + ez da ezabatu. Ezabatu ezazu eskuz! + %s jadanik gehitu da. agiria ez da aurkitu + ez da giltza sekretu erabilgarririk aurkitu + kanpoko biltegia ez dago gertu giltzaren neurria gutxienez 512bitekoa izan behar da algoritmo ezezagun hautapena ez da post@rik aurkitu @@ -172,6 +224,7 @@ sar-esaldi okerra ezin da giltza pribatua atera + Android 4.1 behar duzu Android-ren NFC Beam ezaugarria erabiltzeko! NFC gaitua izan behar da! Beam gaitua izan behar da! Ez da giltzarik aurkitu! @@ -255,15 +308,18 @@ Hasi SEG + Giltza Baieztapena NFC Beam Aldaketa-oharra Honi buruz Bertsioa: Giltza-zerbitzaria + Hodei Bilaketa Agiria/Gakoa QR Kodea/NFC Inportatu hautaturiko giltzak + QR Kodea gaizki-eratua! Mesedez saiatu berriro! Eskaneatu QR Kodea Jarri zure kamera QR Kodearen gainean! @@ -273,10 +329,15 @@ Ez dago ezer inportatzeko. Inportazioa ezeztatuta. + + Akatsa %2$s giltza ezabatzerakoan. + Akatsa %1$d giltza ezabatzerakoan. + Ez dago ezer ezabatzeko Ezabapen eragiketa ezeztaturik. + Dekriptatu Agiria OpenKeychain-rekin Inportatu Giltza OpenKeychain-rekin Enkriptatu OpenKeychain-rekin Dekriptatu OpenKeychain-rekin @@ -287,7 +348,6 @@ Ezkutatu ezarpen aurreratuak Ez da giltzarik hautatu Hautatu giltza - Sortu giltza berria kontu honentzat Gorde Kontua gorde da Ezeztatu @@ -303,11 +363,17 @@ Ahalbidetu sarbidea Ez ahalbidetu sarbidea Mesedez hautatu giltza bat! + Giltza bat baino gehiago dago nortasun hauentzat: Mesedz berrikusi jasotzaile zerrenda! Mesedez hautatu jasotzaileak! + Elkarbanatu QR Kodearekin Elkarbanatu NFC-rekin + + 1 giltza hautaturik. + %d giltza hautaturik. + Ez da giltzarik aurkitu! Erakutsi giltza guztiak Erakutsi egiaztaturiko giltzak bakarrik @@ -315,6 +381,7 @@ Editatu giltza Enkriptatu idazkia agiriak + Baieztatu giltza Eguneratu giltza-zerbitzaritik Elkarbanatu honekin... Elkarbanatu NFC gain @@ -323,17 +390,53 @@ Elkarbanatu Azpigiltzak Egiaztagiriak + Keybase.io + Ukatuta Egiaztuta Nortasun hau zeuk egiaztatua da. Egiaztatu gabea Baliogabea + Zerbait oker dago nortasun honekin! + Jadanik baduzu giltza hau baieztatuta! + Hau zure giltzetako bat da! + Giltza hau iraungituta dago. Ez zara berataz fidatu behar. + Hasi bilaketa + Argitaratu Twitter-en honela + GitHub-en honela ezagutzen da + Domeinu izena(k) kontrolatzen ditu + Argitaratu Reddit-en honela + Coinbasen honela ezagutzen da + Argitaratu Hacker News-en honela + domeinurako + Txio bat + DNS TXT grabaketa bat + Idazki agiri bat + JSON agiri bat + Egiaztatu + Aldatu Sar-esaldia + Gehitu Nortasuna + Gehitu Azpigiltza + Hautatu ekintza bat! + Hautatu ekintza bat! azpigiltza berria + Gehitu nortasun bat gutxienez! + Gehitu azpigiltza bat gutxienez! + Aldiberetu hodeiarekin + Eremu hau beharrezkoa da + Sar-esaldiak ez datoz bat + Hurrengo nortasuna sartu duzu: + (norbere giltza itxurapena) + Izen Osoa edo Ezizena + Aldatu giltza itxurapena + Gehitu post@ helbidea Nire Giltza + Baieztatu Giltza + Baieztatugabe: Eskaneatu QR Kodea giltza baieztatzeko! Giltzak Enkriptatu/Dekriptatu @@ -354,31 +457,162 @@ Barneko akatsa! Eragiketa ezeztaturik. + Giltza zaharra datubasetik ezabatu da + Eragiketa hutsegitea kodeaketa akats bategaitik + Eragiketa hutsegitea s/i akats bategaitik + Eragiketa hutsegitea datubase akats bategaitik + Eragiketa hutsegitea barneko akats bategaitik Giltzak aztertzen Datubase eragiketak gertatzen + Egiaztagiri gaitza aurkitu da! + Akatsa egiaztagiria prozesatzerakoan! + Egiaztagiria berriagoa da, aurrekoa ordezten. + Egiaztagiri ona aurkitu da %1$s-rako + Datubase akatsa! + Erabiltzaile ezaugarri baliogabea kentzen + Ez dago ezer batzeko + Giltza maisu berria sortzen + Ez da maisu giltza aukerarik adierazi! + Barneko OpenPGP akatsa! + Kodeaketa salbuespena! + Barneko OpenPGP akatsa! + Sinadura salbuespena! + Maisu egiaztagiriak aldatzen + Datubasea garbitzen + Datubasea ongi trinkotu da + Akatsa datubasea irekitzerakoan! + S/I akatsa giltza publikoak katxera idazterakoan! + S/I akatsa giltza sekretuak katxera idazterakoan! + Akatsa giltza publikoak ber-inportatzerakoan! + Akatsa giltza sekretuak ber-inportatzerakoan! + Trinkotze aurrerabidea berrekiten + Sar-esaldi berria katxeatzen + Giltza ez da aurkitu! + Giltza ez da aurkitu! + Giltza ez da aurkitu! + Agirizena: %s + MIME mota: %s + Agiri neurria: %s + Agiri neurria ezezaguna da + Aldaketa ordua: %s + Sinadura egiaztapena EZ ONGI! + Hash algoritmo sostengatu gabea eta potentzialki segurtasun gabea! + Sinadura datuak egiaztatzen + Sinadura egiaztapena ONGI + Sinadura datuak gerorako gordetzen + Osotasun egiaztapen akatsa! + Osotasun egiaztapena ONGI! + Sar-esaldia erabiltzen katxetik + Dekriptaketa eragiketa abiatzen... + Datu simetrikoak ez daude ahalbidetuta, jauzi egiten... + Giltza sekretua desblokeatzen + Agirizena: %s + MIME mota: %s + Aldaketa ordua: %s + Agiri neurria: %s + Sinadura datuak egiaztatzen + Osotasun egiaztapen akatsa! + Ongi + Sinadura/enkriptaketa eragiketa abiatzen + Ez da sarrerarik eman! + Akatsa URI-a irakurtzeko irekitzerakoan! + Akatsa URI-a idazteko irekitzerakoan! + Sinadura/enkriptaketa eragiketa ongi + Giltza publikoak gertatzen enkriptaketarako + Konpresioa gertatzen + Datuak enkriptatzen + Sar-esaldi gaitza! + NFC datu akatsa! + Ez da sar-esaldirik eman! + Barneko OpenPGP akatsa! + OpenPGP sinadura salbuespena aurkitu da! + Akats ezezaguna giltza desblokeatzerakoan! + Datuak sinadurarekin enkriptatzen + Sinadura eta/edo enkriptaketa eragiketa abiatzen + Enkriptaketa simetrikoa gertatzen + Egiaztagiriak sortzen + Maisu giltza ez da aurkitu! + Ez da giltzarik egiaztagiritu! + Akatsa maisu giltza desblokeatzerakoan! + Nortasunak ongi egiaztagiritu dira + Giltza ez da aurkitu! + Egiaztagiri sortze hutsegitea! + Gordetze eragiketa hutsegitea! + Giltza ongi igo da zerbitzarira + Inportatze eragiketa ongi burutu da! + Giltza guztiak esportatzen + Ez da agirizenik adierazi! + Akatsa agiria irekitzen! + Ez da URI-rik adierazi! + Akatsa URI jarioa irekitzerakoan! + Biltegia ez dago gertu idazteko! + Datubase akatsa! + Sarrera/irteera akatsa! + Akatsa giltza datuak aurre-prozesatzerakoan! + Esportatze eragiketa ongi burutu da! + Ez dago ezer ezabatzeko! + Giltza sekretuak banaka bakarrik ezabatu daitezke! + Kontua gordeta + Ongi jeitsi da! + Ez da baliozko giltzarik aurkitu agiri/gakoan! + Esportatze oharra + Akatsa agiria irekitzerakoan + Ez da agiri izenik adierazi! + S/I akatsa agirira idazterakoan! + Oharra ongi esportatu da! + Klikatu katxeatutako sar-esaldiak garbitzeko + Katxeatutako Sar-esaldiak: + Garibut Katxea + Sar-esaldia + Inportatu giltza agiritik + Erabili YubiKey NEO + Jauzi Ezarpena + Egiaztatzailea + Egiaztagiriaren Xehetasunak + Nortasuna + Ez dago egiaztagiririk giltza honentzat + Mota + Giltza ez da aurkitu! + Akatsa giltza prozesatzerakoan! + ezezaguna + ezin da sinatu + Ez dago enkriptaketa azpigiltzarik eskuragarri! + Erakutsi (%s) giltza + Giltza: + Hautatu desblokeatze metodo bat + Sartu sar-esaldia + Sar-esaldia + Ez dago sar-esaldirik + Ez da sar-esaldirik ezarri + Sar-esaldia ez dator bat + Sar-esaldia gordeta + Sar-esaldi baliogabea + Sar-esaldia ez dago + Berriro + Desblokeatze metodoa + Ezarri sar-esaldia NFC + Desblokeatuta Ezarpenak - - diff --git a/OpenKeychain/src/main/res/values-fi/strings.xml b/OpenKeychain/src/main/res/values-fi/strings.xml index 508b17d0a..3a87d53c1 100644 --- a/OpenKeychain/src/main/res/values-fi/strings.xml +++ b/OpenKeychain/src/main/res/values-fi/strings.xml @@ -70,7 +70,6 @@ Apua Vie tiedostoon Poista avain - Luo minun avaimeni Tuo tiedostosta Etsi Beam asetukset @@ -99,7 +98,6 @@ Käyttää vakio-PIN:iä (123456) käyttääkseen YubiKeyssejä NFC kautta Allekirjoittaja: Salaa: - Poista tiedosto salauksen jälkeen Poista salauksen purkamisen jälkeen Salausalgoritmi Tiivistealgoritmi @@ -169,11 +167,9 @@ Symmetrinen salaus. Syötä salasana \'%s\':lle Syötä PIN \'%s\':lle - - - + diff --git a/OpenKeychain/src/main/res/values-fr/strings.xml b/OpenKeychain/src/main/res/values-fr/strings.xml index 3b3add86a..7fefda34a 100644 --- a/OpenKeychain/src/main/res/values-fr/strings.xml +++ b/OpenKeychain/src/main/res/values-fr/strings.xml @@ -6,6 +6,8 @@ Choisir des clefs Choisir ma clef + Chiffrer + Chiffrer Déchiffrer Déverrouiller la clef Ajouter une sous-clef @@ -18,6 +20,7 @@ Partager l\'empreinte avec... Partager la clef avec... Partager le fichier avec... + Partager le texte avec... Chiffrer vers un fichier Déchiffrer vers un fichier importer des clefs @@ -34,10 +37,12 @@ Échanger des clefs Infos avancées sur les clefs Clefs - Supprimer VOTRE clef \'%s\' ? + Supprimer VOTRE clef « %s » ? Exporter le journal + Gérer mes clefs identités + Contact système relié Devriez-vous faire confiance à cette clef ? Vérification de preuve Preuves provenant du nuage @@ -45,7 +50,7 @@ Recherche nuagique Général Valeurs par défaut - Avancé + Avancée Cache de la phrase de passe Confirmer Actions @@ -62,8 +67,10 @@ Nouvelle expiration Déchiffrer, vérifier et enregistrer le fichier + Déchiffrer et vérifier le texte Chiffrer et enregistrer le fichier Chiffrer et partager le fichier + Chiffrer et enregistrer un fichier Enregistrer Annuler Supprimer @@ -75,6 +82,8 @@ Non Les empreintes correspondent Rechercher la clef + Chiffrer et partager du texte + Chiffrer et copier du texte Voir la clef de certification Créer la clef Ajouter un/des fichier(s) @@ -84,13 +93,14 @@ Déchiffrer les fichiers Chiffrer des fichiers Chiffrer du texte + Ajouter une adresse courriel supplémentaire Paramètres Aide Exporter vers un fichier Supprimer la clef - Créer ma clef - Importer depuis un fichier + Gérer mes clefs + Importer d\'un fichier Rechercher Paramètres NFC Paramètres Beam @@ -104,6 +114,7 @@ Confirmer par une comparaison d\'empreinte Exporter le journal + Texte Fichier Fichier(s) Fichier : @@ -111,6 +122,7 @@ Phrase de passe Déverrouillage... Répéter la phrase de passe + Montrer la phrase de passe Algorithme Fichier ASCII Armor Activer l\'Armure ASCII @@ -121,13 +133,14 @@ Utilise le NIP par défaut (123456) pour accéder aux Yubikeys par la NFC Signé par : Chiffrer pour : - Supprimer le fichier après chiffrement + Supprimer les fichiers après chiffrement Supprimer le fichier après le déchiffrement Algorithme de chiffrement Algorithme de hachage Chiffrer avec une phrase de passe Durée du cache Mettre en cache une phrase de passe par sous-clef + Compression de texte Compression des fichiers Serveurs de clefs ID de clef @@ -146,6 +159,8 @@ (Le premier serveur de clefs listé est préféré) préféré Activer la compression + Chiffrer les nom de fichier + Cacher les destinataires <aucun nom> <aucune> @@ -194,7 +209,10 @@ Saisir le NIP pour « %s » Saisir le NIP pour accéder à la Yubikey pour « %s » Tenez la YubiKey contre le dos de votre appareil. - Choisir d\'abord un fichier. + Supprimer les fichiers originaux ? + Les fichiers suivants seront détruits : %s + %1$d fichiers sur %2$d ont déjà été supprimés. %3$s + Choisir d\'abord un fichier. Signé et/ou chiffré avec succès. Signé et/ou chiffré vers le presse-papiers avec succès. Choisir au moins une clef de chiffrement. @@ -227,6 +245,8 @@ + n\'ont pas été supprimés. Les supprimer maintenant ? + %s a déjà été supprimé. fichier introuvable aucune clefs secrète adéquate n\'a été trouvée le stockage externe n\'est pas prêt @@ -344,7 +364,7 @@ Confirmation de la clef NFC Beam Journal des changements - À propos de + À propos de l\'appli Version : Serveur de clefs @@ -431,7 +451,7 @@ Masquer les paramètres avancés Aucune clef choisie Choisir une clef - Créer une nouvelle clef pour ce compte + Créer une nouvelle clef Enregistrer Le compte a été enregistré Annuler @@ -457,6 +477,7 @@ Veuillez revoir la liste des destinataires ! Veuillez choisir les destinataires ! La vérification de la signature a échoué ! Avez-vous installé cette appli à partir d\'une source différente ? Si vous êtes sûr que ce n\'est pas une attaque, révoquez l\'enregistrement de cette appli dans OpenKeychain et enregistrez-la à nouveau. + Veuillez choisir une de vos clefs existantes ou en créer une nouvelle. Partager par un code QR Partager par la NFC @@ -473,7 +494,7 @@ Chiffrer un texte fichiers Confirmer la clef - Mise à jour depuis le serveur de clefs + Mise à jour en provenance du serveur de clefs Partager avec... Partager par la NFC Téléverser vers le serveur de clefs @@ -496,6 +517,7 @@ Cette clef n\'est ni révoquée, ni expirée.\nVous ne l\'avez pas confirmée, mais vous pourriez décider de lui faire confiance. Cette clef a été révoquée par son propriétaire. Vous ne devriez pas lui faire confiance. Cette clef est expirée. Vous ne devriez pas lui faire confiance. + Vous pourriez l\'utiliser pour déchiffrer un ancien message datant de la période de validité de la clef. Aucune preuve de fiabilité provenant du nuage pour cette clef. Lancer la recherche Keybase.io offre des « preuves » affirmant que le propriétaire de cette clef : @@ -560,7 +582,13 @@ Créer une clef peut prendre du temps, prenez donc un café en attendant... (3 sous-clefs, RSA, 4096 bits) (configuration personnalisée de la clef) + Choisissez un nom associé à cette clef. Ce peut être un nom complet, p. ex. « Maxime Tremblay », ou un pseudo, p. ex. « Maxou ». + Saisissez votre adresse courriel principale utilisée pour les communications sécurisées. + Choisissez une phrase de passe forte. Elle protège votre clef en cas de vol de votre appareil. + Nom complet ou pseudo Changer la configuration de la clef + Ajouter une adresse courriel + Des adresses courriel supplémentaires sont aussi associées à cette clef et peuvent être utilisées pour des communications sécurisées. Révoquée : la clef ne doit plus être utilisée ! Expirée : le contact doit prolonger la validité de la clef ! @@ -568,6 +596,7 @@ Ma clef Confirmer la clef Non vérifiée : balayez le code QR pour confirmer la clef ! + <aucun> Clefs Chiffrer/déchiffrer @@ -576,7 +605,7 @@ Fermer le tiroir de navigation Mes clefs - Taper le texte + Saisir le texte valeur par défaut aucun @@ -936,6 +965,7 @@ Lancement de la vérification de la signature Aucune liste de signatures dans les données littérales signées Le message n\'est pas signé avec la bonne clef + Aucune information utile dans les données littérales signées Nom de fichier : %s Type MIME : %s Heure de modification : %s @@ -981,6 +1011,14 @@ Début de l\'opération de signature et/ou de chiffrement Préparation du chiffrement symétrique Générations des certifications + + Certification d\'un ID utilisateur pour la clef %2$s + Certification de %1$d ID utilisateur pour la clef %2$s + + + Certification d\'un attribut utilisateur pour la clef %2$s + Certification de %1$d attributs utilisateur pour la clef %2$s + Un auto-certificat ne peut pas être délivré ainsi ! Clef maîtresse introuvable ! Aucune clef certifiée ! @@ -1002,9 +1040,9 @@ Erreur de décodage du trousseau récupéré ! La clef n\'a pas pu être récupérée ! (problèmes réseau ?) - Récupération depuis keybase.io : %s + Récupération en provenance du keybase.io : %s Impossible de récupérer la clef à partir de la base de clefs ! - Récupération depuis le serveur de clefs : %s + Récupération en provenance du serveur de clefs : %s Récupération de la clef est réussie ! Utilisation du serveur de clefs %s L\'empreinte de clef récupérée ne correspond pas à celle attendu ! @@ -1072,9 +1110,10 @@ Effacer le cache Phrase de passe - Reprenez le contrôle de votre confidentialité avec OpenKeychain | - Créer ma clef - Importer depuis un fichier + Reprenez le contrôle de votre vie privée avec OpenKeychain | + Créer ma clef (recommandé) + Importer la clef d\'un fichier + Utiliser YubiKey NEO Ignorer le paramétrage Certificateur @@ -1135,5 +1174,4 @@ Écrit avec succès sur la balise NFC Déverrouillé Paramètres - diff --git a/OpenKeychain/src/main/res/values-it/strings.xml b/OpenKeychain/src/main/res/values-it/strings.xml index 4b88aa494..4d0e4d6cb 100644 --- a/OpenKeychain/src/main/res/values-it/strings.xml +++ b/OpenKeychain/src/main/res/values-it/strings.xml @@ -69,7 +69,6 @@ Aiuto Esporta su un file Cancella chiave - Crea mia chiave Importa da file Cerca Impostazioni Beam @@ -96,7 +95,6 @@ Utilizza la tastiera numerica per il PIN di YubiKey Firmato da: Codifica per: - Elimina file dopo la codifica Elimina dopo la decodifica Algoritmo di codifica Algoritmo Hash @@ -164,7 +162,7 @@ Si prega di inserire una frase di accesso. Codifica Simmetrica. Inserisci la frase di accesso per \'%s\' - Seleziona un file prima. + Seleziona un file prima. Firmato e/o codificato con successo. Firmato e/o codificato con successo negli appunti. Seleziona almeno una chiave di codifica. @@ -360,7 +358,6 @@ ATTENZIONE: Il file sara\' sovrascritto se esistente.
Nascondi impostazioni avanzate Nessuna chiave selezionata Seleziona chiave - Crea una nuova chiave per questo account Salva L\'account è stato salvato Annulla @@ -689,7 +686,6 @@ Permetti accesso?\n\nATTENZIONE: Se non sai perche\' questo schermata e\' appars Frase di Accesso Riappropriati della tua privacy con OpenKeychain! - Crea mia chiave Salta Installazione Certificatore @@ -714,8 +710,7 @@ Permetti accesso?\n\nATTENZIONE: Se non sai perche\' questo schermata e\' appars Seleziona almeno un file da codificare! Il salvataggio di più file non è supportato. Questa è una limitazione corrente di Android. Chiave: - - + diff --git a/OpenKeychain/src/main/res/values-ja/strings.xml b/OpenKeychain/src/main/res/values-ja/strings.xml index 16b9c3cc4..d77ae0cf6 100644 --- a/OpenKeychain/src/main/res/values-ja/strings.xml +++ b/OpenKeychain/src/main/res/values-ja/strings.xml @@ -6,6 +6,8 @@ 鍵を選択 あなたの鍵を選択 + 暗号化 + 暗号化 復号化 鍵のロック解除 副鍵の追加 @@ -18,6 +20,7 @@ ...で指紋の共有 ...で鍵の共有 ...でファイルの共有 + ...でテキストの共有 暗号化してファイルに 復号化してファイルに 鍵のインポート @@ -36,8 +39,10 @@ あなたの鍵 \'%s\' を削除しますか? エクスポートログ + 自分の鍵の管理 ユーザID + リンクしているシステムの連絡先 この鍵を信頼しますか? 証明検証 クラウドからの証明 @@ -62,8 +67,10 @@ 新しい期限 復号化と検証、そしてファイルの保存 + テキストの復号化と検証 暗号化してファイルを保存 暗号化してファイルを共有 + 暗号化してファイルを保存 保存 キャンセル 削除 @@ -75,6 +82,8 @@ なし 指紋一致 鍵検出 + 暗号化してテキストを共有 + 暗号化してテキストをコピー 検証した鍵を見る 鍵の生成 ファイルの追加 @@ -84,12 +93,13 @@ ファイルの復号化 ファイルの暗号化 テキストの暗号化 + 追加のEメールアドレスを追加 設定 ヘルプ ファイルへのエクスポート 鍵の削除 - 自分の鍵の生成 + 自分の鍵の管理 ファイルからインポート 検索 NFC設定 @@ -104,6 +114,7 @@ 指紋比較による確認 エクスポートログ + テキスト ファイル ファイル ファイル: @@ -111,6 +122,7 @@ パスフレーズ アンロック... 再度パスフレーズを入力 + パスフレーズ表示 アルゴリズム アスキー形式ファイル アスキー形式ファイルを有効 @@ -128,6 +140,7 @@ パスフレーズで暗号化 キャッシュ時間 副鍵のパスフレーズをキャッシュ + テキストの圧縮 ファイルの圧縮 鍵サーバ 鍵ID @@ -146,6 +159,8 @@ (リストの最初の鍵サーバが優先されます) 優先 圧縮を有効 + 暗号化するファイル名 + 受信者を隠す <名前なし> <無し> @@ -192,7 +207,10 @@ \'%s\' にPINを入力してください \'%s\' の Yubikey にアクセスするためのPINを入力してください あなたのデバイスの背面にYubiKeyを固定してください。 - 最初にファイルを選択してください。 + オリジナルのファイルを削除しますか? + 以下のファイルを削除します:%s + %1$d 中の %2$d のファイルの削除が完了しました。%3$s + 最初にファイルを選択してください。 署名/暗号化に成功しました。 クリップボードの中身の署名/暗号化に成功しました。 少なくとも1つの暗号化鍵を選択して下さい。 @@ -203,6 +221,8 @@ 注意: 既存のファイルがあると上書きされます。 どのファイルをエクスポートするか決めてください。 注意: 既存のファイルがあると上書きされます。 + 選択したすべての鍵を本当に削除してよいですか? + 削除後はこの鍵で暗号化されたメッセージが読めなくなります、またその鍵で行われたすべての鍵確認を失います! 鍵 \'%s\' を削除しますか? 秘密鍵もエクスポートします あなたは既知のAndroidのバグに遭遇しました。もし鍵とあなたの連絡先をリンクさせたいならOpenKeychainを再インストールしてください。 @@ -211,6 +231,8 @@ 鍵をエクスポートしていません。 ノート: 副鍵はElGamalでのみサポートされます。 鍵 %08X は見付かりませんでした。 + ファイルをどこにエクスポートするか決めてください。 +注意: 既存のファイルがあると上書きされます。 %d の問題ある鍵を無視しました。 おそらく次のオプションでエクスポートしています --export-secret-subkeys @@ -228,6 +250,8 @@ + まだ削除されていません。手動での削除です! + %s はすでに追加済みです。 ファイルが見付かりません 組になっている秘密鍵が見付かりません 外部ストレージが準備できていません @@ -418,7 +442,7 @@ 拡張設定を隠す 鍵が選択されていない 鍵の選択 - このアカウントで新しい鍵を生成 + 新しい鍵の生成 保存 アカウントが保存されました キャンセル @@ -449,6 +473,7 @@ 受信者リストを確認してください! 受信者を選択してください! 署名チェックが失敗! 違うところからこのアプリをインストールしましたか? もし攻撃されてでなくそうであるなら、OpenKeychainにあるこのアプリの登録を破棄し、再度アプリを登録してください。 + すでにある鍵1つを選択するか新規に作成してください。 QRコードで共有 NFCで共有 @@ -484,8 +509,10 @@ 鍵はすでに確認されています! これはあなたの鍵の内のひとつです! + この鍵はすでに破棄されたか期限切れです。\n確認済みではなく、しかしあなたは信頼すると選択することもできます。 このIDは鍵の所有者により破棄されています。信頼することはできません。 この鍵は期限切れです。信頼することができません。 + この鍵の信頼性についてのクラウドでの検証がありません。 検索開始 Twitterへ以下のIDで投稿 @@ -495,14 +522,25 @@ Coinbaseでは以下で知られています Hacker Newsへ以下のIDで投稿 不明な確認種別 + 不幸にもこの証明は検証されていません。 + 証明チェッカで正当に評価されない問題 確認に問題があります + 鍵の指紋が証明のポストと一致しませんでした DNS TXTレコードの確認に失敗 + 検証チェッカを見付けることができませんでした + 復号化した検証ポストが指定した値と一致しない + 検証を取得 この証明は検証されています! + 投稿 + 取得は + ドメイン名 + この鍵のオーナーだけが生成することができるメッセージを含んでいます。 ツィート DNSのTXTレコード テキストファイル gist JSONファイル + Redditの属性 検証 パスフレーズの変更 @@ -535,12 +573,21 @@ しばらくの間鍵を生成しています、その間はコーヒーでもどうぞ.... (3副鍵、RSA, 4096 bit) (個別の鍵設定) + この鍵に紐付ける名前を選択してください。これにはフルネーム、例えば「山田太郎」かニックネーム、例えば「たろすけ」にできます。 + あなたが秘密の通信で使うメインのEメールアドレスを入力してください。 + 強度の高いパスフレーズを選択してください。そうすることであなたのデバイスが盗まれてもあなたの鍵を守ります。 + フルネームかニックネーム 鍵の設定変更 + Eメールアドレスの追加 + 追加のEメールアドレスがこの鍵に紐付きそしてセキュアな通信に使うことができます。 破棄: 鍵はもう使われません! + 期限切れ: この連絡先は鍵の妥当性を拡張する必要があります! 期限切れ: 編集で鍵の妥当性を拡張することができます! 自分の鍵 確認済みの鍵 + 未確認: QRコードをスキャンして鍵を確認! + <なし> 暗号化/復号化 @@ -692,6 +739,7 @@ 副鍵 %s の処理中 証明が付随する無効な副鍵を破棄中 証明が付随する問題のある副鍵を破棄中 + \'ローカル\'フラグ付きの証明が付随する副鍵を破棄中 副鍵の発行者のIDと付随するIDがミスマッチ 未来にタイムスタンプがある証明が付随する副鍵を破棄中 不明な検証のタイプ: %sの副鍵 @@ -899,6 +947,8 @@ セキュアでない可能性がある暗号化アルゴリズムが利用されています! 署名の確認開始 + 署名済み固定データに署名リストがありません + メッセージが正しい鍵で署名されていません 署名済み固定データにペイロードがありません ファイル名: %s MIME種別: %s @@ -910,7 +960,10 @@ 署名/暗号化操作を開始します バイト配列からの入力処理中 + URIからの入力処理中 入力がありません! + 読み出すためにURIを開く時にエラー! + 書き込むためにURIを開く時にエラー! 不明な出力以上の入力過多です! これはプログラミングのエラーで、バグレポートの提出をお願いします! 得られた出力が入力から乖離している。これはプログラミングのエラーで、バグレポートの提出をお願いします! 署名/暗号化操作に成功! @@ -1028,8 +1081,9 @@ パスフレーズ OpenKeychainであなたのプライバシーを取り戻しましょう! - 自分の鍵の生成 - ファイルからインポート + 自分の鍵の生成(推奨) + ファイルから鍵をインポート + YubiKey NEOを使用する セットアップをスキップ 検証者 @@ -1090,5 +1144,4 @@ NFCタグに書けました! アンロック 設定 - diff --git a/OpenKeychain/src/main/res/values-nl/strings.xml b/OpenKeychain/src/main/res/values-nl/strings.xml index d77d4e331..04c6f10f4 100644 --- a/OpenKeychain/src/main/res/values-nl/strings.xml +++ b/OpenKeychain/src/main/res/values-nl/strings.xml @@ -39,8 +39,10 @@ Sleutels JOUW sleutel \'%s\' verwijderen? Log exporteren + Beheer mijn sleutels Identiteiten + Verbonden systeemcontact Zou je deze sleutel vertrouwen? Bewijs van verificatie Bewijzen van de cloud @@ -91,12 +93,13 @@ Bestanden ontcijferen Bestanden versleutelen Tekst versleutelen + Bijkomstig e-mailadres toevoegen Instellingen Help Exporteren naar bestand Sleutel verwijderen - Mijn sleutel aanmaken + Beheer mijn sleutels Importeren van bestand Zoeken NFC-instellingen @@ -130,7 +133,7 @@ Gebruikt standaard PIN (123456) om YubiKeys over NFC te bereiken Ondertekend door: Versleutelen naar: - Verwijder bestand na versleuteling + Verwijder bestanden na versleuteling Verwijder na ontcijfering Versleutelingsalgoritme Hashalgoritme @@ -156,6 +159,8 @@ (Voorkeur gaat uit naar de eerste keyserver in de lijst) voorkeur Compressie aanzetten + Versleutel bestandsnamen + Verberg ontvangers <no naam> <geen> @@ -204,7 +209,10 @@ Voer PIN in voor \'%s\' Voer PIN in om toegang te verkrijgen tot YubiKey voor \'%s\' Hou YubiKey tegen de achterkant van je toestel - Selecteer eerst een bestand. + Oorspronkelijke bestanden verwijderen? + De volgende bestanden zullen worden verwijderd:%s + %1$d van %2$d bestanden zijn verwijderd.%3$s + Selecteer eerst een bestand. Succesvol gesigneerd en/of gecodeerd. Succesvol gesigneerd en/of gecodeerd naar klembord. Selecteer ten minste één versleutelingssleutel. @@ -237,7 +245,9 @@ - bestand niet gevonden + zijn niet verwijderd. Verwijder ze handmatig! + %s is al toegevoegd. + bestand niet gevonden geen geschikte privésleutel gevonden externe opslag niet gereed sleutelgrootte moet minstens 512-bits zijn @@ -441,7 +451,7 @@ Verberg geavanceerde instellingen Geen sleutel geselecteerd Sleutel selecteren - Maak nieuwe sleutel voor dit account + Nieuwe sleutel aanmaken Opslaan Account is opgeslaan Annuleren @@ -467,6 +477,7 @@ Bekijkt u a.u.b. de ontvangers Gelieve de ontvangers te selecteren! Handtekening check mislukt! Hebt u deze app van een andere bron geïnstalleerd? Als u zeker weet dat dit geen aanval is, haal dan de registratie van deze app in OpenKeychain weg en registreer de app opnieuw. + Gelieve een van je bestaande sleutels te selecteren of een nieuwe aan te maken. Delen met QR-code Deel met NFC @@ -506,6 +517,7 @@ Deze sleutel is ingetrokken noch verlopen.\nJe hebt ze niet bevestigd, maar je kan kiezen ze te vertrouwen. Deze sleutel is door de eigenaar ingetrokken. Je zou ze niet moeten vertrouwen. Deze sleutel is verlopen. Je zou ze niet moeten vertrouwen. + Het kan oké zijn deze sleutel te gebruiken om een oud bericht te ontsleutelen van een moment waarop de sleutel nog geldig was. Geen bewijs van de cloud voor de betrouwbaarheid van deze sleutel. Zoeken starten Keybase.io geeft “bewijzen” die stellen dat de eigenaar van deze sleutel: @@ -570,8 +582,13 @@ Een sleutel aanmaken kan even duren, maak intussen een tasje thee klaar… (3 subsleutels, RSA, 4096 bit) (aangepaste sleutelconfiguratie) + Kies een naam verbonden met deze sleutel. Dit kan een volledige naam zijn, zoals \'Jan Smit\', of een bijnaam, \'Jantje\'. + Voer je standaard-e-mailadres in dat je gebruikt voor beveiligde communicatie. + Kies een sterk wachtwoord. Het beschermt je sleutel als je toestel zou worden gestolen. + Volledige naam of bijnaam Sleutelconfiguratie wijzigen E-mailadres toevoegen + Bijkomstige e-mailadressen zijn ook verbonden met deze sleutel en kunnen gebruikt worden voor veilige communicatie. Ingetrokken: sleutel mag niet meer gebruikt worden! Verlopen: het contact moet de geldigheid van de sleutel verlengen! @@ -1094,8 +1111,9 @@ Wachtwoord Neem je privacy terug met OpenKeychain! - Maak mijn sleutel aan - Importeren van bestand + Maak mijn sleutel aan (aanbevolen) + Sleutel importeren uit bestand + Gebruik YubiKey NEO Setup overslaan Certificeer @@ -1156,5 +1174,4 @@ Succesvol geschreven op NFC-tag Ontgrendeld Instellingen - diff --git a/OpenKeychain/src/main/res/values-pl/strings.xml b/OpenKeychain/src/main/res/values-pl/strings.xml index e4fce6bcc..cbaca4aa1 100644 --- a/OpenKeychain/src/main/res/values-pl/strings.xml +++ b/OpenKeychain/src/main/res/values-pl/strings.xml @@ -78,7 +78,6 @@ Pomoc Eksportuj do pliku Usuń klucz - Utwórz mój klucz Importuj z pliku Szukaj Ustawienia Beam @@ -106,7 +105,6 @@ Używa domyślnego PIN-u (123456) do dostępu do YubiKeys przez NFC Podpisane przez: Szyfruj do: - Usuń plik po zaszyfrowaniu Usuń po odszyfrowaniu Algorytm szyfrowania Funkcja skrótu @@ -179,7 +177,7 @@ Podaj hasło dla \'%s\' Wpisz PIN dla \'%s\' Trzymaj YubiKey z tyłu Twojego urządzenia. - Najpierw wskaż plik. + Najpierw wskaż plik. Pomyślnie podpisano i/lub zaszyfrowano. Pomyslnie podpisano i/lub zaszyfrowano do schowka. Wybierz co najmniej jeden klucz szyfrujący. @@ -418,7 +416,6 @@ Ukryj zaawansowane ustawienia Nie wybrano klucza Wybierz klucz - Utwórz nowy klucz dla tego konta Zapisz Konto zostało zapisane Anuluj @@ -630,7 +627,6 @@ OSTRZEŻENIE: Jeżeli nie wiesz, czemu wyświetlił się ten komunikat, nie zezw Hasło Weź prywatność w swoje ręce używając OpenKeychain! - Utwórz mój klucz Pomiń ustawienia Certyfikujący @@ -656,8 +652,7 @@ OSTRZEŻENIE: Jeżeli nie wiesz, czemu wyświetlił się ten komunikat, nie zezw Wybierz przynajmniej jeden plik, aby szyfrować! Klucz: Rozpocznij wymianę - - + diff --git a/OpenKeychain/src/main/res/values-ru/strings.xml b/OpenKeychain/src/main/res/values-ru/strings.xml index 7cd0cec9b..0724ced26 100644 --- a/OpenKeychain/src/main/res/values-ru/strings.xml +++ b/OpenKeychain/src/main/res/values-ru/strings.xml @@ -6,6 +6,8 @@ Выберите ключи Выберите Ваш ключ + Зашифровать текст + Зашифровать файлы Расшифровать Разблокировать ключ Добавить доп. ключ @@ -18,6 +20,7 @@ Отправить отпечаток... Отправить ключ... Отправить файл... + Отправить текст в... Зашифровать в файл Расшифровать в файл Импорт ключей @@ -26,6 +29,7 @@ Экспорт ключей Ключ не найден Загрузить на сервер ключей + Сертифицировать ключ Сведения о ключе Помощь Журнал @@ -33,8 +37,10 @@ Обмен ключами Детальная информация о ключе Ключи + Удалить ВАШ ключ \'%s\'? Идентификаторы + Связанные контакты Должны ли Вы доверять этому ключу? Подтвердить верификацию Подтвердить из облака @@ -58,6 +64,7 @@ Новый срок годности Расшифровать, проверить и сохранить файл + Расшифровать и проверить текст Зашифровать и сохранить файл Зашифровать и отправить файл Сохранить @@ -85,7 +92,6 @@ Помощь Экспорт в файл Удалить ключ - Создать свой ключ Импорт из файла Поиск Настройки NFC @@ -115,7 +121,6 @@ Использовать PIN по умолчанию (123456) для доступа к YubiKeys через NFC Подписано: Зашифровать для: - Удалить файл после шифрования Удалить после шифрования Алгоритм шифрования ХЭШ-алгоритм @@ -192,7 +197,7 @@ Введите PIN для доступа к YubiKey для \'%s\' Держите YubiKey возле задней части вашего устройства. - Сначала выберите файл. + Сначала выберите файл. Успешно подписано и/или зашифровано. Успешно подписано и/или зашифровано в буфер обмена. Укажите хотя бы один ключ. @@ -373,7 +378,6 @@ Скрыть расширенные настройки Ключ не выбран Выбрать ключ - Создать новый ключ для этого аккаунта Сохранить Аккаунт сохранен Отмена @@ -777,8 +781,6 @@ Пароль Верните вашу приватность с помощью OpenKeychain! - Создать ключ - Импорт из файла Пропустить настройку Кем подписан @@ -810,5 +812,4 @@ Разблокирован Настройки - diff --git a/OpenKeychain/src/main/res/values-sl/strings.xml b/OpenKeychain/src/main/res/values-sl/strings.xml index 3f0def752..051f960ed 100644 --- a/OpenKeychain/src/main/res/values-sl/strings.xml +++ b/OpenKeychain/src/main/res/values-sl/strings.xml @@ -34,7 +34,6 @@ Izmenjava ključev Napredne informacije o ključu Ključi - Izbrišem VAŠ ključ \'%s\'? Identitete Ali zaupate temu ključu? @@ -75,7 +74,6 @@ Pomoč Izvozi v datoteko Izbriši ključ - Ustvari zasebni ključ Uvozi iz datoteke Išči Nastavitve Beam @@ -100,7 +98,6 @@ Zapiše \'OpenKeychain v2.7\' v OpenPGP podpis, šifrirano besedilo in izvožene ključe Podpisal: Šifriraj za: - Izbriši datoteko po dešifriranju Izbriši po dešifriranju Šifrirni algoritem Zgostitveni algoritem @@ -168,7 +165,7 @@ Vnesite geslo. Simetrično šifriranje. Vnesite geslo za \'%s\' - Najprej izberite datoteko. + Najprej izberite datoteko. Uspešno podpisano in/ali šifrirano. Uspešno podpisano in/ali šifrirano ter poslano v odložišče. Izberite vsaj en šifrirni ključ. @@ -320,7 +317,6 @@ Skrij napredne nastavitve Izbran ni bil noben ključ Izberite ključ - Ustvari nov ključ za ta račun Shrani Prekliči Prekliči dostop @@ -455,8 +451,6 @@ Geslo Vzemite si svojo zasebnost nazaj v svoje roke z OpenKeychain! - Ustvari zasebni ključ - Uvozi iz datoteke Preskoči nastavitev Overovitelj @@ -478,8 +472,7 @@ Ni nobenega podključa za šifriranje! Prikaži ključ (%s) Ključ: - - + diff --git a/OpenKeychain/src/main/res/values-sv/strings.xml b/OpenKeychain/src/main/res/values-sv/strings.xml index 605e14695..e17fcdddc 100644 --- a/OpenKeychain/src/main/res/values-sv/strings.xml +++ b/OpenKeychain/src/main/res/values-sv/strings.xml @@ -6,6 +6,8 @@ Välj nycklar Välj din nyckel + Kryptera + Kryptera Dekryptera Lås upp nyckel Lägg till undernyckel @@ -18,6 +20,7 @@ Dela fingeravtryck med… Dela nyckel med… Dela fil med… + Dela text med... Kryptera till fil Dekryptera till fil Importera nycklar @@ -26,6 +29,7 @@ Exportera nycklar Nyckel hittades inte Ladda upp till nyckelserver + Bekräfta nyckel Nyckelinformation Hjälp Logg @@ -33,14 +37,20 @@ Utbyt nycklar Avancerad nyckelinfo Nycklar + Radera DIN nyckel \'%s\'? + Exportera logg Identiteter + Skulle du lita på denna nyckel? + Bevisverifiering + Bevis från molnet Undernycklar Molnsökning Allmänt Förval Avancerat Cache för lösenordsfras + Bekräfta Åtgärder Nyckel Synkronisera nyckel @@ -51,10 +61,14 @@ Certifikat Kryptera Dekryptera + Aktuellt utgångsdatum + Nytt utgångsdaum Dekryptera, verifiera och spara fil + Avkryptera och verifiera text Kryptera och spara fil Kryptera och dela fil + Kryptera och spara fil Spara Avbryt Radera @@ -63,7 +77,11 @@ Ladda upp till nyckelserver Nästa Föregående + Nej + Fingeravtrycken matchar Sök efter nyckel + Kryptera och dela text + Kryptera och kopiera text Visa nyckel för certifiering Skapa nyckel Lägg till fil(er) @@ -73,14 +91,15 @@ Dekryptera filer Kryptera filer Kryptera text + Lägg till extra e-postadress Inställningar Hjälp Exportera till fil Radera nyckel - Skapa min nyckel Importera från fil Sök + NFC-inställningar Beam-inställningar Avbryt Kryptera till… @@ -89,7 +108,10 @@ Sök i molnet Exportera alla nycklar Visa avancerad information + Bekräfta via fingeravtrycksjämförelse + Exportera logg + Text Fil Fil(er) Fil: @@ -97,6 +119,7 @@ Lösenordsfras Låser upp… Upprepa lösenordsfras + Visa lösenordsfras Algoritm Fil i ASCII-format Aktivera ASCII-format @@ -107,13 +130,14 @@ Använder förvald PIN (123456) för att få åtkomst till YubiKeys via NFC Signerat av: Kryptera till: - Radera fil efter kryptering + Radera filer efter kryptering Radera efter dekryptering Krypteringsalgoritm Hash-algoritm Kryptera med lösenordsfras Tid i cache Cacha lösenordsfraser efter undernyckel + Textkompression Filkompression Nyckelservrar Nyckel-ID @@ -130,6 +154,9 @@ Ställ in utgångsdatum (Nyckelservern först i listan är den som föredras) föredraget + Aktivera kompression + Kryptera filnamn + Dölj mottagare <inget namn> <ingen> @@ -178,7 +205,10 @@ Ange PIN för \'%s\' Ange PIN för att få åtkomst till YubiKey för \'%s\' Håll YubiKey mot baksidan av din enhet. - Välj en fil först. + Radera orginalfiler? + Följande filer kommer raderas:%s + %1$d av %2$d filer har raderats.%3$s + Välj en fil först. Signerades och/eller krypterades. Signerades och/eller krypterades till urklipp. Välj åtminstone en krypteringsnyckel. @@ -186,6 +216,9 @@ Ange vilken fil som du vill kryptera till.\nVARNING: Om filen redan finns kommer den att skrivas över. Ange vilken fil som du vill dekryptera till.\nVARNING: Om filen redan finns kommer den att skrivas över. Ange vilken fil som du vill exportera till.\nVARNING: Om filen redan finns kommer den att skrivas över. + Vill du verkligen radera alla markerade nycklar? + Efter radering kommer du inte kunna läsa meddelande krypterade med den här nyckeln samt förlora alla nyckelbekräftningar som gjorts med den! + Radera nyckel \'%s\'? Exportera även privata nycklar Du stötte på en känd bugg hos Android. Installera om OpenKeychain om du vill koppla ihop dina kontaker med nycklar. Exporterade 1 nyckel. @@ -193,6 +226,7 @@ Inga nycklar exporterades. Obs: endast undernycklar har stöd för ElGamal. Kunde inte hitta nyckeln %08X. + Ange en fil att exportera till. \nVARNING: Filen kommer skrivas över om den redan existerar. %d dålig privat nyckel hoppades över. Du kanske exporterade med alternativet \n --export-secret-subkeys\nSe till att du exporterar med\n --export-secret-keys\nistället.\" %d dåliga privata nycklar hoppades över. Du kanske exporterade med alternativet \n --export-secret-subkeys\nSe till att du exporterar med\n --export-secret-keys\nistället.\" @@ -201,11 +235,14 @@ Skickade nyckel med NFC Beam! Nyckel har kopierats till urklipp! Fingeravtryck har kopierats till urklipp! + Välj en nyckel att använda för bekräftning! Nyckeln är för stor för att dela på detta sätt! Text har kopierats till urklipp! + har inte raderats. Radera dem manuellt! + %s har redan lagts till. fil hittades inte ingen passande privat nyckel hittades extern lagring inte redo @@ -221,6 +258,8 @@ kunde inte extrahera privat nyckel Du behöver Android 4.1 för att använda Androids NFC Beam-funktion! + NFC måste vara aktiverat! + Beam måste vara aktiverat! Inga nycklar hittades! Det gick inte att hämta nyckel-ID:t från kontakter! Ett generiskt fel inträffade, skapa en ny buggrapport för OpenKeychain. @@ -290,6 +329,7 @@ konsolidera: sparar till cache… konsolidera: återimporterar… + Söker via Namn, E-post... 512 768 @@ -315,7 +355,9 @@ snabb väldigt långsam + Start Vanliga frågor + Nyckelbekräftning NFC Beam Ändringslogg Om @@ -405,7 +447,7 @@ Göm avancerade inställningar Ingen nyckel vald Välj nyckel - Skapa ny nyckel för det här kontot + Skapa ny nyckel Spara Konto har sparats Avbryt @@ -431,6 +473,7 @@ Se över listan med mottagare! Välj mottagare! Signaturkontroll misslyckades! Har du installerat appen från en annan källa? Om du är säker på att det här inte är en attack, återkalla den här appens registrering i OpenKeychain och registrera sen om appen igen. + Välj en av dina existerande nycklar eller skapa en ny. Dela med QR-kod Dela med NFC @@ -446,6 +489,7 @@ Redigera nyckel Kryptera text filer + Bekräfta nyckel Uppdatera från nyckelserver Dela med… Dela via NFC @@ -454,6 +498,7 @@ Dela Undernycklar Certifikat + Keybase.io Återkallad Den här identiteten har återkallats av nyckelns ägare. Den är inte längre giltig. Certifierad @@ -463,7 +508,23 @@ Ogiltig Något är fel med den här identiteten! + Du har redan bekräftat den här nyckeln! + Det här är en av dina nycklar! + Den här nyckeln är varken återkallad eller utgången.\nDu har inte bekräftat den, men du kan välja att lita på den. + Den här nyckeln har återkallats av sin ägare. Du borde inte lita på den. + Den här nyckeln har gått ut. Du borde inte lita på den. + Det kan vara okej att använda den här för att avkryptera ett gammalt medelande från tiden när den här nyckeln var giltig. + Inget bevis från molnet angående den här nyckelns trovärdighet. + Påbörja sökning + Postar på Twitter som + Är känd på GitHub som + Kontrollerar domännamne(t|s) + Postar på Reddit som + Är känd på Coinbase som + Postar på Hacker News som + Okänd bevistyp + Tyvärr kan detta bevis inte verifieras. Ändra lösenordsfras Lägg till identitet @@ -812,8 +873,6 @@ Lösenordsfras Ta tillbaka din integritet med OpenKeychain! - Skapa min nyckel! - Importera från fil Hoppa över inställning Certifikatinformation @@ -863,5 +922,4 @@ Denna enhet stöder inte NFC Upplåst Inställningar - diff --git a/OpenKeychain/src/main/res/values-tr/strings.xml b/OpenKeychain/src/main/res/values-tr/strings.xml index b939faf0d..2e55eb620 100644 --- a/OpenKeychain/src/main/res/values-tr/strings.xml +++ b/OpenKeychain/src/main/res/values-tr/strings.xml @@ -69,7 +69,6 @@ Yardım Dosyaya ver Anahtar sil - Anahtarımı oluştur Dosyadan al Ara NFC ayarları @@ -97,7 +96,6 @@ NFC üzerinden YubiKey\'e ulaşmak için varsayılan PIN\'i (123456) kullanır İmzalayan: Şuna şifrele: - Şifreleme sonrası dosyayı sil Şifre çözme sonrasında sil Şifreleme algoritması Özet algoritması @@ -167,7 +165,7 @@ Simetrik şifreleme. \'%s\' için bir parola girin YubiKey\'inizi cihazınızın arkasında tutun. - Önce bir dosya seçin. + Önce bir dosya seçin. Başarıyla imzalandı ve/veya şifrelendi. Kopyalama önbelleğine başarıyla imzalandı ve/veya şifrelendi. En az bir şifreleme anahtarı seçiniz. @@ -348,7 +346,6 @@ Gelişmiş ayarları gizle Anahtar seçilmedi Anahtar seç - Bu hesap için yeni anahtar oluştur Kaydet Hesap kaydedildi İptal @@ -480,8 +477,6 @@ Parola Gizliliğinizi OpenKeychain ile geri alın! - Anahtarımı oluştur - Dosyadan içe aktar Kurulumu Atla Sertifika Detayları @@ -508,8 +503,7 @@ Birden çok dosyanın kaydedilmesi desteklenmiyor. Bu şu anki Android\'in bir kısıtlamasıdır. Anahtar: Anahtar değiş tokuşu başlatmak için sağ taraftan katılımcıların sayısını seçin ve \"Değiş tokuşu başlat\" tuşuna tıklayın.\n\nSadece istenilen katılımcıların değişim işleminde olduğundan ve parmak izlerinin doğruluğundan emin olmak için size iki soru daha sorulacak. - - + diff --git a/OpenKeychain/src/main/res/values-uk/strings.xml b/OpenKeychain/src/main/res/values-uk/strings.xml index f192cb07a..ecd5592be 100644 --- a/OpenKeychain/src/main/res/values-uk/strings.xml +++ b/OpenKeychain/src/main/res/values-uk/strings.xml @@ -69,7 +69,6 @@ Довідка Експорт до файлу Вилучити ключ - Створити мій ключ Імпорт з файлу Пошук Налаштування променя @@ -97,7 +96,6 @@ Вживається типовий PIN (123456) для доступу до YubiKey чреез NFC Підписано: Зашифрувати до: - Вилучити файл після шифрування Вилучити після розшифрування Алгоритм шифрування Хеш алгоритм @@ -168,7 +166,7 @@ Будь ласка, введіть парольну фразу. Симетричне шифрування. Введіть парольну фразу для \'%s\' - Виберіть спершу файл. + Виберіть спершу файл. Успішно підписано та/або перевірено. Успішно підписано та/або зашифровано до буфера обміну. Виберіть принаймні один ключ шифрування. @@ -354,7 +352,6 @@ Приховати додаткові налаштування Не вибрано ключа Вибрати ключ - Створити новий ключ для цього профілю Зберегти Скасувати Відкликати доступ @@ -569,7 +566,6 @@ Очистити кеш Заберіть вашу приватність із OpenKeychain! - Створити мій ключ Пропустити установку Ким підписаний @@ -588,8 +584,7 @@ не можна підписати Жодний підключ шифрування недоступний! Показати ключ (%s) - - + diff --git a/OpenKeychain/src/main/res/values-zh-rTW/strings.xml b/OpenKeychain/src/main/res/values-zh-rTW/strings.xml index bb8462bf3..a6fd905e1 100644 --- a/OpenKeychain/src/main/res/values-zh-rTW/strings.xml +++ b/OpenKeychain/src/main/res/values-zh-rTW/strings.xml @@ -65,7 +65,6 @@ 說明 匯出到檔案 刪除金鑰 - 建立金鑰 從檔案匯入 搜尋 Beam 設定 @@ -85,7 +84,6 @@ 在簽名、密文與匯出的金鑰裡寫入\'OpenKeychain v2.7\' 簽名自: 加密給: - 加密後刪除檔案 解密後刪除檔案 加密演算法 雜湊演算法 @@ -139,7 +137,7 @@ 口令不相符。 請輸入口令。 對稱加密。 - 請先選擇檔案。 + 請先選擇檔案。 成功簽名並/或加密。 成功簽名並/或加密到剪貼簿。 選擇至少一把加密金鑰。 @@ -292,7 +290,6 @@ 隱藏進階設定 沒有選擇金鑰 選擇金鑰 - 為此帳戶建立金鑰 儲存 帳戶已儲存 取消 @@ -421,8 +418,7 @@ 沒有可供加密的子金鑰! 請不要自行建立OpenKeychain帳戶。\n更多資訊請參考說明。 要發起金鑰交換,先在右邊選擇與會人數,然後點選〝開始交換〞。\n\n接下來會詢問你兩個問題,以確保會議成員與交換的指紋是正確的。 - - + diff --git a/OpenKeychain/src/main/res/values-zh/strings.xml b/OpenKeychain/src/main/res/values-zh/strings.xml index 31df7e587..86059840a 100644 --- a/OpenKeychain/src/main/res/values-zh/strings.xml +++ b/OpenKeychain/src/main/res/values-zh/strings.xml @@ -2,34 +2,48 @@ + OpenKeychain 选择密钥 选择私钥 解密 添加子密钥 编辑密钥 + 设置 + 云搜索设置 已注册应用 + 密钥服务器 变更密码 分享签名 分享密钥 分享文件 + 分享文本 加密至文件 解密至文件 导入密钥 + 添加密钥 导出密钥 导出密钥 无法找到密钥 上传到密钥服务器 + 确认密钥 密钥详情 帮助 + 日志 创建密钥 + 更多密钥详情 + 密钥 + 导出日志 用户名 - 密钥 + 应该相信此密钥? + 子密钥 在线搜索 常规 缺省 高级 + 密语缓存 + 确认 密钥服务器 签名 解密文件 @@ -57,7 +71,6 @@ 帮助 导出密钥 删除密钥 - 创建密钥 搜索 参数 取消 @@ -74,7 +87,6 @@ 确认密码 算法 写入文件头信息 - 加密后删除原文件 用户名 姓名 注解 @@ -195,9 +207,7 @@ 请重审收件人列表 使用NFC分享 - - - + diff --git a/README.md b/README.md index 90e18b4b2..b57582e30 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Translations are hosted on Transifex, which is configured by ".tx/config". 1. To pull newest translations install transifex client (e.g. ``apt-get install transifex-client``) 2. Config Transifex client with "~/.transifexrc" 3. Go into root folder of git repo -4. execute ``tx pull`` (``tx pull -a`` to get all languages) +4. execute ``tx pull -af --skip`` see http://help.transifex.net/features/client/index.html#user-client From 2204195234344bc3909d4956f2b456c0f1dcaec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 20:17:30 +0100 Subject: [PATCH 15/18] Update build env and plugins --- .travis.yml | 6 +- OpenKeychain-Test/build.gradle | 2 +- OpenKeychain/build.gradle | 84 +++++++++++------------ build.gradle | 8 +-- extern/snackbar | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 51018 -> 52141 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- 7 files changed, 53 insertions(+), 53 deletions(-) diff --git a/.travis.yml b/.travis.yml index af67b2333..4bc9d776a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,14 +4,14 @@ before_install: # Install base Android SDK - sudo apt-get update -qq - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm lib32z1 lib32stdc++6; fi - - wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz - - tar xzf android-sdk_r23.0.2-linux.tgz + - wget http://dl.google.com/android/android-sdk_r24.1.2-linux.tgz + - tar xzf android-sdk_r24.1.2-linux.tgz - export ANDROID_HOME=$PWD/android-sdk-linux - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools # Install required Android components. #- echo "y" | android update sdk -a --filter build-tools-19.1.0,android-19,platform-tools,extra-android-support,extra-android-m2repository --no-ui --force - - ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | android update sdk --no-ui --all --force --filter build-tools-21.1.2,build-tools-21.1.1,build-tools-19.1.0,android-21,android-19,platform-tools,extra-android-support,extra-android-m2repository + - ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | android update sdk --no-ui --all --force --filter build-tools-22.0.1,build-tools-21.1.2,build-tools-21.1.1,build-tools-19.1.0,android-22,android-21,android-19,platform-tools,extra-android-support,extra-android-m2repository install: echo "Installation done" script: - ./gradlew assemble -S -q diff --git a/OpenKeychain-Test/build.gradle b/OpenKeychain-Test/build.gradle index 25f955dd1..cfafc433c 100644 --- a/OpenKeychain-Test/build.gradle +++ b/OpenKeychain-Test/build.gradle @@ -5,7 +5,7 @@ buildscript { dependencies { // NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information - classpath 'com.novoda:gradle-android-test-plugin:0.10.0' + classpath 'com.novoda:gradle-android-test-plugin:0.10.1' } } diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 4a0d1e25e..7f92d3811 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -6,21 +6,21 @@ dependencies { // NOTE: libraries are pinned to a specific build, see below // from local Android SDK - compile 'com.android.support:support-v4:21.0.3' - compile 'com.android.support:appcompat-v7:21.0.3' - compile 'com.android.support:recyclerview-v7:21.0.3' - compile 'com.android.support:cardview-v7:21.0.3' - + compile 'com.android.support:support-v4:22.0.0' + compile 'com.android.support:appcompat-v7:22.0.0' + compile 'com.android.support:recyclerview-v7:22.0.0' + compile 'com.android.support:cardview-v7:22.0.0' + // JCenter etc. compile 'com.eftimoff:android-patternview:1.0.1@aar' - compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar' - compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' - compile 'com.google.zxing:core:3.0.1' + compile 'com.journeyapps:zxing-android-embedded:2.1.0@aar' + compile 'com.journeyapps:zxing-android-integration:2.1.0@aar' + compile 'com.google.zxing:core:3.2.0' compile 'com.jpardogo.materialtabstrip:library:1.0.9' - compile 'it.neokree:MaterialNavigationDrawer:1.3.1' - compile 'com.getbase:floatingactionbutton:1.8.0' + compile 'it.neokree:MaterialNavigationDrawer:1.3.2' + compile 'com.getbase:floatingactionbutton:1.9.0' compile 'org.commonjava.googlecode.markdown4j:markdown4j:2.2-cj-1.0' - + // libs as submodules compile project(':extern:openpgp-api-lib') compile project(':extern:openkeychain-api-lib') @@ -41,33 +41,33 @@ dependencies { // Comment out the libs referenced as git submodules! dependencyVerification { verify = [ - 'com.android.support:support-v4:703572d3015a088cc5604b7e38885af3d307c829d0c5ceaf8654ff41c71cd160', - 'com.android.support:appcompat-v7:5dbeb5316d0a6027d646ae552804c3baa5e3bd53f7f33db50904d51505c8a0e5', - 'com.android.support:recyclerview-v7:e525ad3f33c84bb12b73d2dc975b55364a53f0f2d0697e043efba59ba73e22d2', - 'com.android.support:cardview-v7:45c48c2ab056bc7a8573970b10f8902742c5d443f180dae43c56557397ac39af', - 'com.eftimoff:android-patternview:cec80e7265b8d8278b3c55b5fcdf551e4600ac2c8bf60d8dd76adca538af0b1e', - 'com.journeyapps:zxing-android-embedded:5d6ba3931bd0b999695e363b571e95bd6bc9956340c1e6ce740cd0bff3d89a50', - 'com.journeyapps:zxing-android-integration:6f50bb07c057ac94319777ddfbb66f5d4f6190393418b2fc861e0e60d06f3c0d', - 'com.google.zxing:core:38c49045765281e4c170062fa3f48e4e988629bf985cab850c7497be5eaa72a1', - 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa', - 'it.neokree:MaterialNavigationDrawer:1174d751a54689fccf53c1fbcdf439745926ae19024f4f1017afb6b29643c57d', - // 'com.nispok:snackbar:59dc092a44c877e9ce5f9040c632d99e62d8932b0a4d67ba0ec9e35467d9047c', - 'com.getbase:floatingactionbutton:e63966148212e9685afad2370780ea239b6dbd2a06f6a3f919b98882318e6a32', - 'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de', - 'com.balysv:material-ripple:587f19c1e27f16c7dc67ff9ac73838aa1451086ef05a15cee38bee3e4e1454ae', - 'org.commonjava.googlecode.markdown4j:markdown4j:e952e825d29e1317d96f79f346bfb6786c7c5eef50bd26e54a80823704b62e13', - //'OpenKeychain.extern:openpgp-api-lib:b17bb282321351e4b00b4cd6422a57aadc13decae264019a88707bcb556439ea', - //'OpenKeychain.extern:openkeychain-api-lib:5f95f01c066069d4bde68992fd8da5faac21510d009b1fdae7a2e28e43e82cf4', - //'OpenKeychain.extern:html-textview:b58e343cf4c145e91f888806d06a2a7770a9e9331a72f08cfcf1128db30dcff3', - //'OpenKeychain.extern.StickyListHeaders:library:24e25da422efc08e4e7a06efbe927fdf17f7a9aa722db2b983385e2bf0004da5', - //'com.madgag.spongycastle:core:a9e4f60afe6b2661e0713190ade92c099b3f74ebbc67c1bc3e3fced0144307f4', - //'com.madgag.spongycastle:pg:29d544ff289fcaafcf6c3904185f5a6fbdb623cf1a1e377fcb239edc31ee9c17', - //'com.madgag.spongycastle:pkix:950d6eac8205c6a24aa87066fbf9cd0af50b95858b8d2b18d53e2fada2dbb2e3', - //'com.madgag.spongycastle:prov:0b78ffd7a59b1b690a05ebe9bb31d43405046a44a18e0529d7c826acb56350b7', - //'OpenKeychain.extern:minidns:cf332e993d7fcdc0a3821f5b997944df40582dc6c9f0ea36b5e20c1e289cb19f', - //'OpenKeychain.extern.KeybaseLib:Lib:af9bff087148e0859430d0b99ece096c41b315c5dc1ed500a68580b9b0e5ab11', - //'OpenKeychain.extern.TokenAutoComplete:library:40d4212a95e947efdb02f2ca66c95a27d49fba848471a6317eca2b9cc18e8780', - //'OpenKeychain.extern:safeslinger-exchange:94a1ce68217af7499579a042758283b1530912c53241bdfa06d1a079a5ae3faf', + 'com.android.support:support-v4:355a11466727e8ba00e239416aec55ac3cd3fb4ffc9d20c4a33373085c050bd1', + 'com.android.support:appcompat-v7:40114cb756fecffa4a51c5645593cf64509c576594f77e41e801368051115c7b', + 'com.android.support:recyclerview-v7:859ed80e3761f8fc3126901260b208505120b5678bcf36ad2cfe9c453958b9c7', + 'com.android.support:cardview-v7:4c03f2acce9925aa4f8845cb8cb37b3772c712b2438ff15f76c9e3d3bc63ead7', + 'com.eftimoff:android-patternview:cec80e7265b8d8278b3c55b5fcdf551e4600ac2c8bf60d8dd76adca538af0b1e', + 'com.journeyapps:zxing-android-embedded:57fdf8a262135976201fd89f1bd8016ed16510be92e7ea721b999daeeeab8f7e', + 'com.journeyapps:zxing-android-integration:12caeb2608f11b6df77d27edc505ac8580abfc97a09a814b638cb9df0ba06906', + 'com.google.zxing:core:7fe5a8ff437635a540e56317649937b768b454795ce999ed5f244f83373dee7b', + 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa', + 'it.neokree:MaterialNavigationDrawer:a1221a410c5f71bf078c5c4768fdf06b402d6006c74f8e7b61199e4edc2aea57', + 'com.getbase:floatingactionbutton:052aa2a94e49e5dccc97cb99f2add87e8698b84859f0e3ac181100c0bc7640ca', + 'org.commonjava.googlecode.markdown4j:markdown4j:e952e825d29e1317d96f79f346bfb6786c7c5eef50bd26e54a80823704b62e13', +// 'OpenKeychain.extern:openpgp-api-lib:f05a9215cdad3a6597e4c5ece6fcec92b178d218195a3e88d2c0937c48dd9580', +// 'OpenKeychain.extern:openkeychain-api-lib:50f6ebb5452d3fdc7be137ccf857a0ff44d55539fcb7b91baef495766ed7f429', +// 'OpenKeychain.extern:html-textview:536822e8fdcd3e4628d0a1cd6c252285ba5f8e5bfb20d71ff80fdbdb6cc8be8c', +// 'OpenKeychain.extern.StickyListHeaders:library:d9937cf9d9992863e32cee1f18ffec12df7b97dd83939bb75ee6cf747c54bed1', +// 'com.madgag.spongycastle:core:df8fcc028a95ac5ffab3b78c9163f5cfa672e41cd50128ca55d458b6cfbacf4b', +// 'com.madgag.spongycastle:pg:160b345b10a2c92dc731453eec87037377f66a8e14a0648d404d7b193c4e380d', +// 'com.madgag.spongycastle:pkix:0b4f3301ea12dd9f25d71770e6ea9f75e0611bf53062543e47be5bc15340a7e4', +// 'com.madgag.spongycastle:prov:7325942e0b39f5fb35d6380818eed4b826e7dfc7570ad35b696d778049d8c36a', +// 'OpenKeychain.extern:minidns:77b1786d29469e3b21f9404827cab811edc857cd68bc732cd57f11307c332eae', +// 'OpenKeychain.extern.KeybaseLib:Lib:c91cda4a75692d8664644cd17d8ac962ce5bc0e266ea26673a639805f1eccbdf', +// 'OpenKeychain.extern.TokenAutoComplete:library:9333f1c269996812baa18c0494e42f931309ab00a3cdb65a6e4d70f82d4c7107', +// 'OpenKeychain.extern:safeslinger-exchange:d222721bb35408daaab9f46449364b2657112705ee571d7532f81cbeb9c4a73f', +// 'OpenKeychain.extern.snackbar:lib:52357426e5275412e2063bdf6f0e6b957a3ea74da45e0aef35d22d9afc542e23', + 'com.android.support:support-annotations:ab6b131ab0e1edd165d21fb4c3edadeacbee9539aa166f7f7cbae05b60dc207a', + 'com.balysv:material-ripple:b2580520bcb5e5d77bd8c42b030317accaf8f88e7e57c46a29c47c8a62d4ff45', ] } @@ -77,7 +77,7 @@ android { defaultConfig { minSdkVersion 15 - targetSdkVersion 21 + targetSdkVersion 22 } compileOptions { @@ -98,7 +98,7 @@ android { project.hasProperty('signingKeyAlias') && project.hasProperty('signingKeyPassword')) { println "Found sign properties in gradle.properties! Signing build…" - + signingConfigs { release { storeFile file(signingStoreLocation) @@ -112,7 +112,7 @@ android { } else { buildTypes.release.signingConfig = null } - + // NOTE: Lint is disabled because it slows down builds, // to enable it comment out the code at the bottom of this build.gradle lintOptions { @@ -123,7 +123,7 @@ android { htmlReport true htmlOutput file('lint-report.html') } - + // Disable preDexing, causes com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) on some systems dexOptions { preDexLibraries = false diff --git a/build.gradle b/build.gradle index 6b3eb2c3d..f76289d49 100644 --- a/build.gradle +++ b/build.gradle @@ -15,14 +15,14 @@ allprojects { jcenter() maven { - // for https://github.com/journeyapps/zxing-android-embedded + // for zxing-android-embedded lib url "http://dl.bintray.com/journeyapps/maven" } } } task wrapper(type: Wrapper) { - gradleVersion = '2.2.1' + gradleVersion = '2.3' } subprojects { @@ -43,6 +43,6 @@ project(':extern:spongycastle') { // SDK Version and Build Tools used by all subprojects // See http://tools.android.com/tech-docs/new-build-system/tips#TOC-Controlling-Android-properties-of-all-your-modules-from-the-main-project. ext { - compileSdkVersion = 21 - buildToolsVersion = '21.1.2' + compileSdkVersion = 22 + buildToolsVersion = '22.0.1' } \ No newline at end of file diff --git a/extern/snackbar b/extern/snackbar index 025ecadc5..dda93a48e 160000 --- a/extern/snackbar +++ b/extern/snackbar @@ -1 +1 @@ -Subproject commit 025ecadc592e591a96fa081265667efc0b0f0e15 +Subproject commit dda93a48e51006a0394241931b774a65bd54a907 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c97a8bdb9088d370da7e88784a7a093b971aa23a..085a1cdc27db1185342f15a00441734e74fe3735 100644 GIT binary patch delta 14216 zcmZX51y~%xvhHHR-Q9w_ySuv+g1Zx37J>zr#ob+lyGw9)3r=uJkN|mvWH8njuHPs{05S7UgNXl{$kZ=G13=F`OMOiWqi30I=Ykd1dO$Y!0sK*JbV_Z95 zI)efJ3s^=1`N}Xs^{2gOdTl}UU|Xoa2L?8R7cjs907pmwKpd1yj|J*(hXFA+(|}CD z34u{zuq+B?3i3jBMi3TN?xqfLSJgKWcI=nXclnWZ!igkc=;wVCC;ZoA{CsV2w$)bwo2cHG^_EOO3(Ec z8ETh#2YAd1@L*jr2>qZjUhI2wi`;T^;|Ii$FKNVPsUW@~r%?Q1wuGwcNk(>F|NgYB z5hh`Ai#7pa;g|&F^Zqq8TEC|bve~Ge%*IXdDyUsd-JR(K%5OM5{Tf~qCrMBARISB; zI^84%`warVV(oJPaMzwBflr{+cuNpMx|2;!t|bo|op0TUdQ8TY8M(L0_LEi?krHqp zoYsm4i&eV-&&8C5zA^Dz0`J4{ITrj-G5#4sB7BeDnxDWv zv*9OA9vl={1aC{}XVaPmuda zzvBh6)N5V;C0B)^T!KMA9cGjSIJrBVnqE42L|H}^b6jsV_*8v#qfxZK%uyhL1b4rFbwXcdmi(-87-Aq4QpTezfG8 zN^4`4OYr~-hh1i_@@ZBnvHE~I!@HxFXrm*BIAy%6FXHnZ2y{s5+5S2ZA%n&~Kh<5m zeE9d02K5?(BY@ahP1K5S7bs0ajI{~G*bd|VwOspecoTZ)?21>AzMJC-*oBx* zX7S<)vGy;iKHDOR%j4k^6vc_^in2v{H#2<|!9!M&&i^DO%8#`Ty9b-e+Bf*?(c!^D zKOeklf-cOuD!i8I?p9DiU$6k)TUG_C3%yTsV+KxN7ZRuyIw$>{VY0Fztz9&bqhFtm zx&3uu_I()5gjC0eU^w3=*r}YOWsIEypk&4k!h($X7hcgIKVj8pSjuESlB>iD7*6Rb za@i|Z<0VR2RG!JJ_OK*qeg$Q#%q3A$!%l=0oqImA?6}7eOW%+s)@Ddpvzcl}|2h}P zB*jJnM^qpm*qsJo;(jXuIl3#ki$0ews8f;jC;Z_WL1rJO>{}MCkR*MvX9p@pBU8(EyvbqRYG1(j5*BiH;KRq_D8qR_D z9AqmK*dH;9xlHd|fVj`1Ar6VgcXGJTvVy;OrH#DQavi)sb=@bDB+j_+o-p7(Q%VEn zfY=4+Gn>#yun*9niurJ(C2w(*yHwk{BNZDQvf|-b> zXKL@Bh;<Uv4&5bt!&79q?tc&msZ*cK2?crvO?2~c} zBlSGn5cn`QaDfFPl(=rNTlT@X)a_i-RFIs5?jyl%;=7F`=R0oqw#ZlO?e7K8<22fO zZ&`!eypcX2{2&sTB_!nbdb`5o!R}S^YwT-uK6I*Rhed-_LsC!@fgNrQ136D?jFnDu zs{E?%j9?K3tCv4t$|J1H2lb|uvqO%`=_D1o2&$VTSUI3v;fM0VMV|g~;k68DN_mEf z`dl2tdOmMPb=5S1g*e6I9WmIR_LimKzF_9&dd+MCMbnwV{0A`dTz3TI2`eH)V>T7TH>dU?y(kGrk2P&y>zE~X~k;>mOfu?ZIFNpTQ_LyZ|R zILX%`+)n`Qy-r!k$Lp)8&1x0Mz|I2ulB$-yn&KK$&uD3ToZLf1q#~yy3ztJu*R&4s z)|vIhsf@$F_PP|cu1Z3MZId|Qis9Z9)uYMpF+LR7Hz5#(ft#9%ik~q0t2LvqcEC5K z&RMd;;=v-01cJM*tG3KX#QNuu@w?({W+n5eXoLcj(IsU&b48m&v*K;6g4q8*+`@w^9(VAO4kc4g3o5Ztyi7)04WZt z=JdMsGy`{6sR;(oagCYmqq})zP(+v-^Sv>EXZrfENAyN{L+Quf z_}8^hlp-@D1-1ePFlZlqf8_8W@sF;>FuM2v_2tMo%9@RIeMy4YA@}f(b|leK(N(>z zj}?W5+19JSjL$S@O;Pk#lBI#?#7}VJB0g?MAl~&{-~`ou;9e;M4aB!mF%J8r?(#tN zI?#Vx4j#NXl37g~S?!zVsA?n$^4b+Qh8vVNvyGi6m=Y5jnQKR zl#bQHGCY$pAN=lPuQIW>UGL2Dy`r3vm{Uz{+7#?*pC=XW$1Uc;$oHmQeiNz#mQ#;3 z;INZucb546)m!l{k@0C?R~s8THHYb&^wD`aMPdq2C97?+(GWrDsc4x;(PSKLTH7@g zZ>VJ`iS>Klyk79EzJ}|CX8Y7w=VmupU{z7!7B7ptXOsR$lc^Ynmp9UU7R5DbGW1v^ zM@1V^x%t;LDEY#On|4_(OWnfk;`ho&CO1xrL`6ZeZ!$HGth^)(rJC{ClW&6J)$ehLEqGnkC_mTF zk{C%2ZsJ1I3U#yW&hwm~*3jF@0`;}`&~H2wm97G5v*YKj1oLMO#BF*=$x}7jYaUQk zkH%?d_)*vA{2}@IIqmbTJ${^RRDK>5`)H=U$KA(HP8$=xl?Z>n$0GUW1OCizxWiix zEnjl-qIoP8&q&0?NpKdSF)=tQbs~!oL^k2rhU^#;tcBi1&hZLgnJD_muYn&DnWkv< zB709NWftEKd^{ppdK4}H%wUMW(Ye4n@1B|}zUEYO!yqnk#-B0Oz)sK~IgGByPZ|i5 z5{^S2N5h7mD!fQ87z-9DP$c#FnH?wiCyjY4PuS-QN69@YPtmV3iN$vrBQcjd+*yth z%_HYuZ_6Gbg-Wk}_Jh%eCoux4rB!=5{JMIHmG9fR$D!}Vcp8|>>S%>1u)K7ctMn{W z#jfETHH_}Ch{9B|Q1N}W3*YCx*Syn76zW}v1FG*G+?mh{+ zURRB>@o7B;`j0kIPrK_+?H>y#d|UiHIS`$9E;w`)OB2e5Wf1EohfOX0c8}IgnVtac{qD&^|XWB*5w~`Am3g>VMC)n*zR_1-dW#@!{{kM zAwPXqM%I)=eMwcyL&YcI&pVAIi5t>N&v2 zwy`-8ImEq>>F*mvA8F+y0E=KSHvgRsqa?dCi0t{4hwjTkg;* zI?Bk0VH;`lCB_Ne-o9YI9+%%X7g0T`HiVVC)ZJ+&pIv0PB8bXOvsWXm4y}`aDYJm) z1coa+*FVrxtB*bLcD_q~v_^YllU;#sr5#7B@xG=s#J3J3d_L6I$YBSeGOcL-eQr3@ zZi^m7>L+U!;DQgohtbE}@1P-oyx#48UuzF&?Wl7r#IwMCH)AegfDFZ8hxRB}1o@0!Il`Myo}~|j zoy$7DI2$S-)1i-a9$+qf6AB8qPbOTJXyS^PYyzrHG@0GUW(JoKBpwX?6|k+SipHN5 zs!uPye%#UeU~XVj&!~T0o!&?OS!^{bp^D%4T(163bZGMD-At4N#{^4PkH{T~yf@rf zc8Jl0GLTL{+}+3*c}*LV8zx0pS0)><>POufz&M5c)eqAyUugzeteubKCdQDW=yVu< zB@UAvU`u8oW5Dlzz;p6gvV$WOB2?d6)pLiaOf>=lC-%Vz+}|4zo67Y5{j;Vd$w& z9sl}$erpPqx)92B2;Ljx&Os|{f|T4MPKPBv1>m?{XN^OeZdNgaqx3KO22q_=F}@-z zDuBCDTG9G!{Q(+bN?}K>PAePbh5NYjD#EEvU$C2gbDIL{_tTgLD1+jW8no7-@4=3S zhG}O4en*2%eIx8IKZ5f(7?&C8N7u}hfV0QyTGEf*qT9|mt;i9hu^k@`3bG3oEuPU_ zEr4Qs>>9=dfjvjxlj{n{oA%ISMjSw|6L}C zi2O)(_QTenwGrwx@$4f*PQ$DU$lXA>E*3eK=DV<^_Bvc%9x>#``{O=?WnRo5lT%hs zw`|FlsmFH~y(8b{xCCj$iQ~up>)@cP-iL@6E3?o$T8PlGjsnL7_figUE!-Mh0WyJG zk|NFHaLqC}AtfO;?7cK+A$)7_YMCG7CPd{Z*-ef72p&9pr-v{Ny>NLmC#ZnA)~0i~ zUQn$9!7FZwohPOn@SXw&{t<1d-@!k3Hm}1qKX7;imIaxjObz0uRjq`p~Iwe!DnKXk97)?*$`RksH^1(m^Xk@fFwioIp( zJZb9~?TQK7GO!;F>D(+G8E|OJJ)Iogb~gjda+o2;=u?Yjv`3yKo)INBI~980LXjLn z=HWmpsk0HA#xR^rD6LVI8gVLn4E zuFP6%aKje#B|yN>#ZLG~)pn!kppnF)n|o+By=USH$`79yf(8^1DQ z;$N_~wCgigD__WBLZRsc{k3SgcZSNJJfhY*GzX3yn}~1kF1?@}lvOBeM=m5iJ*vaG zzK+9f2vyNcB(`e8B>6H{`rgW3WFs`v0<5)YWr5)BQh z`w(O+U&`?3ZmGcuRvNQqsbAvyEW}L8q)q<3go1jXko`VBROw3}lboc|{Uzp?!*V|# zg`UMi2KO&}_jzEVYU_f7+S1TXV?aA@+$ub?vA#YLkR3D3gAlg|2+VtHpRzN%_TUPx| zGe^#lYKSm(OnXOubwgcwzCd4buf+1^=JIrM0Ao7TI63VaUX)a&9XR~)H)u#7yM5-u zL|2KO!Hu~kRPyO!;xJrQ8MeHkH#g$yXYX<*@uDc97Ti+9fN>YnqQud-UqP_GK5NoJ z?klSz7K@cqJM1G|gYN?=$fV+kxS+<^s! zYR*Z^e)5lJRwx&cUF&rch-1I2<<*;%rpL2q8ydX1t6_J`juMlUKxOm$82PrxtOc^8 z7?i})$V5&X0Tfwf$MvM%Z^krx4W!B=_eLD#b81HjAMv^MAy1} z7H=wua$aMCD6QR`#e+fTxN?QY$g5UfnueZ_=!;`wC(e|B*yxx7L z3@)}t>kKBF;oEpl$-Vl>jB<}&5yvwK4H+C6w!}|3l``8n4=LT-k@lIFmkE3RGG&A^ z5+;4nk)Kcrn^-M5f7&u|&AsDRxEk9OWXfxC7CmhkcRU-7Z--x{hq7*dvuKUe!+>W$ zsDKy!l@h3#5C85hVpsp{2aPH|T#n~Nz5)drW6mg68umxHF3k&k#IAw!PcHg7TOPF5 zQx^EYV(3b~-rfa<2yH9DJy(2Xx}yVG?~9(!fb!QLnnSw2p5wiw-L0j!kr0b7Z4t4~ z)GwG2e+>d5lf0U%)fV=&Be5rTYS#I2V^SZOZTx{Q&Z>RaPU$z>Y<26L3bjg2l6oK+ zlSoVs(#z-3U`F9e=qrs1E13v<+-w86rYKBNdc!iaV(4*K>U4{dJkvI1R6zxdPofIc zktG*u94bMp+LBd9&FCE91IuqkF$dxmOHb6wNd5R zRVaXENA)~sbWZ{xCTLYBI$m>Aq(VFq3Hted3Dx(TDru!*X2vbujhq5RT$NKbBJPna zsG@NxS@O}db-DTGWV>bf#s@Hj3MnSJFzIWk0#-rRi*IexEefqB<4h#`XZqo4Rb>&Z zj1w`i5mvccXuj(2=?LmFFq&K5rjg=P?B)T3ipn81qz6K23TMg-Z1N;4ru%hO=xW0F z*L2atR|hB)2)M|m^Hof^F`}|Vfpuix*i~X|bg~3S;K>)wi=??$#byPa_BiBB@G+)K z!d&yh7FA;Hw9%8dI3+5QZ+EbGzqSvEt2)G zYSOvj5e=nd>NagchsRQJQl%}hUV8-%HIQinS(PT0KfK*L(p)HL!4z7OFi%@BWTD}w=Wo2EIYk=U{&`R>Xf}#}vb{B!;b8l^jc*hRk%-=C*dtD1VY12$!zhL%Sl77`w5R_ zlkS6XQi|_VOS#y%_!ydOMsEtX&U8xXL6zLdYKp`2%M;)56;h}&y}6mwWs1=oH-<}$ zx}+m_XappI3=@>@c*jW(f#QZhQk+@bAv*q#PQ!tNbg>ZvmZyBCRIwc2f{ukZN({~= z+_Ns%4o+h`}x|%x{=au&-+gp|#~z zl@{Q-cP?jzIoM3BCy$2y08g7GED;?>!DwE2N+@6+ zz1ahfW4D1as(~%(T+;s-kJpRAuClQ2n@aE-dMR?o0p1f)wjZ;0KrIu2jylvgxy3cG zO~!2YQt$>JE4c&dE^&12&ZGE<$Tn2?d}6M6cw}R+zLJXHQ;1!W5GUnpOY_|Byy^ec zKs>|}!rkE~&|x1hN6MowX9*5x*5E`<7@R%Bc{!a#*2Fe<45`RUR&2`yzW%shK7sfl zs2%H~DXB9<^i)|a2WSue9h4JTuCHu@WjRP%sE%MM1;u+9PuQp;N1)jpC)@qZYmQ$y zg8iB9f|aW-{7cpJy*npW7jNBF`O**g;q85d2u`T!&)id+O?gvv%=9kU! z^YtIqCX;U-&>v~@_9^JWG~^2sb3EO!C}w2Iic0q(Vx6x|zxV{oH6fK416V^u8Y2 z>{^4Y!O}X&#rm0g!+K;gb1sGg&Ch)ph#$)Du>{S8bg|7m8SQZi69bH4J)lMp{sI7% zAg_P&%)Q#iVcIr8_}sYP=agX>Z4g3=Q(<_;suD6}m`DnnE;ABgWFF(;G!vo5FL2to zLr{sYR5OoDY~(W&Sj_LS5@-SW*cWb)pROVyR6x;a(@I-I;;fIW*_(#D?^-8}d)!}N zuwJDD9^pbKhcCUHW(B;_eJF^_UHQ6krpW5N8mRlZNF;~WSohL#P1U#+kEk|5T(qG# zQ*uW0L*{o~cCor9m=ABv)y9U@Z4=?&tx}ORq_V7h>HTD0@~$)&Y<{I0;bLQiynSA9 zV8$cUOcp@{0Pb9DRHB()^%g|yq&e}i#GD}@c^KDjgSdoYEOin{Br9(|hq=?AXvqOC zM<5}aL3CEHAy=yqF&~O?9AwS&?HW-diehyfRg5b!#h+Vz*p>}dB~&BRT6p+zc1^ql zD{_EULC;X<8A*x4xvhec+3HJZd$7ufjL0(BDyx~mI!MkYrgtpcUj-nB=BcI97V`%X z2NZR78(fQe>$z2cv!9CSQ%=klHSTnm^Sr8J4+@x54;f}#J zYY$2;mHoaCi(7rsii&O89=>SWKCz3q-x1aXDSM0_ZZ_%xOkY0VdKaElj?PnQu5|8s z(HW_tpKu8#c(X;0OT2@Qo4w73o4o^%+?jBR+4*BDKGI=nvgy-Qt+kfxygAhzeS+jH zuf$nr-)%y+!A^aWbWP-lzFqp;JFsMdJC#8t9FS9RNBxChxw(zDb$YKcY(+|gZjjB0 z>1RGjS_k4#;DscEM(w*Y&<2{;sZ8lVq!oKqb*sn@<*KvR6R7U!X6;9Mz*4UhEY$-&1t zEOf~+4}MTo`-$1)58LJP=1Ml%D0@}aWUO+jO^jVvgch^2SUwkvntM(v!*7h=2Puoo z!S9i!{3LOclhdN{?7C=bN^*#sXLy#Pej&DXd+eWfkYtP1Hk=#_YkB1~-j%Beg5-uw zlx5sXfmC0DO-(}x#=ax4v16yq{%8(}O8<3>KE9k#Y~ej}J;>9y&DYan+&YJ9o}1Qb z{qe?cQRM39y$ZmxVlw)M-Bi+x<*;pB;+JFv)hQyojTEe`RRzLAlo;egHS=1HCV8EU%ZumYA}c)r}Ii;081DitMieL~@8{U~D}AR{Q11^2Zdn0m?IecWBq z=Lp}adw9=()J2yt81MIkC!kPg;L7YRWm3YR^Nj2cl9WMD`;@DCD~fZ*`f|1yTR<5j zS|t$0GM={JSexcBZgs3q1H7weU0oL?Kh0P@Vdf11^)d-&A$oK9uNk2(EX&PP5?ZI5 zQ7t|>tz4dRZcFQ;!muAs$c3dcBjT}?j!cDDozHMq^lFZb2E<8dcEbKEhUgrkLE)|` zvYrXD9$DPjQ$eHZW9jN6o0lZ^Ms&}j<p-E>j>bGpv?j4e4e)K4#yIt@ni2`UA~1)qw7fNhj92Y2 zeA2W=7L8vBbg1rqKXIcux!vo*n)F+7S=+~14a^wg1=Q+zHL$}Q&LB>&<32H-e2FCX zu4N)WmPDq2xQNqaVC@3_SCK;9h5Q@v*ZfGli7Y-Y3;-baQk_8hw?qpG7_1cr#IV5i zGp}o7<3r%VLer*>Ekd+CBZG^tpL-kYw#wc^5BpBp=`-Il{rZ@#g*mLcT}Rn>`vxM7 z0s~CFn50Hq>ZxrFb$;DSO}$6#N9?(S^z{=|%`v9?=-ZzgJKos`-Up+Jz-%B?x7(wd znMrUB1kdyu6P}*g4z;5OaMwwGFb@uDNF$>gf>tmHIbxsOcruWds8`C&M}BZfgM9~` zHtj+N6M09?_}aUlS;sdWJXgi`u)mm5BN7Z+J< z#!tR8ghnC~ky>OFW9~Y{LI6v6i5_i3f6`Q$Vbq4(_x12D>}xxpLyA3RX31J-y&VKL4vqReQxBVdfvVFyTV$K;~7Q3_YblfF6 z?D(j?Ns-M`QI;9MCtq9d1vdx&b+i$3aTMC&*rTnVy`ujyAAfJ`*kf-3X|Kb`vZk&$ zm-Sw-it0Y2F0kRMDyY$!ALPlE?4If+_CCi|$fe(7anXZfRGysX;~vuckmE|Trxcw^ zB1-NrKAP@PM|;#16;W>U`Ej!TBR47oA-H|=uvOKxin4MHiG^^h^u^Lsv3u(9p{Kk2 zQ3I9jne5_ao>ED;Q%on8OA$_pO*;a3AuM@D>g?_&8Njei_jP@sqOuqy(@rs-Ux)?8 zNefb?{qrw(t!5v^L0rVi9VlETYwn1TAru+2%u%qoOjg`6@Vf`jicpUG&fxG(+s_aWH#S?8AIC=pz{+5M0= zMen@b8O=m`vV&*gFckKgoSE$qU1ewzVuEZzkiSiBqdJYIwZ7cViY|WGLbXoflY5Z5F15iYPpm6A#?^0Is=x3Th9NaHq+pNBSk?777w1sx zuvQHSk;Rc?J`7k>yBKyh*Yl<}L4l86ugK~p%shUJL@(E$`1Y+MdwKyjUsnDX4@?&E;NVJAvF+I_|n?6?GZ%pR@ zrqiBU$(&)Rq(jFbHqvl0;2aiIN#RU)`o9)+&b4c!T_9xTyJ=Yw%evc z^?14}tvjKOE`7gp(+jc~2z~nwcD5YhYdgg4(y}<|=X;A*aF$hf;d+}TA?CiRb4LRQ z%($#r?{S0pXv^hvYaUbs6=gYuCs~g~*bJgum*D&KmGQi?b>o`JlN>c*5wS!a}AX8Za^3+Qz{#Kv;Ye!0+d4`D)1vGb-fg9yh z1kJng#PXRScAP_+94BTEFoiI9OT{UhQM6w4I72X-HxiPINF%7gW)3p!DXdHE8hhrc z&z1LitR+EirE$XIG={#$7Q?r1DJMx)yF;j^9{4#!9H>OQ&ZR7lm!S$NC=6t98-&+l#?jLC>e@cV)Cf~;)*?nany#^i2s=;xHO zZ7r@GFv#xUg(A3hz6J@ z?tZyhN_CRqkFN}ZV$rckgdVWOrWJl!rwU_aUpmtueYO&`>7{dO7E`5v0X>@2)jO%y z`rOFYM%|`}&(PnItTDA3dI*1TzDqLSGqY7by14B}50ECwf|2}q8AK4b16#}t%+b*$|5tTpP6Zip((tjz3tpao4DM5UKf zUq<;0mXViQU0e`?7BP@RiO->r1ZCsAT3v+S*z!%1ePS7XWviwIHvt(0mSMS2mm+BG zM~CYUo(0fgR(gIv9(EA_5)-{4+Nw4_B0w(pzFSGQ*g^}j?42#VFX&l zw0_zEG7K(ID6FR>KXxA`dB$r{d|{SyNqu^5@XN7KN0gTeaKTfh_DAGh}F|{_D1_Z+#8Q_BNW! z)|5g`=@I5+jQD>%@_U*f7;QSp-<>)x?ND&k-#ym%W-&!CGe3MesX<0IZ$ZkP(4Yt1 znm@QIy=U-0y&8kVzr75jcrc{jyh7NPzlL6lOGD8?)rC}`l`euhpvg4!AH2E^5yYRK zn>{bYE1t~ji*Ec&Idm!_C?J>wgwlgh_suB->JKX1{T}R3FVxfeuZ-{hQ-5h+K9>E} z?jD?g_6LWYa`9&lQq$%q@h_#;885QgUgkgxYVSj+lT6R}%d(%@0QrX{I}iM?QH6!) ze@9bF^#3ZkD;55W6a(mz`d z0vg%=-Mj$mY2^4b^w5ZhllJ0t2WN|y3Un}V42YNSf`9isfasg>csu_NS~we-+M4|z z%*!a?cX|2m1N~3)@)rg0By#lohcn%O%e4GxYM%dsn14CR|APkr>H`QsJx#16|7VB9 zKNtWwsFnru?}iDESMb4!woBOyX!YeJ`v>d>`3f$FLt20EgxPy!uAgs8s-(u4@2^Q=4VnJ&}#VN5R{j!)4v)BL9s3Tf1Ezm zf(Jf~@+#vAg%Cv4`p3F|YW4q7_!ILtnBaex?*F%AL5!_<;L$jsfF>-EVJp$=4F0FW z8UP^qN8kbRtM)KLL{N7t!e6Ui1n@Jx(wpe2z&);BxFQbXt&3^B+t9`GEY7 z;5orp0ZRPXpf7EI!2e0YA^i6hnvi(~!?okTnrlsB9a|3u0BAx00NnpbB~<=9F9Z;Y z0uBiH_j3O8p7sv|mFlbH?smLa$-mcNy%ON8+Lqv0tC z1QEaw672muH^p8&@ad3O^P+lLUYV(3-)X3$0RW}6|E&QS_5vh}??ZdVy+;XTsF!&AeQ&S; NP*7i<?;-6gmaAXu2-u7f4GySuxSK!D)x?hb*Uki2`p+{aq8 zPP2R0uC6{ceWv?VSrWu>6a=!8ECeJx000XMI8}ESk42_L`hE41M~)Q+000`XLTcE1 zc<0V%&R~H5p%%V@d^H)R{&T%ye!YU|z*f>?AQug(`-WW;qi$9R1EVHd<5TCFtYx z3pq1lfNFv!xl-wEWn#BH#=)$VFQDydV}^9lxl zAZ~vdov=Ve?4o``ZNzY*yym=ef%63^DTo_}_|*xbN3idW_;V~u^^PPcF2TXj#4LwT zD~@>19qI~TB|8eANqH&m`7B#<1Q4x0DdyNi1Thu}#AfH>)YA8Lh$1SQQ#_Hs<0T?T zqbqf7ER`9O7VD=X^DOZNQhx`nWQ~#NXYW3AOOzNteQWKdp+P;~M04L6P$b_3)PD z7VPNieB+{ObyXEMhpw!B{M+g5HY`1o360=8PRB2$@&@?gdVZlL?_=eEfxjdX!v9G) zPypoiYuePfBNzO|rcs%p{$Q!N>M+Q^^XqnLBlHv*07!cSdM2R; zYQcG9?zjRKy+*Cy!Mcz#ZflvsxyUYR8QJRNQZ`4Rx_5n+oR7tAZ6P1~?k9H0<>csS zOKoN8xmqi~&y#1rM8#GAUia)rzUySI{3I2BT)hGTHNTIY=Zcl+vxB*!6-)o_z|E%% zqLastn|6ne^PVI_%528Rvp3>y!QGpv*Z=iOW z-ybpO-6_N@XP-dtd0lD>d&WHJeC<%)b?{dc22$%j8)Tg%{SX`%q`OoEySE5@qLhlf ztPs|bf2O*4CeD10c@o6BuXs~d!0E3h|IGO9S?U5p`@t}F{TcjH^h;CmTiQ`DCLmlT z48|eSg!#4f21<3euL{#vX1AH}el90OY4#3Qb(Nk3y?<*MJ!ZLDqfEUfj1}h$q!mtu zMk9xmm$;w49?mMNfO{l6Jytud6o0G6nyc{sMje;|$tn^UGECROw#xEggAjc=ilhH! zO2C4-6+V_d`~(fB?4(M6*&>yE3$U9=7{7odb4_8cQGBfo-T`4kd5&Q1$k_6M@)~dqftD zcIFZdJka+O2hQFSHHxm(AWv_yd|f$$a3b7qEB>N3mvci}bXKW9ZU|V~yqr}Ose)?* zI2bW`!jyMAw!va9PTrvhwM7>-oE`PGwcE-Ee`#$qSF_OJwxqaRQ}Y&SK(^AteE0&= zIjl6tJ5Ni$oG*x=n4Hf}?E_X<;ff(D=ro%je3F}p$mRux0PG-$lO*AJkH&Fx~ zu=X6H_Vq1;?hfSSPm(d&!~ELJZ#b2k7 zyiH)_G3t+O87OK9&qw5RQXCQm__?j{*vi9}3yp>A)Q{mx2Y8^Xa4a-%M2zjJAc9Zh z+Pn~&j(X;VM%D4+dt`I%biNPqZdsoEWGEqK;;UElbdXat@`Xv3K}3`ph}a7-FJSo8 z#F7}tOs1!=((qt$H3W=jypPz|Sd^mb+Xi&0SO*7EV((X9@D~-)E=}aXxH9esnNLK0 zrM=CgioWuh46}I|;AuaqStc8sZ*9y@sq#qtn-gg~mL&AC&aDy7!LW2n6f|gwYOXnu zYw!n?H(-ex*8S5tce;K|<|xTdDBpgd*%eAxh9afZN18P=^_#=&rAj?ex>s!HD{z-o(4`&4SE>3Y43dbuHn z9caQ1y)AAp1MI$;{aTyFm*hni`BhEE0%b9pYg;*9*VxG=`kunUK#P~5O!6xa0qNwXuE;k!z%;3gK`XsG`kD^nNUMnShY8nmdyzp0G zHyG(P@j;iK+#$gf;lj*EH#b%!>`bMy&$tc9Hp) zPr}J21l>84y@pLinK=JvVUc})x{f3mQnz*uc$6YOxv@8QTQP2L6DlJc)8$p&&G$g{v@8q6#~Eo|!Nf=l=I-!A^rd6g zAU9j4R>~HKaw2i20pR;}_I!2XHD$C%rUaC8+{rT=_}J| zYitIP6QVERvYb`6ytGx_MYg1gRk?~Ml5z*9nD{gD2#F`{EE8x`*1qU1Au4{+(A3(Z zP1m@?#C>y>p>$h2d~>Eh*x4sb&2%pAoZ6D_9I-)WA%b7iX+AemoNbUU1nnTjLD37k zv8cxaCQ2nR&ecC1l~AaDsQ3~lPLxSmkwbUfki()c3r=IM#Wdg-f=On~WGffAGpcsW zU_js(hK>>)-|uD_oc>({KEMACC7yB>=Y z?jPf9kTZkjqqY@&N(3*Mf4=b;Fif%)O*&nX#^eY!G%A&vwQb*a=H=Qy6D4}l8bTkg zhk*|RoxAdgY=}&=C|f=co7bP8rx<*CwfUaMgB&H}<5g;*9$C=`q7nEM`g!5Qk#+`X z;IgYQeXTF<&x$+;k0tR68|2*>CTdk|CLcFRW-cjQGdeeer@;8FKy^YiBZ`L&HV%_6 z!7Z`oi)1}FN$&boE!8RnbNSes?+9F0sgp#FtLkgMMeh%Ul+k|Omm*B6c>D~>|1O(l zHOHGbDs^oZ#~)(-V;B7iPuOXxaqB*s3nWa!9_#oTEVxSQnLMemm0x8xKaD zZh#!9s7wrB94)}h>KfUI=SW;5jUz9<^1Kb4~7nI?C;NUKAv3iop;l6PSfFNz9j#UxA153#~Gq;v_R+fs;j%F`Q4Bfj}? zNnbUPi&uNIL9ZZip1CsKDkO7321S;ThjqCH1>Y`Y_KlG_rlRQzN~MBJ49Hkp;`EsY zG3cNO|4_6REk~DTZuk%LBakQbF2l%yaZhV)!>wzP2ta2iws#o z`Z2e!dEA4mImkScClG#Hf6PALQzCL#0cylYvk(Lv&Mu3_`UM5XB(f&gBkc_LmCQ+ud5 zd2Yjv#t(WiANj6GR%D(S&A)|&31I%g;lhd1(AGS8Ft=B7_R~Eh+fg^t!6r#? zGov6fNy-lC&M;e7W_Qqo#IXJTXgc-ufXGjBZQd01iI{7P%XI>-8Ea#~s#|##aLuj) z^@-5r!T1*Y9_=3T`wZ}hd9#!t{FS}mL`JWa-a?vsEpM46U`nhluGI5*6eIbL1qN3z z>e+p(8F|COPnLFj1-$=&Ire6lOkGlkjsV+o5*3AcVmss+%R0iHE~TGrd3d`jq{1~_ zryskpZiL|cyQ*#y^JYrHHMP~ohp8&5w921}!(|t>NDuWnDFr~Hi`om;Bg0(%Sn+wH z*rNs}r5W&}y>sRX1H#5KS+s+ra2KfM%=s7l`9GOv z3=l^ajh`JC2x_^bZ=Uj6t28{Q@9C9VgVOUyrZz6elnr?l6qFd}X_I~Mw^<9}W3~O0 z7lSaz1AE8)b2EWmdKQ%rq{)vgxW6n=OB5&lGdU#3-k1mkpM3~P*+FAto_yF-KYYZ_ z-r;o&=W+`gc5El=I;D_%LVY)0uv^f1240qv0eu2!TtX?%2nuiMd}h0>aXe$2eZc%h zxSjq{LXr2@hyLKYVYen~p=8(Q@&Y$B$S_b&75U|7i2ML>OW8X?>QRl@Jr+7W=Vo-$ z3r3d?X2+^<)9TzK^l~n;li{y6 zIC__rO4Q?b_KtC|jg3+{Xz$Bf^z?}0H{VeWjdZS}lA}bnXbF0UT8o1;?zq79 zxA*LgE)T*n!8)TQ;HR;7XTg^yw;Yf?%=X;}JA|l#kcZUFlkhm#)S|;SNfkaS$;WL ze>!pPv6sH@7Qw!UG0F%wioU4qgSyQ4EY6Bon0}m(V@X`kA9Y?U#LQ!LV=^6uvzOj-6`QuKsO({r zQUG17sMmh~>9aAqus5rw?$T(-=W8>X7Ac!9GQ{euH>qIYA?D(?nTC0WAH-}knT5fI z9tn15_Bh{|aIgPDqW)qou7{PmlFMA6yco@|0xV0|#*SA9mS^4*`PrPqH;Z&6m=}&~ zPH-siHsnox-aHvU$(MG^OnOJV(7q0-{?T6+HMm2jBS~N}As8GxRTG7SblJBOBPzIYH;^XO)%ABuRv6u(wFlQ2e zOE%9-)LWq|)E!gcGin}ru-e?)#9H)`KdQy8DqwwFLxMlnIF(>Njy-Ttsls>AaI6TU zS}ZWZTFzcAqnnnAZ*lDKYw$R8!#X%a#yaV3*{t|Dvc~W1UV&54>Mj(BgEGwRyIimi z{B`>|4AESDbj_cRxVzO4h1OlGFV9`9&&qo?JbI9gR<|t|+?YY0p|uxlI)M zbsT%VthBP`pYw@4_y+OlfR~TmI}>OLRO-ZORuIgGG4(W|)KwMxV$&Oa%1|MHn8wKa?ISPxygdmR5Z^R>DMS-#lVi7%O z>+!UeQPkXdmnDZ< z6&hH|7|%u+4(&DSuBRxLTiwHf1)>qBcYhjKrWDKp$-@a@k$`}rB-FT z1R}_$DCVvb4%w)PSF*?E7|w?Q`~46OR1{$j-UKe0_UDyUoA2=&2TUeP7o{vMva~15 z%-5WV%?=J}mq?QJ4a2e5F>qY0f4NNFuXGZ#Vjy#1belLYWe?=D){z;6teWNuhwFhS zCfp<8|5AC0;o&R25y?Wlb>hwNUOF$b+O|L9{cwKa$Qg}Hk}0w;#x5o$&?cTVSeo0O}sse5W!%z;g zbh$C&2EGg7WK2*VDR>wfm!`MPEl0bkczC36%7tO%2bT|D<5LRuRFGEsZZN$Kdr(eA zeZ!xlZO2c^AGLZEPgS7=fs>~n9{r3fQ5U=}r!ECPN%SzE1q2zc&ET)QM+F^pfjYVz zupSk9PR?L_)tQ8sm`n5-s4C~pYG(M-L%w(h?Cl;B&YU7H(lFi(^yLqy;ZB$B9jgt8 z)HG63E@f<&ljCUhz9Dit539%>aT0nx7=;GfFZNNx*) zfYQuQx?$HOi-Vr7jQXjz*o8VSo6?U-O`il3G_qhtLMX#%CIckn>9a*J!cOV3RWOPR zv)jJM>9JplxJTq-Xt3LFa?&=9V=9-0=BcQSp;;G(nq^BESwyExC2PDf8Ao^O7kWcD zsak}G|IV>j4!U|B8mQF)AsJ`RhiYE(WlB}TXybmWKT2Ggo82P~t)9I~@0MafM}A7$ z?I|v-HJ%Z>P zW6dBT>wZ|tXt7ACH($9Re1gd|Y}UaeY7(2Lz&*O-D?{OB`V)v*${6qV_-5hP(Hu%f0NcmbYt;M}vU$<2B!)svCjF#+kjF;<<@v z?#BySR*$o>CDdPBqZH{cKFmQP*(fE=urpeX_PTg>-QC>{AA#4|8kb2J z-w_l}qKE?Zn~>AfYDTrF9^S*{wc2oC>YQ}COz<6V4$Ydx_zd9XtXYXRXLdIVlnq!` zUrbT&M&!nG@hx|>B6`?0!L{y%g zfxx@6!jVcsnZd!Xbq#jncDC5I3x>=3EoTo;FNARx%n0rgw~Gc6dA3I8I|}yb*0Toe zo!jayW;x^?)?;GBHxWJ~kep*_B@TfTlH@niPEx%Q2g>xYg4nQN@c<*bnd6k6IHd=| z;cF-0DdP7WZxd{+G~y0w2(!f#S|ILnD68StZooi6l(|xZFNZ+1wF=`A!%dQGvzd>g zF7&%JtPfhtMYmYx8lyduar21#tXgY3--i_{R$4reuTqG`dI%rW5}tDcY@-` z!XbkFk^4}Uz+4jUgt>4_(S*pk>bxi`D%(Qn{+@LFS9Qmgd*6?82r7|4>1qq)=Ie4~a2 zc+mJ3E%CG^_WJ9p6O<3% zn{SnBN=gz9z@=9RQ!7k-%EY)^938%g)Ytlcf@^l=YEfz9uwYtPzqRKSuxpli9SEGK z9r}6HzJzx;*FY=zgPE2C$=Sx}qDbKjHH6RDUfZ=nNNCFm`;U}yaR^!Rn_0uX4KQeV zPRTph%chWP$h`9RJeq7-2VX|z5m(LU>(a21Su5+=)LL+JArQyf5S5Bd3Ak%jCsPU= zO6iu|sqD8sF*Gy!#uL`G#S!=xuF>Q&PPN;DkH+(e7Q7Si5SOEPsI|E9hK;o5y^$Yq z_)f$MFs@5*4-wGDEvXSokkf5c1y6wg{@gtFa&N|m1^|8_f}$Yt<79Awq%09(G&-d; zWwk*xy>(@NG~hbcVo*?Z^{!Is#xBXBAh?jFk1ezFZL^>1+{Ee8u2R#}HyV7-OrOJ^ z5bRFAQ3#3T4#f579=Dy`_+OAmPy^L0IKN)If>v3h0A| zOHZfqk9?0unA?bVX&TZ;{R{Vc0~3V=Wfg9@3_?Q47`5RGPVO)T&(2U251jXWf}A zSei182)-`_Kji1W;O~O21BdRz%2rJ39W3R%xdmFo0BBf+XyVgvnJZs z1j+SGn1HXNvV15N6GN8qcNQ8QF6b1a!5QtVXOJ{9ZV&DWO-*_SCHwW9mXj^~8l?PX zHI?dVy!?=ETqMNDxE%_RykNz zP9-P&6ew)@>cjl*cN+^T&1j(dFwN8Au$faHv!X7Z@^!?qnKdLVhxO91hDMJRvy)YQ zFb7eQ8X~NdHDD>qNy#mMWFn|Z4b2|OKl0X5p-=KwtB?A2DtJuIJBnG&JG4U0JJP}X zR-@0ud#48qYvlr2@Qny{i9G&)nsPheLM__R;na9%#hA?UEqnRcTW8j;hcmkRb|!g(6Q@- z#t2{WfT{~BY@O3Q_c`Rtrans6BD%kJk?ib8t13ZEAm#pcq61bx$KK%-OhHLO#h?ZR z<0Wq*J-QY#gWI=FFtj>W{<*{vjUXnXX%+sx^Hfw3f?6SN;4QOpzHsvSd5 z){JreZV`1o|D3O1>3;u?pW0Bw>tN2}^YO8f{uyv5%cMEJd#QqwcT3t&X;dyLrzy&6 zdIk9#tw8xsU*z)xsr0l+0aMkI0f!rvZ?VM*%0FW1f}7TyK9(2hr#Ph z==YwU_`49_M4t~T(@QzW3y~;KRXVt8oe{}utr01+?pfSL)Q557$Fba*u2(MeUR&~$_1(Y1W$>l+oDT^k1!&S zPK0}mnvh?ny?qy8xJ9|n6nF@&zU;L4)9WdNK$YRd?Mr-PJ=VxlQGp|EN+W}HK|s*$ zifGnc?)&isr$yN{-5<*X(&`h!SZ8G#4Q>*GBr9Dcv_s^rW$5aEOZgN;!qVg)|` zE(rKP^#C>WO3>i1ulE-MgQ>Y;002)Uke~_;P{T@>;N>lbq}10RZ?WIJt$KM5uZtg2 z+M7x$q~b?l^g*g(N|`md!t8-p=i!-|Z|0@6WRh){8~l% z#rzAwZiN?C+K8WNz3IaV_YK2E`%Ze(^ZnQo3Ls*Qgy)`=47WF%Fwq5h1pl0eX*D~{ z4~UEP}PAn7dvb#i92DtxugOqh}}Y9s$3-a6`6{Dwz4;Ww(#- z_sqFOkabXDb=w@3bcRG!v6_M}vAM46yi%faUL53L<1XLxk= zF4~tu=aaiW0H4_@rJd+V1)qNauPJPJ4=g?iU5_wL3fR~R9GOcfp&nkYu59(5zO
b z5>Y-`>JQMhS&2~!H&p|*jc)i|UNw1r&ql#qTuf}8-cO;fcI)QEQ;8jO)t_n?*SkgD z!nan%=1e=VNmV(z4d^|oj%}^#S3sgA>k^@i);KK6A{X^XG2sXE+4wEE0ak?3f)33r^~@Nhp!nD3EnlqGtpSggP5<4l={4yg{SU1Yj5ax_~GX?M%F zKI9)J3=?PJn8z;r_lDdZ&!Z>2GYKt~OXLOj*#9_vsH&0U5wZDx1ZooFLkduvZdc}# zvji&*@~5>}62W$00w`g=xvH?3XTR7}dhS>POTxB6*}Z#+X;OQhiC3F6%RJCQqch~v z^i8M}grwtCCx$Z@m>;(Ob?bzbv_{~lZl5C3Bchyz#o#bE{t*8Q?00uhpSoQrK(qU6+&G zl?>+vw?D=m&wDIP*STuCQ}<2rO5m{UB z(_41>wfxa-Qn)Ud7S;pEfdce5Zi92BICcm+6T8S)Q7p3_yO2OF^VC$X^wJGsBr0fW z3R()99SutwKCE>$$o4)8%FkWR3c6XIFXKrGnFA;4_!NY`)Bm6vS!N#;z`Xa(e7$|5JXknN0I|b<2;aMFZjY0wjS!zb>7}qfKpR)i-F8 zJEe~k1$G*Bj~xh#g(@LBdniDvk8^D9iHWq|{p0xt z?)JVJ4GY5cAzM!;SW)8Pml{d3wgy?6BiZ3e*cplsxbW!#g&FWDg3_el5l6W8{e*Yx z_s4Rf79|RvpQ+2m=FT1vbt>}sQB3?(rJ@b)V=>W}hh5CGv{svm;cro}}S~WwAyckG;1$=mfp{ zUFj*m#%+Qwu!z(wD|mxO({#}Zx2&{)cv_X@fJWG4Kx$Wc;-3A$BGr9#d>_=yCOaff zwx{A5Db+5*U`QTSfzihqx(aW0qIAt<#!1s6K8K%v^M!^*hW=z%RWBHCOI(gEXrJvv z5E{ER@&-of9&DRnpmuJSEVT7v*-WEug)>g4z7M?_(D?F9;jLnZaQhhDhi|8IgA9VL zKPMhJ-+kpngJ>9M#X2zkBtYU7zu{slIPm_hn~;D=mH#oxFw9 zKV3tLVgDi-^6$fTMT8#<6sseNcRIqX`j%DsEqf&^O9Ly1 zhNByj@>|xo>}#Mi9a{9omts4lZ%&XRK*S#ha8Fq zP}D1ZrT|e-JF9J9DYo7yO&$C(Ga5fy2jJHLKSw!}_%;sD3PJ#j z&|n!Ymf&W44N@0`zTXUqcMT%*D4y;)(kjW}xQ)B~Gvpmt1@y zZC6 z^@71)TcBBk-9J#T;nN?err%^29PKx4mmKL_@?~;lUn*W%KtBwLY8K5b!T!*tEQn$M zw5%P7A^x-?oO%AXhFvG1{$QD2cYiI?K3T*3!4Lw+|6(ga#ebbfhQ_1+>7`6P{fpsc zto&^~X4OId>8;BL|Ldcr=;Uv2d8yuCJ>+tszdV)dvA-B)t?FN%cYPcL?C-!P=JJj~ z*v+B>|2Ii$Sl?;>CrRjNhR0;&nP}^`=;*%D4~@##ZGpcO3xk1ULj1R~7?jk^_HSu1 zXr}qyYe^>vwFRFo^(DC+oGqCD*X{)dyiDoqAHv@&0DubkCEN+pZ^8c~;MIZ;cJNwa zT-t*82WoA>2PXytfpuWLlpVu?u3IqP{QruQ|04$g)cS&h|0VPP5dgO0gL^{0VA!BS zNMuk)>tErq7yLccZ*E*0)gLNd8$LJ!?5nwM8^a$g`~@RLe#JUEU_k1~81(-en(`+i ztF4#fXuOwMdi&2k+wsAlvHs}bVt}j$5MSf?Z}BSt@a7*|Eut4P(<^DI zQ!cdk#X$lb0KoVUDTv`!(T*7(BPM+n_~#|zKLW&jzlp!!84`37 zy>kD1>H`3f{lg8Bc;OO)TskrTgcQ+<556w<#}O_PNLLA$;eV&*zd!x~0MdWN4i#Pv z1zKT2Mk>(1Z_BIq-%FX&3sK?aL;jD!dkv6&7t5R9sr>IE_Fq=5@0G^Ol18QfoAew0 z{}K-6Kb+qQcdz*;MJ=3--`kooo7!6aldZpvV+Jo1`ChD5p{wT=<=>_sg=10098-{6pIL48jZK z162#H#hoW8mmIsi~a_rD&j0$+%KJQ$(~Oys=8O#3nvwtqZ; zCBLdMk3fUk2JrsGGCzP1e)aWlEWalj5kx=ucLcnH_~5f?FSi*F^q^B3-q`dzKiw=>!3Q$8zA>zHnZ}EGC{|JN?zK{t)5!ERF zorBIHeDM9ESCOY7nm;3^8^#A`DhC-=^Zu6?`+|X0zVgO~iU07 Date: Mon, 23 Mar 2015 22:18:29 +0100 Subject: [PATCH 16/18] Fix language problems reported by yahoe.001 on transifex --- OpenKeychain/src/main/res/raw/help_certification.md | 2 +- OpenKeychain/src/main/res/raw/help_start.md | 4 ++-- OpenKeychain/src/main/res/values/strings.xml | 13 +++++++++---- .../src/main/res/xml/cloud_search_prefs.xml | 8 ++++---- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/OpenKeychain/src/main/res/raw/help_certification.md b/OpenKeychain/src/main/res/raw/help_certification.md index 889768a75..3518adf73 100644 --- a/OpenKeychain/src/main/res/raw/help_certification.md +++ b/OpenKeychain/src/main/res/raw/help_certification.md @@ -2,7 +2,7 @@ ## Key Confirmation Without confirmation, you cannot be sure if a key really corresponds to a specific person. -The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +The simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. ## Key Status diff --git a/OpenKeychain/src/main/res/raw/help_start.md b/OpenKeychain/src/main/res/raw/help_start.md index 19ac820c0..4b3531480 100644 --- a/OpenKeychain/src/main/res/raw/help_start.md +++ b/OpenKeychain/src/main/res/raw/help_start.md @@ -3,7 +3,7 @@ ## How do I activate OpenKeychain in K-9 Mail? To use OpenKeychain with K-9 Mail, you want to follow these steps: 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. - 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". + 2. Select "Account settings", scroll to the very bottom and click "Cryptography". 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. ## I found a bug in OpenKeychain! @@ -13,4 +13,4 @@ Please report the bug using the [issue tracker of OpenKeychain](https://github.c If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). ## Translations -Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). +Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/open-keychain/). diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index ffb88b05c..472bddc4c 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -172,6 +172,11 @@ "Encrypt filenames" "Hide recipients" + "Search Keyserver" + "Search HKP keyserver" + "Search Keybase.io" + "Search Keybase.io index" + "<no name>" "<none>" @@ -234,9 +239,9 @@ "Successfully signed and/or encrypted to clipboard." "Select at least one encryption key." "Select at least one encryption key or a signature key." - "Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists." - "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists." - "Please specify which file to export to.\nWARNING: File will be overwritten if it exists." + "Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists!" + "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists!" + "Please specify which file to export to.\nWARNING: File will be overwritten if it exists!" "Do you really want to delete all selected keys?" "After deletion you will not be able to read messages encrypted with this key and lose all key confirmations done with it!" "Delete key '%s'?" @@ -1213,7 +1218,7 @@ "No certificates for this key" "Only validated self-certificates and validated certificates created with your keys are displayed here." "Identities for " - "The keys you are importing contain “identities”: names and emails. Select exactly those for confirmation which match what you expected." + "The keys you are importing contain “identities”: names and email addresses. Select exactly those for confirmation which match what you expected." "Compare the displayed fingerprint, character by character, with the one displayed on your partners device." "Do the displayed fingerprints match?" "Revocation Reason" diff --git a/OpenKeychain/src/main/res/xml/cloud_search_prefs.xml b/OpenKeychain/src/main/res/xml/cloud_search_prefs.xml index c87c4df7b..08855fa22 100644 --- a/OpenKeychain/src/main/res/xml/cloud_search_prefs.xml +++ b/OpenKeychain/src/main/res/xml/cloud_search_prefs.xml @@ -2,15 +2,15 @@ Date: Mon, 23 Mar 2015 22:38:20 +0100 Subject: [PATCH 17/18] translation fixes --- .../src/main/res/raw-es/help_certification.md | 4 +- .../src/main/res/raw-es/help_changelog.md | 50 +++++++++---------- .../src/main/res/raw-es/help_start.md | 22 ++++---- .../src/main/res/raw-fr/help_about.md | 46 ++++++++--------- .../src/main/res/raw-fr/help_certification.md | 36 ++++++------- .../src/main/res/raw-fr/help_start.md | 22 ++++---- .../src/main/res/values-fr/strings.xml | 6 +-- OpenKeychain/src/main/res/values/strings.xml | 20 -------- extern/snackbar | 2 +- 9 files changed, 94 insertions(+), 114 deletions(-) diff --git a/OpenKeychain/src/main/res/raw-es/help_certification.md b/OpenKeychain/src/main/res/raw-es/help_certification.md index 16746dd4c..55e821498 100644 --- a/OpenKeychain/src/main/res/raw-es/help_certification.md +++ b/OpenKeychain/src/main/res/raw-es/help_certification.md @@ -20,8 +20,8 @@ Una "confirmación de clave" en OpenKeychain se implementa al crear una certific Esta certificación es una ["certificación genérica (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) descrita en el estándar por: "El emisor de esta certificación no hace ninguna afirmación particular acerca de lo bien o mal que el certificador ha comprobado que el propietario de la clave sea de hecho la persona descrita por la identificación del usuario." -Tradicionalmente, las certificaciones (también con niveles más altos de certificación, tales como "certificaciones positivas" (0x13)) se organizan en la Web of Trust de OpenPGP. +Tradicionalmente, las certificaciones (también con niveles más altos de certificación, tales como "certificaciones positivas" (0x13)) se organizan en la Web of Trust (web de confianza) de OpenPGP. Nuestro modelo de confirmación de clave es un concepto mucho más simple para evitar problemas comunes de usabilidad relacionados con esta Web of Trust. Asumimos que las claves están verificadas sólo hasta cierto grado, que no obstante es suficientemente usable para ejecutarse "sobre la marcha". -Tampoco implementamos firmas de confianza (potencialmente transitivas) o una base de datos ownertrust (de valores de confianza para el propietario) como en GnuPG. +Tampoco implementamos firmas de confianza (potencialmente transitivas) o una base de datos ownertrust (de valores de confianza subjetivos del propietario) como en GnuPG. Más aún, las claves que contengan al menos una identificación de usuario certificada por una clave de confianza se marcarán como "confirmadas" en los listados de claves. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-es/help_changelog.md b/OpenKeychain/src/main/res/raw-es/help_changelog.md index e9d61d0f3..753da969e 100644 --- a/OpenKeychain/src/main/res/raw-es/help_changelog.md +++ b/OpenKeychain/src/main/res/raw-es/help_changelog.md @@ -1,51 +1,51 @@ ## 3.2beta2 - * Material design - * Integration of QR Scanner (New permissions required) - * Improved key creation wizard - * Fix missing contacts after sync - * Requires Android 4 - * Redesigned key screen - * Simplify crypto preferences, better selection of secure ciphers - * API: Detached signatures, free selection of signing key,... - * Fix: Some valid keys were shown revoked or expired - * Don't accept signatures by expired or revoked subkeys - * Keybase.io support in advanced view + * Diseño estilo Material + * Integración de QR Scanner (se requieren nuevos permisos) + * Asistente de creación de clave mejorado + * Repara contactos perdidos después de la sincronización + * Requiere Android 4 + * Pantalla de clave rediseñada + * Simplifica las preferencias de criptografía, mejor selección de algoritmos de cifrado seguro + * API: Firmas desacopladas, selección libre de clave de firmado... + * Reparación: Algunas claves válidas se mostraron revocadas o caducadas + * No acepte algo firmado por subclaves caducadas o revocadas + * Soporte Keybase.io en la vista avanzada ## 3.1.2 - * Fix key export to files (now for real) + * Repara la exportación de claves a ficheros (ahora de verdad) ## 3.1.1 - * Fix key export to files (they were written partially) - * Fix crash on Android 2.3 + * Repara la exportación de claves a ficheros (se escribían parcialmente) + * Repara un fallo con caída en Android 2.3 ## 3.1 - * Fix crash on Android 5 - * New certify screen - * Secure Exchange directly from key list (SafeSlinger library) - * New QR Code program flow - * Redesigned decrypt screen - * New icon usage and colors - * Fix import of secret keys from Symantec Encryption Desktop - * Subkey IDs on Yubikeys are now checked correctly + * Repara un fallo con caída en Android 5 + * Nueva pantalla de certificación + * Intercambio seguro directamente desde la lista de claves (librería SafeSlinger) + * Nuevo control de flujo del programa QR Code + * Pantalla de descifrado rediseñada + * Nuevo uso del icono y colores + * Repara la importación de clave secretas (privadas) desde Symantec Encryption Desktop + * Las identificaciones de subclaves sobre Yubikeys ahora están comprobadas correctamente ## 3.0.1 - * Better handling of large key imports - * Improved subkey selection + * Mejor manejo de importaciones de claves largas + * Selección de subclaves mejorada ## 3.0 - * Full support for Yubikey signature generation and decryption! + * ¡Soporte completo para generación de firma y descifrado de Yubikey! * Propose installable compatible apps in apps list * New design for decryption screens * Many fixes for key import, also fixes stripped keys diff --git a/OpenKeychain/src/main/res/raw-es/help_start.md b/OpenKeychain/src/main/res/raw-es/help_start.md index 1641f913b..e8786003c 100644 --- a/OpenKeychain/src/main/res/raw-es/help_start.md +++ b/OpenKeychain/src/main/res/raw-es/help_start.md @@ -1,15 +1,15 @@ -## How do I activate OpenKeychain in K-9 Mail? -To use OpenKeychain with K-9 Mail, you want to follow these steps: - 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. - 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". - 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. +## ¿Cómo activo OpenKeychain en K-9 Mail? +Para usar OpenKeychain con K-9 Mail, deberá seguir estos pasos: + 1. Abra K-9 Mail y realice una pulsación larga sobre la cuenta con la que quiera usar OpenKeychain. + 2. Seleccione "Configuración de cuenta", desplácese hasta el fondo y pulse "Criptografía". + 3. Haga clic sobre "Proveedor OpenPGP" y seleccione OpenKeychain de la lista. -## I found a bug in OpenKeychain! -Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). +## ¡Encontré un fallo en OpenKeychain! +Por favor informe del fallo usando el [rastreador de fallos de OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). -## Contribute -If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). +## Contribuir +Si quiere ayudarnos a desarrollar OpenKeychain contribuyendo con código [siga nuestra pequeña guía en GitHub](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). -## Translations -Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file +## Traducciones +¡Ayude a traducir OpenKeychain! Todos pueden participar en [OpenKeychain en Transifex] (https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_about.md b/OpenKeychain/src/main/res/raw-fr/help_about.md index d6a8eca93..1ff60b089 100644 --- a/OpenKeychain/src/main/res/raw-fr/help_about.md +++ b/OpenKeychain/src/main/res/raw-fr/help_about.md @@ -1,45 +1,45 @@ [http://www.openkeychain.org](http://www.openkeychain.org) -[OpenKeychain](http://www.openkeychain.org) is an OpenPGP implementation for Android. +[OpenKeychain](http://www.openkeychain.org) est une mise en œuvre d'OpenPGP pour Android. -License: GPLv3+ +Licence : GPLv3+ -## Developers - * Dominik Schürmann (Maintainer) +## Développeurs + * Dominik Schürmann (mainteneur) * Art O Cathain * Ash Hughes * Brian C. Barnes - * Bahtiar 'kalkin' Gadimov + * Bahtiar « kalkin » Gadimov * Daniel Albert * Daniel Hammann * Daniel Haß * Greg Witczak - * 'mar-v-in' + * « mar-v-in » * Markus Doits * Miroojin Bakshi * Nikhil Peter Raj * Paul Sarbinowski - * 'Senecaso' + * « Senecaso » * Signe Rüsch * Sreeram Boyapati * Thialfihar (APG 1.x) * Tim Bray * Vincent Breitmoser -## Libraries - * [SpongyCastle](http://rtyley.github.com/spongycastle/) (MIT X11 License) - * [SafeSlinger Exchange library](https://github.com/SafeSlingerProject/exchange-android) (MIT License) - * [Android Support Libraries](http://developer.android.com/tools/support-library/index.html) (Apache License v2) - * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Apache License v2) - * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Apache License v2) - * [MiniDNS](https://github.com/rtreffer/minidns) (Apache License v2) - * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Apache License v2) - * [ZXing](https://github.com/zxing/zxing) (Apache License v2) - * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Apache License v2) - * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Material Design) (Apache License v2) - * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Apache License v2) - * [Snackbar](https://github.com/nispok/snackbar) (MIT License) - * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Apache License v2) - * [HtmlTextView](https://github.com/dschuermann/html-textview) (Apache License v2) - * [Markdown4J](https://github.com/jdcasey/markdown4j) (Apache License v2) \ No newline at end of file +## Bibliothèques + * [SpongyCastle](http://rtyley.github.com/spongycastle/) (Licence MIT X11) + * [Bibliothèque d'échange SafeSlinger](https://github.com/SafeSlingerProject/exchange-android) (Licence MIT) + * [Bibliothèques de soutien Android](http://developer.android.com/tools/support-library/index.html) (Licence Apache v2) + * [KeybaseLib](https://github.com/timbray/KeybaseLib) (Licence Apache v2) + * [TokenAutoComplete](https://github.com/splitwise/TokenAutoComplete) (Licence Apache v2) + * [MiniDNS](https://github.com/rtreffer/minidns) (Licence Apache v2) + * [StickyListHeaders](https://github.com/emilsjolander/StickyListHeaders) (Licence Apache v2) + * [ZXing](https://github.com/zxing/zxing) (Licence Apache v2) + * [ZXing Android Minimal](https://github.com/journeyapps/zxing-android-embedded) (Licence Apache v2) + * [PagerSlidingTabStrip](https://github.com/jpardogo/PagerSlidingTabStrip) (Conception matérielle) (Licence Apache v2) + * [MaterialNavigationDrawer](https://github.com/neokree/MaterialNavigationDrawer) (Licence Apache v2) + * [Snackbar](https://github.com/nispok/snackbar) (Licence MIT) + * [FloatingActionButton](https://github.com/futuresimple/android-floating-action-button) (Licence Apache v2) + * [HtmlTextView](https://github.com/dschuermann/html-textview) (Licence Apache v2) + * [Markdown4J](https://github.com/jdcasey/markdown4j) (Licence Apache v2) \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_certification.md b/OpenKeychain/src/main/res/raw-fr/help_certification.md index 8da27e8e0..965215a54 100644 --- a/OpenKeychain/src/main/res/raw-fr/help_certification.md +++ b/OpenKeychain/src/main/res/raw-fr/help_certification.md @@ -1,27 +1,27 @@ -## Key Confirmation -Without confirmation, you cannot be sure if a key really corresponds to a specific person. -The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. -To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. +## Confirmation de clef +Sans confirmation, vous ne pouvez pas être certain que la clef appartient à une personne déterminée. +La façon la plus simple de confirmer une clef est en balayant le code QR ou en l'échangeant par NFC. +Pour confirmer des clefs entre plus de deux personnes, nous suggérons d'utiliser la méthode d'échange de clef proposée pour vos clefs. -## Key Status +## État de la clef -Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. +Confirmée : vous avez déjà confirmé cette clef, p. ex. en balayant le code QR. -Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. +Non confirmée : cette clef n'a pas encore été confirmée. Vous ne pouvez pas être certain que la clef appartient à une personne déterminée. -Expired: This key is no longer valid. Only the owner can extend its validity. +Expirée : cette clef n'est plus valide. Seul le propriétaire peut prolonger sa validité. -Revoked: This key is no longer valid. It has been revoked by its owner. +Révoquée : cette n'est plus valide. Elle a été révoquée par son propriétaire. -## Advanced Information -A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. -This certification is a ["generic certification (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) described in the standard by: -"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID." +## Informations avancées +Avec OpenKeychain une « confirmation de clef » est effectuée en créant une certification d'après la norme OpenPGP. +Cette certification est une [« certification générique » (0x10)"](http://tools.ietf.org/html/rfc4880#section-5.2.1) décrite ainsi dans la norme : +« L'émetteur de cette certification n'affirme aucunement que le certificateur a bien vérifié que le propriétaire de la clef est bel et bien la personne décrite par l'ID utilisateur » -Traditionally, certifications (also with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. -Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. -We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". -We also do not implement (potentially transitive) trust signatures or an ownertrust database like in GnuPG. -Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings. \ No newline at end of file +Habituellement, les certifications (il en est de même avec les niveaux supérieurs de certification, tels que le « certifications positives » (0x13)) sont organisées dans la toile de confiance d'OpenPGP. +Notre modèle de confirmation de clef est un concept bien plus simple pour éviter les problèmes habituels de convivialité associés à cette toile de confiance. +Nous assumons que les clefs sont vérifiées seulement jusqu'à un certain degré qui est quand même assez utilisable pour être exécuté « à la volée ». +Nous ne mettons pas non plus en place des signatures de confiance (potentiellement transitives) ou une base de données « ownertrust » comme dans GnuPG. +De plus, les clefs contenant au moins un ID utilisateur certifié par une clef de confiance seront marquées « confirmée » dans les listages de clefs. \ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-fr/help_start.md b/OpenKeychain/src/main/res/raw-fr/help_start.md index 1641f913b..c7a5cb744 100644 --- a/OpenKeychain/src/main/res/raw-fr/help_start.md +++ b/OpenKeychain/src/main/res/raw-fr/help_start.md @@ -1,15 +1,15 @@ -## How do I activate OpenKeychain in K-9 Mail? -To use OpenKeychain with K-9 Mail, you want to follow these steps: - 1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with. - 2. Select "Account settings" and scroll to the very bottom and click "Cryptography". - 3. Click on "OpenPGP Provider" and select OpenKeychain from the list. +## Comment puis-je activer OpenKeychain dans K-9 Mail ? +Pour utiliser OpenKeychain avec K-9 Mail, vous devez suivre ces étapes : + 1. Ouvrez K-9 Mail et appuyez longuement sur le compte avec lequel vous voulez utiliser OpenKeychain. + 2. Sélectionnez « Paramètres du compte », faite défiler vers le bas et cliquez sur « Cryptographie ». + 3. Cliquez sur « Fournisseur OpenPGP » et sélectionnez OpenKeychain dans la liste. -## I found a bug in OpenKeychain! -Please report the bug using the [issue tracker of OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). +## J'ai trouvé un bogue dans OpenKeychain ! +Veuillez signaler le bogue en utilisant le [gestionnaire de bogue d'OpenKeychain](https://github.com/openpgp-keychain/openpgp-keychain/issues). -## Contribute -If you want to help us developing OpenKeychain by contributing code [follow our small guide on Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). +## Contribuer +Si vous voulez nous aider à développer OpenKeychain en y contribuant par du code [veuillez suivre notre petit guide sur Github](https://github.com/openpgp-keychain/openpgp-keychain#contribute-code). -## Translations -Help translating OpenKeychain! Everybody can participate at [OpenKeychain on Transifex](https://www.transifex.com/projects/p/openpgp-keychain/). \ No newline at end of file +## Traductions +Aidez à traduire OpenKeychain ! Tout le monde peut y participer sur la [page d'OpenKeychain sur Transifex](https://www.transifex.com/projects/p/open-keychain/). \ No newline at end of file diff --git a/OpenKeychain/src/main/res/values-fr/strings.xml b/OpenKeychain/src/main/res/values-fr/strings.xml index 7fefda34a..f2c249869 100644 --- a/OpenKeychain/src/main/res/values-fr/strings.xml +++ b/OpenKeychain/src/main/res/values-fr/strings.xml @@ -508,7 +508,7 @@ Certifié Vous avez certifié cette identité. Non certifié - Cette identité n\'a pas encore été certifiée. Vous ne pouvez pas être sûr que l\'identité correspond vraiment à une personne spécifique. + Cette identité n\'a pas encore été certifiée. Vous ne pouvez pas être sûr que l\'identité correspond vraiment à une personne déterminée. Invalide Quelque chose ne va pas avec cette identité ! @@ -594,8 +594,8 @@ Expirée : le contact doit prolonger la validité de la clef ! Expirée : vous pouvez prolonger la validité de la clef en la modifiant ! Ma clef - Confirmer la clef - Non vérifiée : balayez le code QR pour confirmer la clef ! + Clef confirmée + Non confirmée : balayez le code QR pour confirmer la clef ! <aucun> Clefs diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 472bddc4c..41882cb26 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -9,8 +9,6 @@ "OpenKeychain" - "Select Keys" - "Select Your Key" "Encrypt" "Encrypt" "Decrypt" @@ -18,7 +16,6 @@ "Add subkey" "Edit Key" "Settings" - "Cloud Search Preferences" "Apps" "Keyservers" "Change Passphrase" @@ -29,7 +26,6 @@ "Encrypt To File" "Decrypt To File" "Import Keys" - "Add Keys" "Export Key" "Export Keys" "Key Not Found" @@ -38,10 +34,8 @@ "Key Details" "Help" "Log" - "Create Key" "Exchange Keys" "Advanced Key Info" - "Keys" "Delete YOUR key '%s'?" "Export Log" "Manage my keys" @@ -54,19 +48,12 @@ "Proofs from the cloud" "Subkeys" "Cloud search" - "General" - "Defaults" - "Advanced" "Passphrase Cache" "Confirm" "Actions" "Key" - "Synchronize Key" "Keyserver" "Fingerprint" - "Files" - "Text" - "Certificates" "Encrypt" "Decrypt" "Current expiry" @@ -74,8 +61,6 @@ "Decrypt, verify, and save file" - "Decrypt and verify text" - "Encrypt and save file" "Encrypt and share file" "Encrypt and save file" "Save" @@ -88,7 +73,6 @@ "Back" "No" "Fingerprints match" - "Lookup key" "Encrypt and share text" "Encrypt and copy text" "View certification key" @@ -108,15 +92,11 @@ "Export to file" "Delete key" "Manage my keys" - "Import from file" "Search" "NFC settings" "Beam settings" - "Cancel" "Encrypt to…" "Select all" - "Add keys" - "Search cloud" "Export all keys" "Update all keys" "Show advanced info" diff --git a/extern/snackbar b/extern/snackbar index dda93a48e..97cda0806 160000 --- a/extern/snackbar +++ b/extern/snackbar @@ -1 +1 @@ -Subproject commit dda93a48e51006a0394241931b774a65bd54a907 +Subproject commit 97cda0806d9ead9a3aacf3d4f7275ac0e38d960c From eeccd7cd1475f02a9f4650f1debc38ab6a66d866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 23 Mar 2015 23:04:35 +0100 Subject: [PATCH 18/18] 3.2beta3 --- OpenKeychain/src/main/AndroidManifest.xml | 4 ++-- OpenKeychain/src/main/res/values/strings.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index 5692144e7..dbc50db26 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="org.sufficientlysecure.keychain" android:installLocation="auto" - android:versionCode="31202" - android:versionName="3.2beta2"> + android:versionCode="31203" + android:versionName="3.2beta3"> "Take back your privacy with OpenKeychain!" - "Create my key (recommended)" + "Create my key" "Import key from file" "Use YubiKey NEO" "Skip Setup"