--- /dev/null
+package io.bytom.common;\r
+\r
+import org.bouncycastle.util.encoders.Hex;\r
+import org.junit.Test;\r
+\r
+import java.security.InvalidKeyException;\r
+import java.security.NoSuchAlgorithmException;\r
+import java.security.SignatureException;\r
+\r
+public class DerivePrivateKeyTest {\r
+ @Test\r
+ public void testBip44Key() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {\r
+ String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";\r
+ byte[] derivePrivateKey = DerivePrivateKey.derivePrivateKey(rootKey, 1, false, 2);\r
+ System.out.println(Hex.toHexString(derivePrivateKey));\r
+ //expected 48c65f40d860723e71b03988a22edc9ad00ae0deae992e79fb3b812edb5c3e43e78065bf46d0e8ad922cdae600fd2c2a6239b8f1f504f8f255460c6fcce023ff\r
+ }\r
+\r
+ @Test\r
+ public void testBip32Key() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {\r
+ String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";\r
+ byte[] derivePrivateKey = DerivePrivateKey.derivePrivateKey(rootKey, 2);\r
+ System.out.println(Hex.toHexString(derivePrivateKey));\r
+ //expected 2806f655e862ffc550c2dcaa5057e02e0a1c7c714a4c5a1823bd83f060593e43f5fef4fced766de36cb7ea8ca51cebac7830d54dca1929e669a4a7c3dc7b9dcc\r
+ }\r
+\r
+ @Test\r
+ public void testBip32PublicKey() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {\r
+ String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";\r
+ byte[] derivePrivateKey = DerivePrivateKey.derivePrivateKey(rootKey, 14);\r
+ byte[] deriveXpub = DeriveXpub.deriveXpub(derivePrivateKey);\r
+ System.out.println(Hex.toHexString(deriveXpub).substring(0, 64));\r
+ //expected 2806f655e862ffc550c2dcaa5057e02e0a1c7c714a4c5a1823bd83f060593e43f5fef4fced766de36cb7ea8ca51cebac7830d54dca1929e669a4a7c3dc7b9dcc\r
+ }\r
+}\r