Package org.bitcoinj.crypto
Class ChildNumber
- java.lang.Object
-
- org.bitcoinj.crypto.ChildNumber
-
- All Implemented Interfaces:
java.lang.Comparable<ChildNumber>
public class ChildNumber extends java.lang.Object implements java.lang.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 aDeterministicHierarchy
. This class is immutable.
-
-
Field Summary
Fields Modifier and Type Field Description static ChildNumber
CHANGE_CHANGE
static ChildNumber
CHANGE_RECEIVING
static ChildNumber
COINTYPE_BTC
static ChildNumber
COINTYPE_TBTC
static int
HARDENED_BIT
The bit that's set in the child number to indicate whether this key is "hardened".static ChildNumber
ONE
static ChildNumber
ONE_HARDENED
static ChildNumber
PURPOSE_BIP44
static ChildNumber
PURPOSE_BIP49
static ChildNumber
PURPOSE_BIP84
static ChildNumber
PURPOSE_BIP86
static ChildNumber
ZERO
static ChildNumber
ZERO_HARDENED
-
Constructor Summary
Constructors Constructor Description ChildNumber(int i)
ChildNumber(int childNumber, boolean isHardened)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ChildNumber other)
boolean
equals(java.lang.Object o)
int
getI()
Returns the uint32 encoded form of the path element, including the most significant bit.int
hashCode()
int
i()
Returns the uint32 encoded form of the path element, including the most significant bit.boolean
isHardened()
int
num()
Returns the child number without the hardening bit set (i.e.java.lang.String
toString()
-
-
-
Field Detail
-
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:
- Constant Field Values
-
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
-
PURPOSE_BIP44
public static final ChildNumber PURPOSE_BIP44
-
PURPOSE_BIP49
public static final ChildNumber PURPOSE_BIP49
-
PURPOSE_BIP84
public static final ChildNumber PURPOSE_BIP84
-
PURPOSE_BIP86
public static final ChildNumber PURPOSE_BIP86
-
COINTYPE_BTC
public static final ChildNumber COINTYPE_BTC
-
COINTYPE_TBTC
public static final ChildNumber COINTYPE_TBTC
-
CHANGE_RECEIVING
public static final ChildNumber CHANGE_RECEIVING
-
CHANGE_CHANGE
public static final ChildNumber CHANGE_CHANGE
-
-
Method Detail
-
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 java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
compareTo
public int compareTo(ChildNumber other)
- Specified by:
compareTo
in interfacejava.lang.Comparable<ChildNumber>
-
-