Class ElGamalEngine

    • 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.