Bouncy Castle Cryptography Library 1.81

org.bouncycastle.bcpg
Class KeyIdentifier

java.lang.Object
  extended byorg.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.
KeyIdentifier(java.lang.String hexEncoded)
           
 
Method Summary
 boolean equals(java.lang.Object obj)
           
 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.
 int hashCode()
           
 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.
static boolean matches(java.util.List identifiers, KeyIdentifier identifier, boolean explicit)
           
 boolean matchesExplicit(KeyIdentifier other)
           
 java.lang.String toPrettyPrint()
           
 java.lang.String toString()
           
static KeyIdentifier wildcard()
          Create a wildcard KeyIdentifier.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KeyIdentifier

public KeyIdentifier(java.lang.String hexEncoded)

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. will be set to .

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. might be null, if the KeyIdentifier was created from just a key-id. If 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 if 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.

matchesExplicit

public boolean matchesExplicit(KeyIdentifier other)

matches

public static boolean matches(java.util.List identifiers,
                              KeyIdentifier identifier,
                              boolean explicit)

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.

equals

public boolean equals(java.lang.Object obj)

hashCode

public int hashCode()

toString

public java.lang.String toString()

toPrettyPrint

public java.lang.String toPrettyPrint()

Bouncy Castle Cryptography Library 1.81