Class CachingBcPublicKeyDataDecryptorFactory

  • All Implemented Interfaces:
    org.bouncycastle.openpgp.operator.PGPDataDecryptorFactory, org.bouncycastle.openpgp.operator.PublicKeyDataDecryptorFactory, CustomPublicKeyDataDecryptorFactory

    public class CachingBcPublicKeyDataDecryptorFactory
    extends org.bouncycastle.openpgp.operator.bc.BcPublicKeyDataDecryptorFactory
    implements CustomPublicKeyDataDecryptorFactory
    Implementation of the PublicKeyDataDecryptorFactory which caches decrypted session keys. That way, if a message needs to be decrypted multiple times, expensive private key operations can be omitted. This implementation changes the behavior or recoverSessionData(int, byte[][]) to first return any cache hits. If no hit is found, the method call is delegated to the underlying PublicKeyDataDecryptorFactory. The result of that is then placed in the cache and returned.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      byte[] costlyRecoverSessionData​(int keyAlgorithm, byte[][] secKeyData)  
      SubkeyIdentifier getSubkeyIdentifier()  
      byte[] recoverSessionData​(int keyAlgorithm, byte[][] secKeyData)  
      • Methods inherited from class org.bouncycastle.openpgp.operator.bc.BcPublicKeyDataDecryptorFactory

        createDataDecryptor, createDataDecryptor
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.bouncycastle.openpgp.operator.PGPDataDecryptorFactory

        createDataDecryptor, createDataDecryptor
    • Constructor Detail

      • CachingBcPublicKeyDataDecryptorFactory

        public CachingBcPublicKeyDataDecryptorFactory​(org.bouncycastle.openpgp.PGPPrivateKey privateKey,
                                                      SubkeyIdentifier decryptionKey)
    • Method Detail

      • recoverSessionData

        public byte[] recoverSessionData​(int keyAlgorithm,
                                         byte[][] secKeyData)
                                  throws org.bouncycastle.openpgp.PGPException
        Specified by:
        recoverSessionData in interface org.bouncycastle.openpgp.operator.PublicKeyDataDecryptorFactory
        Overrides:
        recoverSessionData in class org.bouncycastle.openpgp.operator.bc.BcPublicKeyDataDecryptorFactory
        Throws:
        org.bouncycastle.openpgp.PGPException
      • costlyRecoverSessionData

        public byte[] costlyRecoverSessionData​(int keyAlgorithm,
                                               byte[][] secKeyData)
                                        throws org.bouncycastle.openpgp.PGPException
        Throws:
        org.bouncycastle.openpgp.PGPException
      • clear

        public void clear()