|
35 | 35 |
|
36 | 36 | import java.io.IOException; |
37 | 37 | import java.nio.charset.StandardCharsets; |
| 38 | +import java.security.GeneralSecurityException; |
38 | 39 | import java.security.SecureRandom; |
39 | 40 | import java.util.Arrays; |
40 | 41 | import java.util.Base64; |
@@ -617,4 +618,35 @@ public void testClear() throws Exception { |
617 | 618 |
|
618 | 619 | }, "Invalid encoding"); |
619 | 620 | } |
| 621 | + |
| 622 | + @Test |
| 623 | + public void testPublicKeyFromSeed() throws Exception { |
| 624 | + // using nsc generated seeds for testing |
| 625 | + NKey pk = NKey.fromSeed("SOAELH6NJCEK4HST5644G4HK7TOAFZGRRJHNM4EUKUY7PPNDLIKO5IH4JM".toCharArray()); |
| 626 | + assertEquals("ODPWIBQJVIQ42462QAFI2RKJC4RZHCQSIVPRDDHWFCJAP52NRZK6Z2YC", new String(pk.getPublicKey())); |
| 627 | + |
| 628 | + pk = NKey.fromSeed("SAANWFZ3JINNPERWT3ALE45U7GYT2ZDW6GJUIVPDKUF6GKAX6AISZJMAS4".toCharArray()); |
| 629 | + assertEquals("AATEJXG7UX4HFJ6ZPRTP22P6OYZER36YYD3GVBOVW7QHLU32P4QFFTZJ", new String(pk.getPublicKey())); |
| 630 | + |
| 631 | + pk = NKey.fromSeed("SUAGDLNBWI2SGHDRYBHD63NH5FGZSVJUW2J7GAJZXWANQFLDW6G5SXZESU".toCharArray()); |
| 632 | + assertEquals("UBICBTHDKQRB4LIYA6BMIJ7EA2G7YS7FIWMMVKZJE6M3HS5IVCOLKDY2", new String(pk.getPublicKey())); |
| 633 | + } |
| 634 | + |
| 635 | + @Test |
| 636 | + public void testFromPublicKey() throws Exception { |
| 637 | + _testFromPublicKey("SUAHBVFYZF3DIEO4UIHIZMJICVLURLBM5JJPK7GSVGP2QUC3NZ323BRE6A", "UCM5BG6AAZSEGREBCLG7PG4GFQNJABSAVIXC6VWS7TDHZFPIYFVYHIDG"); |
| 638 | + _testFromPublicKey("SAADARCQJ3JA737Z443YNAZBNJNTFP7YNAF4QFUXKTBFBS4KAVK55DGSOQ", "AD2HQTUKOPBUGOPHA6KFRE6ZW5TH43D7P7E56OAQBZQLW2ECMNML6MVA"); |
| 639 | + _testFromPublicKey("SNAH645525YA4PNXHWWS46VNXXQTYAXOPKGHXYAHXZZ43XTDDG2ZQAX7LY", "NBZCD2OSMSDRVYCAI77HUN6A2WNDWNT2DMVVEW66DHNWCDXVOUWRCCK7"); |
| 640 | + _testFromPublicKey("SOAF5OP7UPK6XJCMNRYEJRET6YQSOE3FD4I4ERSN6WKHLYUC5AQDCOAFVY", "OA6SJACXYP2QGNLU4QYLJTVRVZPCZEEUNO2UQOVNGXYUPUJJHCVZIZQ2"); |
| 641 | + _testFromPublicKey("SCAP4LGVURDWVL37AZIM5O47UKANFI6FKBY77HMYF55CKW2XFKLNUBTTFE", "CAO36T42KFA2LMIZ6YHJKPQEJWT5ULYSV633FWBCEJ7MREZPHHC56BSC"); |
| 642 | + } |
| 643 | + |
| 644 | + private static void _testFromPublicKey(String userEncodedSeed, String userEncodedPubKey) throws GeneralSecurityException, IOException { |
| 645 | + NKey fromSeed = NKey.fromSeed(userEncodedSeed.toCharArray()); |
| 646 | + NKey fromKey = NKey.fromPublicKey(fromSeed.getPublicKey()); |
| 647 | + |
| 648 | + assertArrayEquals(fromSeed.getPublicKey(), fromKey.getPublicKey()); |
| 649 | + assertArrayEquals(userEncodedPubKey.toCharArray(), fromSeed.getPublicKey()); |
| 650 | + assertArrayEquals(userEncodedPubKey.toCharArray(), fromKey.getPublicKey()); |
| 651 | + } |
620 | 652 | } |
0 commit comments