Class YKGenerator

java.lang.Object
net.i2p.crypto.YKGenerator

final class YKGenerator extends Object
Precalculate the Y and K for ElGamal encryption operations. This class precalcs a set of values on its own thread, using those transparently when a new instance is created. By default, the minimum threshold for creating new values for the pool is 20, and the max pool size is 50. Whenever the pool has less than the minimum, it fills it up again to the max. There is a delay after each precalculation so that the CPU isn't hosed during startup. These three parameters are controlled by java environmental variables and can be adjusted via: -Dcrypto.yk.precalc.min=40 -Dcrypto.yk.precalc.max=100 -Dcrypto.yk.precalc.delay=60000 (delay is milliseconds) To disable precalculation, set min to 0
Author:
jrandom
  • Field Details

  • Constructor Details

    • YKGenerator

      public YKGenerator(I2PAppContext context)
      Caller must also call start() to start the background precalc thread. Unit tests will still work without calling start().
  • Method Details

    • start

      public void start()
      Start the background precalc thread. Must be called for normal operation. If not called, all generation happens in the foreground. Not required for unit tests.
      Since:
      0.9.14
    • shutdown

      public void shutdown()
      Stop the background precalc thread. Can be restarted. Not required for unit tests.
      Since:
      0.8.8
    • getNextYK

      public BigInteger[] getNextYK()
      Returns:
      rv[0] = Y; rv[1] = K