Example usage for org.bouncycastle.openpgp PGPPublicKeyRingCollection getPublicKeyRing

List of usage examples for org.bouncycastle.openpgp PGPPublicKeyRingCollection getPublicKeyRing

Introduction

In this page you can find the example usage for org.bouncycastle.openpgp PGPPublicKeyRingCollection getPublicKeyRing.

Prototype

public PGPPublicKeyRing getPublicKeyRing(byte[] fingerprint) throws PGPException 

Source Link

Document

Return the PGP public key associated with the given key fingerprint.

Usage

From source file:org.jivesoftware.smackx.ox.OpenPgpContact.java

License:Apache License

/**
 * Return any announced public keys. This is the set returned by {@link #getAnyPublicKeys()} with non-announced
 * keys and keys which lack a user-id with the contacts jid removed.
 *
 * @return announced keys of the contact
 *
 * @throws IOException IO is dangerous//  w ww  . jav a2  s  . c  o  m
 * @throws PGPException PGP is brittle
 */
public PGPPublicKeyRingCollection getAnnouncedPublicKeys() throws IOException, PGPException {
    PGPPublicKeyRingCollection anyKeys = getAnyPublicKeys();
    Map<OpenPgpV4Fingerprint, Date> announced = store.getAnnouncedFingerprintsOf(jid);

    BareJidUserId.PubRingSelectionStrategy userIdFilter = new BareJidUserId.PubRingSelectionStrategy();

    PGPPublicKeyRingCollection announcedKeysCollection = null;
    for (OpenPgpV4Fingerprint announcedFingerprint : announced.keySet()) {
        PGPPublicKeyRing ring = anyKeys.getPublicKeyRing(announcedFingerprint.getKeyId());

        if (ring == null)
            continue;

        ring = BCUtil.removeUnassociatedKeysFromKeyRing(ring,
                ring.getPublicKey(announcedFingerprint.getKeyId()));

        if (!userIdFilter.accept(getJid(), ring)) {
            LOGGER.log(Level.WARNING, "Ignore key " + Long.toHexString(ring.getPublicKey().getKeyID())
                    + " as it lacks the user-id \"xmpp" + getJid().toString() + "\"");
            continue;
        }

        if (announcedKeysCollection == null) {
            announcedKeysCollection = new PGPPublicKeyRingCollection(Collections.singleton(ring));
        } else {
            announcedKeysCollection = PGPPublicKeyRingCollection.addPublicKeyRing(announcedKeysCollection,
                    ring);
        }
    }

    return announcedKeysCollection;
}

From source file:org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpKeyStore.java

License:Apache License

@Override
public PGPPublicKeyRing getPublicKeyRing(BareJid owner, OpenPgpV4Fingerprint fingerprint)
        throws IOException, PGPException {
    PGPPublicKeyRingCollection publicKeyRings = getPublicKeysOf(owner);

    if (publicKeyRings != null) {
        return publicKeyRings.getPublicKeyRing(fingerprint.getKeyId());
    }//w  w  w  .  j  ava2  s  . co  m

    return null;
}

From source file:org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpKeyStore.java

License:Apache License

@Override
public void deletePublicKeyRing(BareJid owner, OpenPgpV4Fingerprint fingerprint)
        throws IOException, PGPException {
    PGPPublicKeyRingCollection publicKeyRings = getPublicKeysOf(owner);
    if (publicKeyRings.contains(fingerprint.getKeyId())) {
        publicKeyRings = PGPPublicKeyRingCollection.removePublicKeyRing(publicKeyRings,
                publicKeyRings.getPublicKeyRing(fingerprint.getKeyId()));
        if (!publicKeyRings.iterator().hasNext()) {
            publicKeyRings = null;/*from  w w  w  .  ja  v a  2 s.  co  m*/
        }
        this.publicKeyRingCollections.put(owner, publicKeyRings);
        writePublicKeysOf(owner, publicKeyRings);
    }
}