Bouncy Castle Cryptography Library 1.79

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. A KeyIdentifier 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
KeyIdentifier(byte[] fingerprint)
          Create a new KeyIdentifier based on a keys fingerprint.
KeyIdentifier(byte[] fingerprint, long keyId)
          Create a KeyIdentifier based on the given fingerprint and key-id.
KeyIdentifier(long keyId)
          Create a KeyIdentifier based on the given key-id.
 
Method Summary
 byte[] getFingerprint()
          Return the fingerprint of the KeyIdentifier.
 long getKeyId()
          Return the key-id of the KeyIdentifier.
 boolean hasFingerprint(byte[] fingerprint)
          Return true if the KeyIdentifier has a fingerprint corresponding to the passed in one.
 boolean isPresentIn(java.util.List others)
          Return true, if this KeyIdentifier is present in the given list of KeyIdentifier .
 boolean isWildcard()
          Returns true, if the KeyIdentifier specifies a wildcard (matches anything).
 boolean matches(KeyIdentifier other)
          Return true, if this KeyIdentifier matches the given other KeyIdentifier.
 java.lang.String toString()
           
static KeyIdentifier wildcard()
          Create a wildcard KeyIdentifier.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KeyIdentifier

public KeyIdentifier(byte[] fingerprint)
Create a new KeyIdentifier 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 a KeyIdentifier based on the given fingerprint and key-id.
Parameters:
fingerprint - fingerprint
keyId - key-id

KeyIdentifier

public KeyIdentifier(long keyId)
Create a KeyIdentifier based on the given key-id. {@code fingerprint} will be set to {@code null}.
Parameters:
keyId - key-id
Method Detail

wildcard

public static KeyIdentifier wildcard()
Create a wildcard KeyIdentifier.
Returns:
wildcard key identifier

getFingerprint

public byte[] getFingerprint()
Return the fingerprint of the KeyIdentifier. {@code fingerprint} might be null, if the {@link KeyIdentifier} was created from just a key-id. If {@link #isWildcard()} returns true, this method returns an empty, but non-null array.
Returns:
fingerprint

getKeyId

public long getKeyId()
Return the key-id of the KeyIdentifier. This might be {@code 0L} if {@link #isWildcard()} returns true, or if an unknown fingerprint was passed in.
Returns:
key-id

isWildcard

public boolean isWildcard()
Returns true, if the KeyIdentifier 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 this KeyIdentifier matches the given other KeyIdentifier. This will return true if the fingerprint matches, or if the key-id matches, or if isWildcard() 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 others)
Return true, if this KeyIdentifier is present in the given list of KeyIdentifier . This will return true if a fingerprint matches, or if a key-id matches, or if isWildcard() 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 class java.lang.Object

Bouncy Castle Cryptography Library 1.79