Class AbstractEncryptionService

java.lang.Object
org.refcodes.forwardsecrecy.AbstractEncryptionService
All Implemented Interfaces:
Iterator<CipherVersion>, CipherVersionGenerator<CipherVersion>, EncryptionService, org.refcodes.generator.Generator<CipherVersion>
Direct Known Subclasses:
LoopbackEncryptionService, PublicKeyEncryptionService

public abstract class AbstractEncryptionService extends Object implements EncryptionService
Abstract base implementation for non abstract EncryptionService implementations.
  • Constructor Details

    • AbstractEncryptionService

      public AbstractEncryptionService(String aNamespace, EncryptionServer aEncryptionServer, CipherVersionGenerator<CipherVersion> aCipherVersionGenerator)
      Constructs the service with the required services and configuration.
      Parameters:
      aNamespace - The name space to which this service belongs
      aEncryptionServer - The server to which the service is being "connected"
      aCipherVersionGenerator - The generator to be used for generating CipherVersion instances.
  • Method Details

    • next

      public CipherVersion next()
      Generator method to be implemented by subclasses. Required to create implementation dependent cipher version objects. Retrieves the next valid cipher which may be used for encrypting data.
      Specified by:
      next in interface CipherVersionGenerator<CipherVersion>
      Specified by:
      next in interface org.refcodes.generator.Generator<CipherVersion>
      Specified by:
      next in interface Iterator<CipherVersion>
      Returns:
      The next valid CipherVersion for encryption.
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface org.refcodes.generator.Generator<CipherVersion>
      Specified by:
      hasNext in interface Iterator<CipherVersion>
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<CipherVersion>
    • toEncryptedCipherVersion

      protected abstract <CV extends CipherVersion> CV toEncryptedCipherVersion(CV aDecyrptedCipherVersion)
      Hook factory method to be implemented by subclasses. The provided cipher is to be encrypted (e.g. with the public key of an asymmetric encryption approach) so that an Encryption-Server only receives encrypted data.
      Type Parameters:
      CV - The type of the CipherVersion to be used.
      Parameters:
      aDecyrptedCipherVersion - The CipherVersion to be encrypted.
      Returns:
      The encrypted CipherVersion.