Skip to content

Commit 8a1111c

Browse files
authored
Additional NKey Tests (#1154)
1 parent 4b05797 commit 8a1111c

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

src/test/java/io/nats/client/NKeyTests.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515

1616
import org.junit.jupiter.api.Test;
1717

18+
import java.io.IOException;
1819
import java.nio.charset.StandardCharsets;
1920
import java.nio.file.Files;
2021
import java.nio.file.Paths;
22+
import java.security.GeneralSecurityException;
2123
import java.security.SecureRandom;
2224
import java.util.Arrays;
2325
import java.util.List;
@@ -587,12 +589,43 @@ public void testEquals() throws Exception {
587589
}
588590

589591
@Test
590-
public void testClear() throws Exception {
592+
public void testClear() {
591593
assertThrows(IllegalArgumentException.class, () -> {
592594
NKey key = NKey.createServer(null);
593595
key.clear();
594596
key.getPrivateKey();
595597

596598
}, "Invalid encoding");
597599
}
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+
}
598631
}

0 commit comments

Comments
 (0)