Class AbstractOpenPgpKeyStore

java.lang.Object
org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpKeyStore
All Implemented Interfaces:
OpenPgpKeyStore
Direct Known Subclasses:
FileBasedOpenPgpKeyStore

public abstract class AbstractOpenPgpKeyStore extends Object implements OpenPgpKeyStore
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Map<BareJid,Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date>>
     
    protected static final Logger
     
    protected Map<BareJid,org.bouncycastle.openpgp.PGPPublicKeyRingCollection>
     
    protected Map<BareJid,org.bouncycastle.openpgp.PGPSecretKeyRingCollection>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    deletePublicKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint)
    Remove a PGPPublicKeyRing which contains the key described by fingerprint from the PGPPublicKeyRingCollection of owner.
    void
    deleteSecretKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint)
    Remove a PGPSecretKeyRing which contains the key described by fingerprint from the PGPSecretKeyRingCollection of owner.
    org.bouncycastle.openpgp.PGPSecretKeyRing
    Generate a new PGPSecretKeyRing for owner.
    Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date>
    Return the last date on which keys of contact were fetched from PubSub.
    org.bouncycastle.openpgp.PGPPublicKeyRing
    getPublicKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint)
    Return the PGPPublicKeyRing of owner which contains the key described by fingerprint.
    org.bouncycastle.openpgp.PGPPublicKeyRingCollection
    Return the PGPPublicKeyRingCollection containing all public keys of owner that are locally available.
    org.bouncycastle.openpgp.PGPSecretKeyRing
    getSecretKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint)
    Return the PGPSecretKeyRing of owner which contains the key described by fingerprint.
    org.bouncycastle.openpgp.PGPSecretKeyRingCollection
    Return the PGPSecretKeyRingCollection containing all secret keys of owner which are locally available.
    void
    importPublicKey(BareJid owner, org.bouncycastle.openpgp.PGPPublicKeyRing publicKeys)
    Import a PGPPublicKeyRing of owner.
    void
    importSecretKey(BareJid owner, org.bouncycastle.openpgp.PGPSecretKeyRing secretKeys)
    Import a PGPSecretKeyRing of owner.
    protected abstract Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date>
    Read the key fetch dates for a users keys from local storage.
    protected abstract org.bouncycastle.openpgp.PGPPublicKeyRingCollection
    Read a PGPPublicKeyRingCollection from local storage.
    protected abstract org.bouncycastle.openpgp.PGPSecretKeyRingCollection
    Read a PGPSecretKeyRingCollection from local storage.
    void
    setPublicKeyFetchDates(BareJid contact, Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date> dates)
    Set the last date on which keys of contact were fetched from PubSub.
    protected abstract void
    writeKeyFetchDates(BareJid owner, Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date> dates)
    Write the key fetch dates for a users keys to local storage.
    protected abstract void
    writePublicKeysOf(BareJid owner, org.bouncycastle.openpgp.PGPPublicKeyRingCollection publicKeys)
    Write the PGPPublicKeyRingCollection of a user to local storage.
    protected abstract void
    writeSecretKeysOf(BareJid owner, org.bouncycastle.openpgp.PGPSecretKeyRingCollection secretKeys)
    Write the PGPSecretKeyRingCollection of a user to local storage.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • readPublicKeysOf

      protected abstract org.bouncycastle.openpgp.PGPPublicKeyRingCollection readPublicKeysOf(BareJid owner) throws IOException, org.bouncycastle.openpgp.PGPException
      Read a PGPPublicKeyRingCollection from local storage. This method returns null, if no keys were found.
      Parameters:
      owner - owner of the keys
      Returns:
      public keys
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • writePublicKeysOf

      protected abstract void writePublicKeysOf(BareJid owner, org.bouncycastle.openpgp.PGPPublicKeyRingCollection publicKeys) throws IOException
      Write the PGPPublicKeyRingCollection of a user to local storage.
      Parameters:
      owner - owner of the keys
      publicKeys - keys
      Throws:
      IOException - IO is dangerous
    • readSecretKeysOf

      protected abstract org.bouncycastle.openpgp.PGPSecretKeyRingCollection readSecretKeysOf(BareJid owner) throws IOException, org.bouncycastle.openpgp.PGPException
      Read a PGPSecretKeyRingCollection from local storage. This method returns null, if no keys were found.
      Parameters:
      owner - owner of the keys
      Returns:
      secret keys
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • writeSecretKeysOf

      protected abstract void writeSecretKeysOf(BareJid owner, org.bouncycastle.openpgp.PGPSecretKeyRingCollection secretKeys) throws IOException
      Write the PGPSecretKeyRingCollection of a user to local storage.
      Parameters:
      owner - owner of the keys
      secretKeys - secret keys
      Throws:
      IOException - IO is dangerous
    • readKeyFetchDates

      protected abstract Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date> readKeyFetchDates(BareJid owner) throws IOException
      Read the key fetch dates for a users keys from local storage.
      Parameters:
      owner - owner
      Returns:
      fetch dates for the owners keys
      Throws:
      IOException - IO is dangerous
    • writeKeyFetchDates

      protected abstract void writeKeyFetchDates(BareJid owner, Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date> dates) throws IOException
      Write the key fetch dates for a users keys to local storage.
      Parameters:
      owner - owner
      dates - fetch dates for the owners keys
      Throws:
      IOException - IO is dangerous
    • getPublicKeyFetchDates

      public Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date> getPublicKeyFetchDates(BareJid contact) throws IOException
      Description copied from interface: OpenPgpKeyStore
      Return the last date on which keys of contact were fetched from PubSub. This method MUST NOT return null.
      Specified by:
      getPublicKeyFetchDates in interface OpenPgpKeyStore
      Parameters:
      contact - contact in which we are interested.
      Returns:
      dates of last key fetching.
      Throws:
      IOException - IO is dangerous
    • setPublicKeyFetchDates

      public void setPublicKeyFetchDates(BareJid contact, Map<org.pgpainless.key.OpenPgpV4Fingerprint,Date> dates) throws IOException
      Description copied from interface: OpenPgpKeyStore
      Set the last date on which keys of contact were fetched from PubSub.
      Specified by:
      setPublicKeyFetchDates in interface OpenPgpKeyStore
      Parameters:
      contact - contact in which we are interested.
      dates - dates of last key fetching.
      Throws:
      IOException - IO is dangerous
    • getPublicKeysOf

      public org.bouncycastle.openpgp.PGPPublicKeyRingCollection getPublicKeysOf(BareJid owner) throws IOException, org.bouncycastle.openpgp.PGPException
      Description copied from interface: OpenPgpKeyStore
      Return the PGPPublicKeyRingCollection containing all public keys of owner that are locally available. This method might return null.
      Specified by:
      getPublicKeysOf in interface OpenPgpKeyStore
      Parameters:
      owner - BareJid of the user we want to get keys from.
      Returns:
      PGPPublicKeyRingCollection of the user.
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • getSecretKeysOf

      public org.bouncycastle.openpgp.PGPSecretKeyRingCollection getSecretKeysOf(BareJid owner) throws IOException, org.bouncycastle.openpgp.PGPException
      Description copied from interface: OpenPgpKeyStore
      Return the PGPSecretKeyRingCollection containing all secret keys of owner which are locally available. This method might return null.
      Specified by:
      getSecretKeysOf in interface OpenPgpKeyStore
      Parameters:
      owner - BareJid of the user we want to get keys from.
      Returns:
      PGPSecretKeyRingCollection of the user.
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • importSecretKey

      public void importSecretKey(BareJid owner, org.bouncycastle.openpgp.PGPSecretKeyRing secretKeys) throws IOException, org.bouncycastle.openpgp.PGPException, MissingUserIdOnKeyException
      Description copied from interface: OpenPgpKeyStore
      Import a PGPSecretKeyRing of owner. In case the key ring is already available locally, the keys are skipped.
      Specified by:
      importSecretKey in interface OpenPgpKeyStore
      Parameters:
      owner - owner of the keys
      secretKeys - secret keys
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
      MissingUserIdOnKeyException - in case the secret keys are lacking a user-id with the owners jid.
    • importPublicKey

      public void importPublicKey(BareJid owner, org.bouncycastle.openpgp.PGPPublicKeyRing publicKeys) throws IOException, org.bouncycastle.openpgp.PGPException, MissingUserIdOnKeyException
      Description copied from interface: OpenPgpKeyStore
      Import a PGPPublicKeyRing of owner. In case the key ring is already available locally, the keys are skipped.
      Specified by:
      importPublicKey in interface OpenPgpKeyStore
      Parameters:
      owner - owner of the keys
      publicKeys - public keys
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
      MissingUserIdOnKeyException - in case the public keys are lacking a user-id with the owners jid.
    • getPublicKeyRing

      public org.bouncycastle.openpgp.PGPPublicKeyRing getPublicKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint) throws IOException, org.bouncycastle.openpgp.PGPException
      Description copied from interface: OpenPgpKeyStore
      Return the PGPPublicKeyRing of owner which contains the key described by fingerprint. This method might return null.
      Specified by:
      getPublicKeyRing in interface OpenPgpKeyStore
      Parameters:
      owner - BareJid of the keys owner
      fingerprint - OpenPgpV4Fingerprint of a key contained in the key ring
      Returns:
      PGPPublicKeyRing which contains the key described by fingerprint.
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • getSecretKeyRing

      public org.bouncycastle.openpgp.PGPSecretKeyRing getSecretKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint) throws IOException, org.bouncycastle.openpgp.PGPException
      Description copied from interface: OpenPgpKeyStore
      Return the PGPSecretKeyRing of owner which contains the key described by fingerprint. This method might return null.
      Specified by:
      getSecretKeyRing in interface OpenPgpKeyStore
      Parameters:
      owner - BareJid of the keys owner
      fingerprint - OpenPgpV4Fingerprint of a key contained in the key ring
      Returns:
      PGPSecretKeyRing which contains the key described by fingerprint.
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • deletePublicKeyRing

      public void deletePublicKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint) throws IOException, org.bouncycastle.openpgp.PGPException
      Description copied from interface: OpenPgpKeyStore
      Remove a PGPPublicKeyRing which contains the key described by fingerprint from the PGPPublicKeyRingCollection of owner.
      Specified by:
      deletePublicKeyRing in interface OpenPgpKeyStore
      Parameters:
      owner - owner of the key ring
      fingerprint - fingerprint of the key whose key ring will be removed.
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • deleteSecretKeyRing

      public void deleteSecretKeyRing(BareJid owner, org.pgpainless.key.OpenPgpV4Fingerprint fingerprint) throws IOException, org.bouncycastle.openpgp.PGPException
      Description copied from interface: OpenPgpKeyStore
      Remove a PGPSecretKeyRing which contains the key described by fingerprint from the PGPSecretKeyRingCollection of owner.
      Specified by:
      deleteSecretKeyRing in interface OpenPgpKeyStore
      Parameters:
      owner - owner of the key ring
      fingerprint - fingerprint of the key whose key ring will be removed.
      Throws:
      IOException - IO is dangerous
      org.bouncycastle.openpgp.PGPException - PGP is brittle
    • generateKeyRing

      public org.bouncycastle.openpgp.PGPSecretKeyRing generateKeyRing(BareJid owner) throws org.bouncycastle.openpgp.PGPException, NoSuchAlgorithmException, InvalidAlgorithmParameterException
      Description copied from interface: OpenPgpKeyStore
      Generate a new PGPSecretKeyRing for owner. The key will have a user-id containing the users BareJid (eg. "xmpp:juliet@capulet.lit"). This method MUST NOT return null.
      Specified by:
      generateKeyRing in interface OpenPgpKeyStore
      Parameters:
      owner - owner of the key ring.
      Returns:
      key ring
      Throws:
      org.bouncycastle.openpgp.PGPException - PGP is brittle
      NoSuchAlgorithmException - in case there is no Provider registered for the used OpenPGP algorithms.
      InvalidAlgorithmParameterException - in case an invalid algorithms configuration is used.