## Uses of Class
net.i2p.data.i2np.TunnelBuildMessage

- Packages that use TunnelBuildMessage
  Package | Description
  --- | ---
  net.i2p.data.i2np | This package defines the low-level messages sent between routers, called Invisible Internet Network Protocol (I2NP).
  net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system.

- - ### Uses of TunnelBuildMessage in net.i2p.data.i2np

    Subclasses of TunnelBuildMessage in net.i2p.data.i2np
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ShortTunnelBuildMessage` Variable size, small records.
    `class` | `VariableTunnelBuildMessage` Variable number of records.

  - ### Uses of TunnelBuildMessage in net.i2p.router.tunnel.pool

    Methods in net.i2p.router.tunnel.pool with parameters of type TunnelBuildMessage
    Modifier and Type | Method and Description
    --- | ---
    `static void` | BuildMessageGenerator.`createRecord(int recordNum, int hop, TunnelBuildMessage msg, TunnelCreatorConfig cfg, Hash replyRouter, long replyTunnel, RouterContext ctx, PublicKey peerKey, Properties props)` Place the asymmetrically encrypted record in the specified record slot, containing the hop's configuration (as well as the reply info, if it is an outbound endpoint)
    `BuildRequestRecord` | BuildMessageProcessor.`decrypt(TunnelBuildMessage msg, Hash ourHash, PrivateKey privKey)` Decrypt the record targeting us, encrypting all of the other records with the included reply key and IV.
    `static void` | BuildMessageGenerator.`layeredEncrypt(I2PAppContext ctx, TunnelBuildMessage msg, TunnelCreatorConfig cfg, List<Integer> order)` Encrypt the records so their hop ident is visible at the appropriate times.