diff options
| author | Vincent Breitmoser <valodim@mugenguild.com> | 2014-09-28 15:17:09 +0200 | 
|---|---|---|
| committer | Vincent Breitmoser <valodim@mugenguild.com> | 2014-09-28 15:17:09 +0200 | 
| commit | c34a159cae783178b692022a584e1f937cc652ca (patch) | |
| tree | d70c9ec339c843bef2ce534e6d89334fb4e55d97 /OpenKeychain | |
| parent | 8131daa6380ed752c4d31cd6a40650d9ac5b9817 (diff) | |
| download | open-keychain-c34a159cae783178b692022a584e1f937cc652ca.tar.gz open-keychain-c34a159cae783178b692022a584e1f937cc652ca.tar.bz2 open-keychain-c34a159cae783178b692022a584e1f937cc652ca.zip | |
fix method visibility for tests
Diffstat (limited to 'OpenKeychain')
2 files changed, 37 insertions, 33 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKey.java index d0808d446..8fb3402b2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedPublicKey.java @@ -18,11 +18,8 @@  package org.sufficientlysecure.keychain.pgp; -import org.spongycastle.bcpg.SignatureSubpacketTags;  import org.spongycastle.bcpg.sig.KeyFlags;  import org.spongycastle.openpgp.PGPPublicKey; -import org.spongycastle.openpgp.PGPSignature; -import org.spongycastle.openpgp.PGPSignatureSubpacketVector;  import org.spongycastle.openpgp.operator.jcajce.JcePublicKeyKeyEncryptionMethodGenerator;  import org.sufficientlysecure.keychain.util.IterableIterator; @@ -40,7 +37,6 @@ public class CanonicalizedPublicKey extends UncachedPublicKey {      // this is the parent key ring      final KeyRing mRing; -    private Integer mCacheUsage = null;      CanonicalizedPublicKey(KeyRing ring, PGPPublicKey key) {          super(key); @@ -52,7 +48,7 @@ public class CanonicalizedPublicKey extends UncachedPublicKey {      }      JcePublicKeyKeyEncryptionMethodGenerator getPubKeyEncryptionGenerator() { -        return  new JcePublicKeyKeyEncryptionMethodGenerator(mPublicKey); +        return new JcePublicKeyKeyEncryptionMethodGenerator(mPublicKey);      }      public boolean canSign() { @@ -68,32 +64,6 @@ public class CanonicalizedPublicKey extends UncachedPublicKey {          return false;      } -    /** -     * Get all key usage flags. -     * If at least one key flag subpacket is present return these. -     * If no subpacket is present it returns null. -     */ -    @SuppressWarnings("unchecked") -    public Integer getKeyUsage() { -        if (mCacheUsage == null) { -            for (PGPSignature sig : new IterableIterator<PGPSignature>(mPublicKey.getSignatures())) { -                if (mPublicKey.isMasterKey() && sig.getKeyID() != mPublicKey.getKeyID()) { -                    continue; -                } - -                PGPSignatureSubpacketVector hashed = sig.getHashedSubPackets(); -                if (hashed != null && hashed.getSubpacket(SignatureSubpacketTags.KEY_FLAGS) != null) { -                    // init if at least one key flag subpacket has been found -                    if (mCacheUsage == null) { -                        mCacheUsage = 0; -                    } -                    mCacheUsage |= hashed.getKeyFlags(); -                } -            } -        } -        return mCacheUsage; -    } -      public boolean canCertify() {          // if key flags subpacket is available, honor it!          if (getKeyUsage() != null) { @@ -129,4 +99,9 @@ public class CanonicalizedPublicKey extends UncachedPublicKey {          return false;      } + +    /** Same method as superclass, but we make it public. */ +    public Integer getKeyUsage() { +        return super.getKeyUsage(); +    }  } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java index 345c00579..bb9c7d51c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java @@ -39,6 +39,7 @@ import java.util.Iterator;  public class UncachedPublicKey {      protected final PGPPublicKey mPublicKey; +    private Integer mCacheUsage = null;      public UncachedPublicKey(PGPPublicKey key) {          mPublicKey = key; @@ -231,9 +232,8 @@ public class UncachedPublicKey {          return mPublicKey.getFingerprint();      } -    // TODO This method should have package visibility - no access outside the pgp package!      // (It's still used in ProviderHelper at this point) -    public PGPPublicKey getPublicKey() { +    PGPPublicKey getPublicKey() {          return mPublicKey;      } @@ -271,4 +271,33 @@ public class UncachedPublicKey {          }      } +    /** Get all key usage flags. +     * If at least one key flag subpacket is present return these. If no +     * subpacket is present it returns null. +     * +     * Note that this method has package visiblity because it is used in test +     * cases. Certificates of UncachedPublicKey instances can NOT be assumed to +     * be verified, so the result of this method should not be used in other +     * places! +     */ +    @SuppressWarnings("unchecked") +    Integer getKeyUsage() { +        if (mCacheUsage == null) { +            for (PGPSignature sig : new IterableIterator<PGPSignature>(mPublicKey.getSignatures())) { +                if (mPublicKey.isMasterKey() && sig.getKeyID() != mPublicKey.getKeyID()) { +                    continue; +                } + +                PGPSignatureSubpacketVector hashed = sig.getHashedSubPackets(); +                if (hashed != null && hashed.getSubpacket(SignatureSubpacketTags.KEY_FLAGS) != null) { +                    // init if at least one key flag subpacket has been found +                    if (mCacheUsage == null) { +                        mCacheUsage = 0; +                    } +                    mCacheUsage |= hashed.getKeyFlags(); +                } +            } +        } +        return mCacheUsage; +    }  } | 
