1 package io.bytom.common;
\r
3 import org.bouncycastle.util.encoders.Hex;
\r
4 import org.junit.Test;
\r
6 import java.security.InvalidKeyException;
\r
7 import java.security.NoSuchAlgorithmException;
\r
8 import java.security.SignatureException;
\r
10 public class DerivePrivateKeyTest {
\r
12 public void testBip44Key() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
\r
13 String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";
\r
14 byte[] derivePrivateKey = DerivePrivateKey.derivePrivateKey(rootKey, 1, false, 2);
\r
15 System.out.println(Hex.toHexString(derivePrivateKey));
\r
16 //expected 48c65f40d860723e71b03988a22edc9ad00ae0deae992e79fb3b812edb5c3e43e78065bf46d0e8ad922cdae600fd2c2a6239b8f1f504f8f255460c6fcce023ff
\r
20 public void testBip32Key() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
\r
21 String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";
\r
22 byte[] derivePrivateKey = DerivePrivateKey.derivePrivateKey(rootKey, 2);
\r
23 System.out.println(Hex.toHexString(derivePrivateKey));
\r
24 //expected 2806f655e862ffc550c2dcaa5057e02e0a1c7c714a4c5a1823bd83f060593e43f5fef4fced766de36cb7ea8ca51cebac7830d54dca1929e669a4a7c3dc7b9dcc
\r
28 public void testBip32PublicKey() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
\r
29 String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";
\r
30 byte[] derivePrivateKey = DerivePrivateKey.derivePrivateKey(rootKey, 14);
\r
31 byte[] deriveXpub = DeriveXpub.deriveXpub(derivePrivateKey);
\r
32 System.out.println(Hex.toHexString(deriveXpub).substring(0, 64));
\r
33 //expected 2806f655e862ffc550c2dcaa5057e02e0a1c7c714a4c5a1823bd83f060593e43f5fef4fced766de36cb7ea8ca51cebac7830d54dca1929e669a4a7c3dc7b9dcc
\r