|
15 | 15 |
|
16 | 16 | import org.junit.jupiter.api.Test;
|
17 | 17 |
|
| 18 | +import java.io.IOException; |
18 | 19 | import java.nio.charset.StandardCharsets;
|
19 | 20 | import java.nio.file.Files;
|
20 | 21 | import java.nio.file.Paths;
|
| 22 | +import java.security.GeneralSecurityException; |
21 | 23 | import java.security.SecureRandom;
|
22 | 24 | import java.util.Arrays;
|
23 | 25 | import java.util.List;
|
@@ -587,12 +589,43 @@ public void testEquals() throws Exception {
|
587 | 589 | }
|
588 | 590 |
|
589 | 591 | @Test
|
590 |
| - public void testClear() throws Exception { |
| 592 | + public void testClear() { |
591 | 593 | assertThrows(IllegalArgumentException.class, () -> {
|
592 | 594 | NKey key = NKey.createServer(null);
|
593 | 595 | key.clear();
|
594 | 596 | key.getPrivateKey();
|
595 | 597 |
|
596 | 598 | }, "Invalid encoding");
|
597 | 599 | }
|
| 600 | + |
| 601 | + @Test |
| 602 | + public void testPublicKeyFromSeed() throws Exception { |
| 603 | + // using nsc generated seeds for testing |
| 604 | + NKey pk = NKey.fromSeed("SOAELH6NJCEK4HST5644G4HK7TOAFZGRRJHNM4EUKUY7PPNDLIKO5IH4JM".toCharArray()); |
| 605 | + assertEquals("ODPWIBQJVIQ42462QAFI2RKJC4RZHCQSIVPRDDHWFCJAP52NRZK6Z2YC", new String(pk.getPublicKey())); |
| 606 | + |
| 607 | + pk = NKey.fromSeed("SAANWFZ3JINNPERWT3ALE45U7GYT2ZDW6GJUIVPDKUF6GKAX6AISZJMAS4".toCharArray()); |
| 608 | + assertEquals("AATEJXG7UX4HFJ6ZPRTP22P6OYZER36YYD3GVBOVW7QHLU32P4QFFTZJ", new String(pk.getPublicKey())); |
| 609 | + |
| 610 | + pk = NKey.fromSeed("SUAGDLNBWI2SGHDRYBHD63NH5FGZSVJUW2J7GAJZXWANQFLDW6G5SXZESU".toCharArray()); |
| 611 | + assertEquals("UBICBTHDKQRB4LIYA6BMIJ7EA2G7YS7FIWMMVKZJE6M3HS5IVCOLKDY2", new String(pk.getPublicKey())); |
| 612 | + } |
| 613 | + |
| 614 | + @Test |
| 615 | + public void testFromPublicKey() throws Exception { |
| 616 | + _testFromPublicKey("SUAHBVFYZF3DIEO4UIHIZMJICVLURLBM5JJPK7GSVGP2QUC3NZ323BRE6A", "UCM5BG6AAZSEGREBCLG7PG4GFQNJABSAVIXC6VWS7TDHZFPIYFVYHIDG"); |
| 617 | + _testFromPublicKey("SAADARCQJ3JA737Z443YNAZBNJNTFP7YNAF4QFUXKTBFBS4KAVK55DGSOQ", "AD2HQTUKOPBUGOPHA6KFRE6ZW5TH43D7P7E56OAQBZQLW2ECMNML6MVA"); |
| 618 | + _testFromPublicKey("SNAH645525YA4PNXHWWS46VNXXQTYAXOPKGHXYAHXZZ43XTDDG2ZQAX7LY", "NBZCD2OSMSDRVYCAI77HUN6A2WNDWNT2DMVVEW66DHNWCDXVOUWRCCK7"); |
| 619 | + _testFromPublicKey("SOAF5OP7UPK6XJCMNRYEJRET6YQSOE3FD4I4ERSN6WKHLYUC5AQDCOAFVY", "OA6SJACXYP2QGNLU4QYLJTVRVZPCZEEUNO2UQOVNGXYUPUJJHCVZIZQ2"); |
| 620 | + _testFromPublicKey("SCAP4LGVURDWVL37AZIM5O47UKANFI6FKBY77HMYF55CKW2XFKLNUBTTFE", "CAO36T42KFA2LMIZ6YHJKPQEJWT5ULYSV633FWBCEJ7MREZPHHC56BSC"); |
| 621 | + } |
| 622 | + |
| 623 | + private static void _testFromPublicKey(String userEncodedSeed, String userEncodedPubKey) throws GeneralSecurityException, IOException { |
| 624 | + NKey fromSeed = NKey.fromSeed(userEncodedSeed.toCharArray()); |
| 625 | + NKey fromKey = NKey.fromPublicKey(fromSeed.getPublicKey()); |
| 626 | + |
| 627 | + assertArrayEquals(fromSeed.getPublicKey(), fromKey.getPublicKey()); |
| 628 | + assertArrayEquals(userEncodedPubKey.toCharArray(), fromSeed.getPublicKey()); |
| 629 | + assertArrayEquals(userEncodedPubKey.toCharArray(), fromKey.getPublicKey()); |
| 630 | + } |
598 | 631 | }
|
0 commit comments