Class ElGamalEngine

    • Constructor Summary

      Constructors 
      Constructor Description
      ElGamalEngine()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getInputBlockSize()
      Return the maximum size for an input block to this engine.
      int getOutputBlockSize()
      Return the maximum size for an output block to this engine.
      void init​(boolean forEncryption, CipherParameters param)
      initialise the ElGamal engine.
      byte[] processBlock​(byte[] in, int inOff, int inLen)
      Process a single block using the basic ElGamal algorithm.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ElGamalEngine

        public ElGamalEngine()
    • Method Detail

      • init

        public void init​(boolean forEncryption,
                         CipherParameters param)
        initialise the ElGamal engine.
        Specified by:
        init in interface AsymmetricBlockCipher
        Parameters:
        forEncryption - true if we are encrypting, false otherwise.
        param - the necessary ElGamal key parameters.
      • getInputBlockSize

        public int getInputBlockSize()
        Return the maximum size for an input block to this engine. For ElGamal this is always one byte less than the size of P on encryption, and twice the length as the size of P on decryption.
        Specified by:
        getInputBlockSize in interface AsymmetricBlockCipher
        Returns:
        maximum size for an input block.
      • getOutputBlockSize

        public int getOutputBlockSize()
        Return the maximum size for an output block to this engine. For ElGamal this is always one byte less than the size of P on decryption, and twice the length as the size of P on encryption.
        Specified by:
        getOutputBlockSize in interface AsymmetricBlockCipher
        Returns:
        maximum size for an output block.
      • processBlock

        public byte[] processBlock​(byte[] in,
                                   int inOff,
                                   int inLen)
        Process a single block using the basic ElGamal algorithm.
        Specified by:
        processBlock in interface AsymmetricBlockCipher
        Parameters:
        in - the input array.
        inOff - the offset into the input buffer where the data starts.
        inLen - the length of the data to be processed.
        Returns:
        the result of the ElGamal process.
        Throws:
        DataLengthException - the input block is too large.