Package org.bouncycastle.bcpg
Class KeyIdentifier
- java.lang.Object
-
- org.bouncycastle.bcpg.KeyIdentifier
-
public class KeyIdentifier extends java.lang.Object
Utility class for matching key-ids / fingerprints. AKeyIdentifier
can be created from either a 64-bit key-id, a fingerprint, or both. This class was created to enable a seamless transition from use of key-ids in the API towards identifying keys via fingerprints.
-
-
Constructor Summary
Constructors Constructor Description KeyIdentifier(byte[] fingerprint)
Create a newKeyIdentifier
based on a keys fingerprint.KeyIdentifier(byte[] fingerprint, long keyId)
Create aKeyIdentifier
based on the given fingerprint and key-id.KeyIdentifier(long keyId)
Create aKeyIdentifier
based on the given key-id.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
getFingerprint()
Return the fingerprint of theKeyIdentifier
.long
getKeyId()
Return the key-id of theKeyIdentifier
.boolean
hasFingerprint(byte[] fingerprint)
Return true if the KeyIdentifier has a fingerprint corresponding to the passed in one.boolean
isPresentIn(java.util.List<KeyIdentifier> others)
Return true, if thisKeyIdentifier
is present in the given list ofKeyIdentifier
.boolean
isWildcard()
Returns true, if theKeyIdentifier
specifies a wildcard (matches anything).boolean
matches(KeyIdentifier other)
Return true, if thisKeyIdentifier
matches the given otherKeyIdentifier
.java.lang.String
toString()
static KeyIdentifier
wildcard()
Create a wildcardKeyIdentifier
.
-
-
-
Constructor Detail
-
KeyIdentifier
public KeyIdentifier(byte[] fingerprint)
Create a newKeyIdentifier
based on a keys fingerprint. For fingerprints matching the format of a v4, v5 or v6 key, the constructor will try to derive the corresponding key-id from the fingerprint.- Parameters:
fingerprint
- fingerprint
-
KeyIdentifier
public KeyIdentifier(byte[] fingerprint, long keyId)
Create aKeyIdentifier
based on the given fingerprint and key-id.- Parameters:
fingerprint
- fingerprintkeyId
- key-id
-
KeyIdentifier
public KeyIdentifier(long keyId)
- Parameters:
keyId
- key-id
-
-
Method Detail
-
wildcard
public static KeyIdentifier wildcard()
Create a wildcardKeyIdentifier
.- Returns:
- wildcard key identifier
-
getFingerprint
public byte[] getFingerprint()
Return the fingerprint of theKeyIdentifier
.fingerprint
might be null, if theKeyIdentifier
was created from just a key-id. IfisWildcard()
returns true, this method returns an empty, but non-null array.- Returns:
- fingerprint
-
getKeyId
public long getKeyId()
Return the key-id of theKeyIdentifier
. This might be0L
ifisWildcard()
returns true, or if an unknown fingerprint was passed in.- Returns:
- key-id
-
isWildcard
public boolean isWildcard()
Returns true, if theKeyIdentifier
specifies a wildcard (matches anything). This is for example used with anonymous recipient key-ids / fingerprints, where the recipient needs to try all available keys to decrypt the message.- Returns:
- is wildcard
-
hasFingerprint
public boolean hasFingerprint(byte[] fingerprint)
Return true if the KeyIdentifier has a fingerprint corresponding to the passed in one.- Parameters:
fingerprint
- the fingerprint to match against.- Returns:
- true if there's a match, false otherwise.
-
matches
public boolean matches(KeyIdentifier other)
Return true, if thisKeyIdentifier
matches the given otherKeyIdentifier
. This will return true if the fingerprint matches, or if the key-id matches, or ifisWildcard()
returns true.- Parameters:
other
- the identifier we are matching against.- Returns:
- true if we match other, false otherwise.
-
isPresentIn
public boolean isPresentIn(java.util.List<KeyIdentifier> others)
Return true, if thisKeyIdentifier
is present in the given list ofKeyIdentifier
. This will return true if a fingerprint matches, or if a key-id matches, or ifisWildcard()
returns true.- Parameters:
others
- the list of key identifiers to check.- Returns:
- true, if the identifier is present in the list, false otherwise.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-