java.lang.Object
net.i2p.router.JobImpl
net.i2p.router.startup.CreateRouterInfoJob
All Implemented Interfaces:
Job

public class CreateRouterInfoJobextends JobImpl
Warning - misnamed. This creates a new RouterIdentity, i.e. new router keys and hash. It then builds a new RouterInfo and saves all the keys. This is generally run only once, on a new install.
  • Field Details

  • Constructor Details

    • CreateRouterInfoJob

      CreateRouterInfoJob(RouterContext ctx, Job next)
      Creates a new CreateRouterInfoJob.
      Parameters:
      ctx - the router context
      next - the job to run after creation
  • Method Details

    • getName

      public String getName()
      Description copied from interface: Job
      Descriptive name of the task.
      Returns:
      the descriptive name of the task
    • runJob

      public void runJob()
      Description copied from interface: Job
      Actually perform the task. This call blocks until the Job is complete.
    • createRouterInfo

      RouterInfo createRouterInfo()
      Writes 6 files: router.info (standard RI format), router.keys.dat, and 4 individual key files under keyBackup/

      router.keys.dat file format: This is the same "eepPriv.dat" format used by the client code, as documented in PrivateKeyFile.

      Old router.keys file format: Note that this is NOT the same "eepPriv.dat" format used by the client code.

       - Private key (256 bytes)
       - Signing Private key (20 bytes)
       - Public key (256 bytes)
       - Signing Public key (128 bytes)
       Total 660 bytes
      

      Caller must hold Router.routerInfoFileLock.

      Returns:
      the created RouterInfo, or null on failure
    • getSigTypeConfig

      public static SigType getSigTypeConfig(RouterContext ctx)
      The configured SigType to expect on read-in.
      Parameters:
      ctx - the router context
      Returns:
      the configured signature type
    • getEncTypeConfig

      public static EncType getEncTypeConfig(RouterContext ctx)
      The configured EncType to expect on read-in.
      Parameters:
      ctx - the router context
      Returns:
      the configured encryption type
    • getCurrentPublishDate

      static long getCurrentPublishDate(RouterContext context)
      We probably don't want to expose the exact time at which a router published its info. perhaps round down to the nearest minute? 10 minutes? 30 minutes? day?
      Parameters:
      context - the router context
      Returns:
      the current time as publish date