diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-05-30 14:08:49 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-05-30 14:08:49 +0200 |
commit | 3be44898db2afd1fd993553e228efaac94f14120 (patch) | |
tree | 0dfc23818d7127525b92fbecf86e437ee8ce1383 /OpenKeychain | |
parent | ef209450c67f6d47756ffd900fcb8ab4083482f4 (diff) | |
download | open-keychain-3be44898db2afd1fd993553e228efaac94f14120.tar.gz open-keychain-3be44898db2afd1fd993553e228efaac94f14120.tar.bz2 open-keychain-3be44898db2afd1fd993553e228efaac94f14120.zip |
only promote subkeys which are actually present
Diffstat (limited to 'OpenKeychain')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java index 68fd4a428..676491164 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKeyRing.java @@ -18,10 +18,10 @@ package org.sufficientlysecure.keychain.pgp; -import org.spongycastle.bcpg.S2K; import org.spongycastle.openpgp.PGPObjectFactory; import org.spongycastle.openpgp.PGPPublicKey; import org.spongycastle.openpgp.PGPPublicKeyRing; +import org.spongycastle.openpgp.PGPSecretKey; import org.spongycastle.openpgp.PGPSecretKeyRing; import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.util.IterableIterator; @@ -97,12 +97,6 @@ public class CanonicalizedPublicKeyRing extends CanonicalizedKeyRing { } /** Create a dummy secret ring from this key */ - public UncachedKeyRing createDummySecretRing () { - PGPSecretKeyRing secRing = PGPSecretKeyRing.constructDummyFromPublic(getRing(), null); - return new UncachedKeyRing(secRing); - } - - /** Create a dummy secret ring from this key */ public UncachedKeyRing createDivertSecretRing (byte[] cardAid, long[] subKeyIds) { PGPSecretKeyRing secRing = PGPSecretKeyRing.constructDummyFromPublic(getRing(), cardAid); @@ -114,7 +108,10 @@ public class CanonicalizedPublicKeyRing extends CanonicalizedKeyRing { // stripped dummy, then move divert-to-card keys over PGPSecretKeyRing newRing = PGPSecretKeyRing.constructDummyFromPublic(getRing()); for (long subKeyId : subKeyIds) { - newRing = PGPSecretKeyRing.insertSecretKey(newRing, secRing.getSecretKey(subKeyId)); + PGPSecretKey key = secRing.getSecretKey(subKeyId); + if (key != null) { + newRing = PGPSecretKeyRing.insertSecretKey(newRing, key); + } } return new UncachedKeyRing(newRing); |