org.bouncycastle.openpgp

Class PGPPublicKey

Implemented Interfaces:
PublicKeyAlgorithmTags

public class PGPPublicKey
extends java.lang.Object
implements PublicKeyAlgorithmTags

general class to handle a PGP public key object.

Fields inherited from interface org.bouncycastle.bcpg.PublicKeyAlgorithmTags

DIFFIE_HELLMAN, DSA, EC, ECDSA, ELGAMAL_ENCRYPT, ELGAMAL_GENERAL, RSA_ENCRYPT, RSA_GENERAL, RSA_SIGN

Constructor Summary

PGPPublicKey(int algorithm, PublicKey pubKey, Date time, String provider)
Create a PGPPublicKey from the passed in JCA one.

Method Summary

static PGPPublicKey
addCertification(PGPPublicKey key, String id, PGPSignature certification)
Add a certification to the given public key.
static PGPPublicKey
addCertification(PGPPublicKey key, PGPSignature certification)
Add a revocation or some other key certification to a key.
void
encode(OutputStream outStream)
int
getAlgorithm()
Return the algorithm code associated with the public key.
int
getBitStrength()
Return the strength of the key in bits.
Date
getCreationTime()
byte[]
getEncoded()
byte[]
getFingerprint()
Return the fingerprint of the key.
PublicKey
getKey(String provider)
Return the public key contained in the object.
long
getKeyID()
Return the keyID associated with the public key.
Iterator
getSignatures()
Return all signatures/certifications associated with this key.
Iterator
getSignaturesForID(String id)
Return any signatures associated with the passed in id.
Iterator
getSignaturesForUserAttribute(PGPUserAttributeSubpacketVector userAttributes)
Return an iterator of signatures associated with the passed in user attributes.
Iterator
getSignaturesOfType(int signatureType)
Return signatures of the passed in type that are on this key.
Iterator
getUserAttributes()
Return any user attribute vectors associated with the key.
Iterator
getUserIDs()
Return any userIDs associated with the key.
int
getValidDays()
int
getVersion()
boolean
isEncryptionKey()
return true if this key is marked as suitable for encryption.
boolean
isMasterKey()
Return true if this is a master key.
static PGPPublicKey
removeCertification(PGPPublicKey key, String id)
Remove any certifications associated with a given id on a key.
static PGPPublicKey
removeCertification(PGPPublicKey key, String id, PGPSignature certification)
Remove any certifications associated with a given id on a key.

Constructor Details

PGPPublicKey

public PGPPublicKey(int algorithm,
                    PublicKey pubKey,
                    Date time,
                    String provider)
            throws PGPException,
                   NoSuchProviderException
Create a PGPPublicKey from the passed in JCA one.

Note: the time passed in affects the value of the key's keyID, so you probably only want to do this once for a JCA key, or make sure you keep track of the time you used.

Parameters:
algorithm -
pubKey -
time -
provider -

Throws:
PGPException -

Method Details

addCertification

public static PGPPublicKey addCertification(PGPPublicKey key,
                                            String id,
                                            PGPSignature certification)
Add a certification to the given public key.

Parameters:
key - the key the certification is to be added to.
id - the id the certification is associated with.
certification - the new certification.

Returns:
the re-certified key.


addCertification

public static PGPPublicKey addCertification(PGPPublicKey key,
                                            PGPSignature certification)
Add a revocation or some other key certification to a key.

Parameters:
key - the key the revocation is to be added to.
certification - the key signature to be added.

Returns:
the new changed public key object.


encode

public void encode(OutputStream outStream)
            throws IOException


getAlgorithm

public int getAlgorithm()
Return the algorithm code associated with the public key.

Returns:
int


getBitStrength

public int getBitStrength()
Return the strength of the key in bits.

Returns:
bit strenght of key.


getCreationTime

public Date getCreationTime()

Returns:
creation time of key.


getEncoded

public byte[] getEncoded()
            throws IOException


getFingerprint

public byte[] getFingerprint()
Return the fingerprint of the key.

Returns:
key fingerprint.


getKey

public PublicKey getKey(String provider)
            throws PGPException,
                   NoSuchProviderException
Return the public key contained in the object.

Parameters:
provider - provider to construct the key for.

Returns:
PublicKey

Throws:
PGPException -


getKeyID

public long getKeyID()
Return the keyID associated with the public key.

Returns:
long


getSignatures

public Iterator getSignatures()
Return all signatures/certifications associated with this key.

Returns:
an iterator (possibly empty) with all signatures/certifications.


getSignaturesForID

public Iterator getSignaturesForID(String id)
Return any signatures associated with the passed in id.

Parameters:
id - the id to be matched.

Returns:
an iterator of PGPSignature objects.


getSignaturesForUserAttribute

public Iterator getSignaturesForUserAttribute(PGPUserAttributeSubpacketVector userAttributes)
Return an iterator of signatures associated with the passed in user attributes.

Parameters:
userAttributes - the vector of user attributes to be matched.

Returns:
an iterator of PGPSignature objects.


getSignaturesOfType

public Iterator getSignaturesOfType(int signatureType)
Return signatures of the passed in type that are on this key.

Parameters:
signatureType - the type of the signature to be returned.

Returns:
an iterator (possibly empty) of signatures of the given type.


getUserAttributes

public Iterator getUserAttributes()
Return any user attribute vectors associated with the key.

Returns:
an iterator of PGPUserAttributeSubpacketVector objects.


getUserIDs

public Iterator getUserIDs()
Return any userIDs associated with the key.

Returns:
an iterator of Strings.


getValidDays

public int getValidDays()

Returns:
number of valid days from creation time - zero means no expiry.


getVersion

public int getVersion()

Returns:
the version of this key.


isEncryptionKey

public boolean isEncryptionKey()
return true if this key is marked as suitable for encryption.


isMasterKey

public boolean isMasterKey()
Return true if this is a master key.

Returns:
true if a master key.


removeCertification

public static PGPPublicKey removeCertification(PGPPublicKey key,
                                               String id)
Remove any certifications associated with a given id on a key.

Parameters:
key - the key the certifications are to be removed from.
id - the id that is to be removed.

Returns:
the re-certified key, null if the id was not found on the key.


removeCertification

public static PGPPublicKey removeCertification(PGPPublicKey key,
                                               String id,
                                               PGPSignature certification)
Remove any certifications associated with a given id on a key.

Parameters:
key - the key the certifications are to be removed from.
id - the id that the certfication is to be removed from.
certification - the certfication to be removed.

Returns:
the re-certified key, null if the certification was not found.