WordListMapNormalization(final WordList wordList) { for (int i = 0; i < 1 << 11; i++) { final String word = wordList.getWord(i); final String normalized = Normalizer.normalize(word, Normalizer.Form.NFKD); normalizedMap.put(word, normalized); normalizedMap.put(normalized, normalized); normalizedMap.put(Normalizer.normalize(word, Normalizer.Form.NFC), normalized); } }
@Override public char getSpace() { return wordList.getSpace(); } };
WordListMapNormalization(final WordList wordList) { for (int i = 0; i < 1 << 11; i++) { final String word = wordList.getWord(i); final String normalized = Normalizer.normalize(word, Normalizer.Form.NFKD); normalizedMap.put(word, normalized); normalizedMap.put(normalized, normalized); normalizedMap.put(Normalizer.normalize(word, Normalizer.Form.NFC), normalized); } }
private static String swapWords(String mnemonic, int index1, int index2, WordList wordList) { final String[] split = mnemonic.split(String.valueOf(wordList.getSpace())); String temp = split[index1]; split[index1] = split[index2]; split[index2] = temp; StringJoiner joiner = new StringJoiner(String.valueOf(wordList.getSpace())); for (String string : split) { joiner.add(string); } return joiner.toString(); }
SeedCalculatorByWordListLookUp(final SeedCalculator seedCalculator, final WordList wordList) { this.seedCalculator = seedCalculator; normalizer = new WordListMapNormalization(wordList); for (int i = 0; i < 1 << 11; i++) { final String word = normalizer.normalize(wordList.getWord(i)); map.put(word, word.toCharArray()); } }
private MnemonicValidator(final WordList wordList) { normalizer = new WordListMapNormalization(wordList); words = new WordAndIndex[1 << 11]; for (int i = 0; i < 1 << 11; i++) { words[i] = new WordAndIndex(i, wordList.getWord(i)); } charSequenceSplitter = new CharSequenceSplitter(wordList.getSpace(), normalizeNFKD(wordList.getSpace())); Arrays.sort(words, wordListSortOrder); }
SeedCalculatorByWordListLookUp(final SeedCalculator seedCalculator, final WordList wordList) { this.seedCalculator = seedCalculator; normalizer = new WordListMapNormalization(wordList); for (int i = 0; i < 1 << 11; i++) { final String word = normalizer.normalize(wordList.getWord(i)); map.put(word, word.toCharArray()); } }
private MnemonicValidator(final WordList wordList) { normalizer = new WordListMapNormalization(wordList); words = new WordAndIndex[1 << 11]; for (int i = 0; i < 1 << 11; i++) { words[i] = new WordAndIndex(i, wordList.getWord(i)); } charSequenceSplitter = new CharSequenceSplitter(wordList.getSpace(), normalizeNFKD(wordList.getSpace())); Arrays.sort(words, wordListSortOrder); }
@Override public String getWord(int index) { return Normalizer.normalize(wordList.getWord(index), Normalizer.Form.NFKD); }
static String hashWordList(final WordList wordList) { final MessageDigest digest = toRuntime(() -> MessageDigest.getInstance("SHA-256")); for (int i = 0; i < WORD_COUNT; i++) { digest.update((wordList.getWord(i) + "\n").getBytes(StandardCharsets.UTF_8)); } digest.update(("" + wordList.getSpace()).getBytes(StandardCharsets.UTF_8)); return toHex(digest.digest()); }
@SuppressWarnings("ResultOfMethodCallIgnored") @Test(expected = ArrayIndexOutOfBoundsException.class) public void correctNumberOfWords() { wordList.getWord(WORD_COUNT + 1); } }
@SuppressWarnings("ResultOfMethodCallIgnored") @Test(expected = ArrayIndexOutOfBoundsException.class) public void correctNumberOfWords() { wordList.getWord(WORD_COUNT + 1); } }
@SuppressWarnings("ResultOfMethodCallIgnored") @Test(expected = ArrayIndexOutOfBoundsException.class) public void correctNumberOfWords() { wordList.getWord(WORD_COUNT + 1); } }
@SuppressWarnings("ResultOfMethodCallIgnored") @Test(expected = ArrayIndexOutOfBoundsException.class) public void correctNumberOfWords() { wordList.getWord(WORD_COUNT + 1); } }
@Test public void all_un_normalized_words_in_WordList_are_cached() { for (WordList wordList : Arrays.asList(Japanese.INSTANCE, English.INSTANCE, French.INSTANCE, Spanish.INSTANCE)) { final WordListMapNormalization map = new WordListMapNormalization(wordList); for (int i = 0; i < 2048; i++) { final String originalWord = wordList.getWord(i); final String nfcWord = Normalizer.normalize(originalWord, Normalizer.Form.NFC); final String nfkcWord = Normalizer.normalize(originalWord, Normalizer.Form.NFKC); final String nfkdWord = Normalizer.normalize(originalWord, Normalizer.Form.NFKD); final String word1 = map.normalize(nfcWord); final String word2 = map.normalize(nfkcWord); final String word3 = map.normalize(nfkdWord); assertWordIsNormalized(word1); assertSame(word1, word2); assertSame(word1, word3); } } }