## Uses of Interface
net.i2p.crypto.KeyFactory

- Packages that use KeyFactory
  Package | Description
  --- | ---
  com.southernstorm.noise.protocol | Provides classes for communicating via the Noise protocol.
  net.i2p.router.crypto.pqc | Post-quantum cryptographic algorithms for I2P.
  net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol (I2P proposal 144), providing forward secrecy and enhanced security for I2P transport communications.
  net.i2p.router.transport.crypto | Cryptographic operations for I2P transport protocols, including key exchange algorithms, session key management, and transport-layer encryption.

- - ### Uses of KeyFactory in com.southernstorm.noise.protocol

    Constructors in com.southernstorm.noise.protocol with parameters of type KeyFactory
    Constructor and Description
    `Curve25519DHState(KeyFactory xdh)` Constructs a new Diffie-Hellman object for Curve25519.
    `HandshakeState(String patternId, int role, KeyFactory xdh)` Creates a new Noise handshake.
    `HandshakeState(String patternId, int role, KeyFactory xdh, KeyFactory hdh)` Creates a new Noise handshake.
    `MLKEMDHState(KeyFactory hdh, String patternId)` Alice local side

  - ### Uses of KeyFactory in net.i2p.router.crypto.pqc

    Fields in net.i2p.router.crypto.pqc declared as KeyFactory
    Modifier and Type | Field and Description
    --- | ---
    `static KeyFactory` | MLKEM.`MLKEM1024KeyFactory`
    `static KeyFactory` | MLKEM.`MLKEM512KeyFactory` all non-threaded for now
    `static KeyFactory` | MLKEM.`MLKEM768KeyFactory`

  - ### Uses of KeyFactory in net.i2p.router.crypto.ratchet

    Classes in net.i2p.router.crypto.ratchet that implement KeyFactory
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Elg2KeyFactory` Threaded factory for pre-calculating Elligator2-encoded X25519 key pairs to prevent Diffie-Hellman computation bottlenecks in critical paths Try to keep DH pairs at the ready.

  - ### Uses of KeyFactory in net.i2p.router.transport.crypto

    Classes in net.i2p.router.transport.crypto that implement KeyFactory
    Modifier and Type | Class and Description
    --- | ---
    `class` | `X25519KeyFactory` Try to keep DH pairs at the ready.