aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain
diff options
context:
space:
mode:
authorAshley Hughes <spirit.returned@gmail.com>2014-03-25 22:28:32 +0000
committerAshley Hughes <spirit.returned@gmail.com>2014-03-25 22:28:32 +0000
commit68f035ff88131928cdd0681ba3b1fb4980d9a574 (patch)
tree8267656cc44a544756659bb7534b6322edb44c25 /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain
parente7b3dd64f4f0dbf5841ade521fe654ed8e3e0b26 (diff)
downloadopen-keychain-68f035ff88131928cdd0681ba3b1fb4980d9a574.tar.gz
open-keychain-68f035ff88131928cdd0681ba3b1fb4980d9a574.tar.bz2
open-keychain-68f035ff88131928cdd0681ba3b1fb4980d9a574.zip
allow lists to be subkeys or keyrings
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java29
1 files changed, 23 insertions, 6 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java
index 20d446824..c7dd7d647 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java
@@ -59,13 +59,30 @@ public class PgpConversionHelper {
* @return
*/
public static ArrayList<PGPSecretKey> BytesToPGPSecretKeyList(byte[] keysBytes) {
- PGPSecretKeyRing keyRing = (PGPSecretKeyRing) BytesToPGPKeyRing(keysBytes);
+ PGPObjectFactory factory = new PGPObjectFactory(keysBytes);
+ Object obj = null;
ArrayList<PGPSecretKey> keys = new ArrayList<PGPSecretKey>();
-
- @SuppressWarnings("unchecked")
- Iterator<PGPSecretKey> itr = keyRing.getSecretKeys();
- while (itr.hasNext()) {
- keys.add(itr.next());
+ try {
+ while ((obj = factory.nextObject()) != null) {
+ PGPSecretKey secKey = null;
+ if(obj instanceof PGPSecretKey) {
+ if ((secKey = (PGPSecretKey)obj ) == null) {
+ Log.e(Constants.TAG, "No keys given!");
+ }
+ keys.add(secKey);
+ } else if(obj instanceof PGPSecretKeyRing) { //master keys are sent as keyrings
+ PGPSecretKeyRing keyRing = null;
+ if ((keyRing = (PGPSecretKeyRing)obj) == null) {
+ Log.e(Constants.TAG, "No keys given!");
+ }
+ @SuppressWarnings("unchecked")
+ Iterator<PGPSecretKey> itr = keyRing.getSecretKeys();
+ while (itr.hasNext()) {
+ keys.add(itr.next());
+ }
+ }
+ }
+ } catch (IOException e) {
}
return keys;