Class ChildNumber

java.lang.Object
org.bitcoinj.crypto.ChildNumber
All Implemented Interfaces:
Comparable<ChildNumber>

public class ChildNumber extends Object implements Comparable<ChildNumber>

This is just a wrapper for the i (child number) as per BIP 32 with a boolean getter for the most significant bit and a getter for the actual 0-based child number. A List of these forms a path through a DeterministicHierarchy. This class is immutable.

  • Field Details

    • HARDENED_BIT

      public static final int HARDENED_BIT
      The bit that's set in the child number to indicate whether this key is "hardened". Given a hardened key, it is not possible to derive a child public key if you know only the hardened public key. With a non-hardened key this is possible, so you can derive trees of public keys given only a public parent, but the downside is that it's possible to leak private keys if you disclose a parent public key and a child private key (elliptic curve maths allows you to work upwards).
      See Also:
    • ZERO

      public static final ChildNumber ZERO
    • ZERO_HARDENED

      public static final ChildNumber ZERO_HARDENED
    • ONE

      public static final ChildNumber ONE
    • ONE_HARDENED

      public static final ChildNumber ONE_HARDENED
  • Constructor Details

    • ChildNumber

      public ChildNumber(int childNumber, boolean isHardened)
    • ChildNumber

      public ChildNumber(int i)
  • Method Details

    • getI

      public int getI()
      Returns the uint32 encoded form of the path element, including the most significant bit.
    • i

      public int i()
      Returns the uint32 encoded form of the path element, including the most significant bit.
    • isHardened

      public boolean isHardened()
    • num

      public int num()
      Returns the child number without the hardening bit set (i.e. index in that part of the tree).
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo(ChildNumber other)
      Specified by:
      compareTo in interface Comparable<ChildNumber>