open-keychain / open-keychain Goto Github PK
View Code? Open in Web Editor NEWOpenKeychain is an OpenPGP implementation for Android.
Home Page: https://www.openkeychain.org
License: GNU General Public License v3.0
OpenKeychain is an OpenPGP implementation for Android.
Home Page: https://www.openkeychain.org
License: GNU General Public License v3.0
When importing a secret key, only the secret part is imported. After editing and saving the key ring the public part is generated again.
-> Fix import by also adding the public part after importing.
Other apps should use new api
use SearchView
progress in progressdialog when importing keyrings stops at 84% and then goes on...
Look into send key, sign key by senecaso: How are they implemented?
Use sliding menu?
Lookup key when unknown key is encountered when verifying sig not working
I've compiled successfully APG, but when I run it in the emulator and try to click on "Manage Keys" I get an exception telling me an unkown URI was passed (content://org.thialfihar.android.apg.internal/key_rings/public), the exception is coded in the line 544 of the file /org.thialfihar.android.apg.ui.MainActivity/src/org/thialfihar/android/apg/provider/ApgProvider.java:
default: throw new IllegalArgumentException("Unknown URI " + uri);
The same exception is thrown when I click on the "My Keys" icon.
The trace is the following one:
11-18 21:44:19.618: W/dalvikvm(534): threadid=11: thread exiting with uncaught exception (group=0x409c01f8)
11-18 21:44:19.668: E/AndroidRuntime(534): FATAL EXCEPTION: ModernAsyncTask #1
11-18 21:44:19.668: E/AndroidRuntime(534): java.lang.RuntimeException: An error occured while executing doInBackground()
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.ModernAsyncTask$3.done(ModernAsyncTask.java:137)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.lang.Thread.run(Thread.java:856)
11-18 21:44:19.668: E/AndroidRuntime(534): Caused by: java.lang.IllegalArgumentException: Unknown URI content://org.thialfihar.android.apg.internal/key_rings/public
11-18 21:44:19.668: E/AndroidRuntime(534): at org.thialfihar.android.apg.provider.ApgProvider.query(ApgProvider.java:544)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.content.ContentProvider$Transport.query(ContentProvider.java:178)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.content.ContentResolver.query(ContentResolver.java:311)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.CursorLoader.loadInBackground(CursorLoader.java:49)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.CursorLoader.loadInBackground(CursorLoader.java:35)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:240)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:51)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:40)
11-18 21:44:19.668: E/AndroidRuntime(534): at android.support.v4.content.ModernAsyncTask$2.call(ModernAsyncTask.java:123)
11-18 21:44:19.668: E/AndroidRuntime(534): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-18 21:44:19.668: E/AndroidRuntime(534): ... 4 more
11-18 21:44:19.708: I/dalvikvm(534): threadid=3: reacting to signal 3
11-18 21:44:19.728: I/dalvikvm(534): Wrote stack traces to '/data/anr/traces.txt'
Other ideas:
onClick is not getting through on Jelly Bean
Use mime types for nfc exchange etc.
see http://tools.ietf.org/html/rfc3156
Implement Contextual Action Bar for selections in all Lists instead on long-press context menu.
See http://developer.android.com/design/patterns/actionbar.html#contextual
use https://github.com/JakeWharton/ActionBarSherlock
Convert constants in Id.java to xml files were possible.
key server support
implement some trust model, allowing to sign keys easily, preferably across devices in some way
better integration with Android and possibly other email apps
link contacts and public keys
better email pattern from android.util.Patterns.EMAIL_ADDRESS ?
gpg files have no MIME type defined in Android, thus Filemanagers don't know how to open these. asc files have the MIME-type text/plain, thus they can be linked.
We could seperate features that need the internet permission into another app, like an addon. For those who wish to use APG without having to allow it internet access
no extra avtivity to share by nfc.
make abstract nfcactivity and extend view activity from it
PGP/MIME is missing in K9-Mail
Many dialogs use the old dialog system.
Replace these calls with the new DialogFragments.
Working examples are in EncryptActivity or DecryptActivity.
DialogFragments can be found in .ui.dialog
implement some trust model, allowing to sign keys easily, preferably across devices in some way
better integration with Android and possibly other email apps
As a service with handlers?
see for example http://www.blackhat.com/presentations/bh-usa-09/BURNS/BHUSA09-Burns-AndroidSurgery-PAPER.pdf
Is it a problem to put a passphrase into the extras passing to the IntentService?
Corresponding bug: http://code.google.com/p/android-privacy-guard/issues/detail?id=21
Ideas:
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.sufficientlysecure.keychain/org.sufficientlysecure.keychain.ui.DecryptActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4482)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:561)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment.onActivityCreated(PassphraseDialogFragment.java:235)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:891)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:622)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:505)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1135)
at android.app.Activity.performStart(Activity.java:4738)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1933)
... 11 more
to generate or import key on first use.
Also provide information how OpenPGP works
"For inexperienced users, simplify the display. Too much information hides the important information. An initial display configuration could concentrate on giving the user the correct model of the relationship between public and private keys and a clear understanding of the functions for acquiring and distributing keys."
Implement SyncAdapter with account to link public keys and contacts
I tried importing my own public key from several keyservers, and had the same problem. I tried it both in emulator (API level 14) and on a Nexus S running Android 4.1.2, with the same results. The steps I tried are the following.
Manage Public Keyrings
on the main screen.Search
.No keyrings added or updated.
I checked the SQLite database /data/data/org.thialfihar.android.apg/databases/apg.db
and the structure was created successfully, but all three tables (key_rings
, keys
and user_ids
) were empty, so it seems to be an issue with the import logic. Below is a screenshot of the 5th and 3rd steps above (yes, they're in reverse order).
Move all menu seperated by activity into xml files instead of using Id.java
Hi,
watching the original source to try to implement this idea (the base idea comes from http://wiki.debian.org/subkeys ), I stumbled upon this patch. As the author told, it is a quick'n'dirty patch. It should be better designed and integrated. As such as :
But given the propension of smartphone being robbed, having a way to keep its master key and the web of trust linked to that master key out of the phone would be a good step towards security.
Since the original app is not updated anymore, wouldn't it be good to communicate more about this fork ? except if you think it is not stable enough ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.