aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-06-18 20:55:44 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-06-18 20:55:44 +0200
commit3bffe4da559d0ee45c44df1afee6d5b4de9b89d1 (patch)
treee749804d053323db8c9ecb91d21f21a7d5f15563 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java
parentf8d895dea4ba1a5133107474410813f4128176ef (diff)
downloadopen-keychain-3bffe4da559d0ee45c44df1afee6d5b4de9b89d1.tar.gz
open-keychain-3bffe4da559d0ee45c44df1afee6d5b4de9b89d1.tar.bz2
open-keychain-3bffe4da559d0ee45c44df1afee6d5b4de9b89d1.zip
generate public keyring from secret if not available
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java
index a1c6b158b..e1ce62bdf 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java
@@ -27,6 +27,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
@@ -759,6 +760,21 @@ public class UncachedKeyRing {
}
+ public UncachedKeyRing extractPublicKeyRing() {
+ if(!isSecret()) {
+ throw new RuntimeException("Tried to extract public keyring from non-secret keyring. " +
+ "This is a programming error and should never happen!");
+ }
+
+ ArrayList<PGPPublicKey> keys = new ArrayList();
+ Iterator<PGPPublicKey> it = mRing.getPublicKeys();
+ while (it.hasNext()) {
+ keys.add(it.next());
+ }
+
+ return new UncachedKeyRing(new PGPPublicKeyRing(keys));
+ }
+
/** This method replaces a public key in a keyring.
*
* This method essentially wraps PGP*KeyRing.insertPublicKey, where the keyring may be of either