Merge pull request #51 from ashh87/master

Updates spongycastle to the fork:
https://github.com/ashh87/spongycastle

This allows us to import secret keys much more quickly and to enable passphrase changing for subkey only secret keys.
This commit is contained in:
Dominik Schürmann 2013-05-13 08:33:48 -07:00
commit 9744b569ab
8 changed files with 14 additions and 28 deletions

View File

@ -480,18 +480,7 @@ public class PgpHelper {
}
public static boolean isSecretKeyPrivateEmpty(PGPSecretKey secretKey) {
try {
PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder()
.setProvider(PgpMain.BOUNCY_CASTLE_PROVIDER_NAME).build(new char[] {});
PGPPrivateKey testKey = secretKey.extractPrivateKey(
keyDecryptor);
if (testKey != null) {
return false;
}
} catch (PGPException e) { //exception if wrong key => not empty
return false; //all good if this fails, we likely didn't use the right password
}
return true;
return secretKey.isPrivateKeyEmpty();
}
public static boolean isSecretKeyPrivateEmpty(Context context, long keyId) {

View File

@ -540,9 +540,9 @@ public class KeychainIntentService extends IntentService implements ProgressDial
long masterKeyId = data.getLong(SAVE_KEYRING_MASTER_KEY_ID);
/* Operation */
if (!canSign) { //library fails, fix later
//PgpMain.changeSecretKeyPassphrase(this, ProviderHelper.getPGPSecretKeyRingByKeyId(this, masterKeyId),
//oldPassPhrase, newPassPhrase, this);
if (!canSign) {
PgpMain.changeSecretKeyPassphrase(this, ProviderHelper.getPGPSecretKeyRingByKeyId(this, masterKeyId),
oldPassPhrase, newPassPhrase, this);
} else {
PgpMain.buildSecretKey(this, userIds, keys, keysUsages, masterKeyId, oldPassPhrase,
newPassPhrase, this);

View File

@ -194,13 +194,6 @@ public class EditKeyActivity extends SherlockFragmentActivity {
}
});
//disable key passhphrase changing with empty private keys for no
//library fails, fix later
if (!masterCanSign) {
mChangePassPhrase.setEnabled(false);
mNoPassphrase.setEnabled(false);
}
if (mBuildLayout) {
buildLayout();
}

View File

@ -17,8 +17,8 @@ Fork OpenPGP Keychain and do a merge request. I will merge your changes back int
## Build with Eclipse
1. File -> Import -> Android -> Existing Android Code Into Workspace, choose "OpenPGP-Kechain/android-libs/ActionBarSherlock"
2. File -> Import -> Android -> Existing Android Code Into Workspace, choose "OpenPGP-Kechain"
1. File -> Import -> Android -> Existing Android Code Into Workspace, choose "OpenPGP-Keychain/android-libs/ActionBarSherlock"
2. File -> Import -> Android -> Existing Android Code Into Workspace, choose "OpenPGP-Keychain"
3. OpenPGP-Kechain can now be build
# Libraries
@ -26,7 +26,7 @@ Fork OpenPGP Keychain and do a merge request. I will merge your changes back int
All JAR-Libraries are provided in this repository under "libs", all Android Library projects are under "android-libs".
* ActionBarSherlock to provide an ActionBar for Android < 3.0
* Spongy Castle Crypto Lib (Android version of Bouncy Castle)
* forked Spongy Castle Crypto Lib (Android version of Bouncy Castle)
* android-support-v4.jar: Compatibility Lib
* barcodescanner-android-integration-supportv4.jar: Barcode Scanner Integration
@ -42,9 +42,12 @@ On error see: http://code.google.com/p/zxing/issues/detail?id=1207
## Build Spongy Castle
Spongy Castle is the stock Bouncy Castle libraries with a couple of small changes to make it work on Android.
Spongy Castle is the stock Bouncy Castle libraries with a couple of small changes to make it work on Android. OpenPGP-Keychain uses a forked version with some small changes to improve key import speed. These changes will be sent to Bouncy Castle, and Spongy Castle will be used again when they have filtered down.
see
* http://rtyley.github.com/spongycastle/
* https://github.com/ashh87/spongycastle
see http://rtyley.github.com/spongycastle/
# Notes
@ -163,3 +166,4 @@ OpenPGP Kechain is licensed under Apache License v2.
* dashboard_scan_qrcode.svg
New creation for OpenPGP Kechain
Apache License v2