diff --git a/README.md b/README.md index e4a8b21..1b39323 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Read all about how I wrote this and understanding BIP39 [here](https://medium.com/@_west_on/coding-a-bip39-microlibrary-in-java-bb90c1109123). -Apart from generating a seed, only English and Japanese [currently supported](https://github.com/NovaCrypto/BIP39/issues/1). +Apart from generating a seed, only English, French and Japanese [currently supported](https://github.com/NovaCrypto/BIP39/issues/1). # Install diff --git a/src/main/java/io/github/novacrypto/bip39/wordlists/French.java b/src/main/java/io/github/novacrypto/bip39/wordlists/French.java new file mode 100644 index 0000000..48fb9ad --- /dev/null +++ b/src/main/java/io/github/novacrypto/bip39/wordlists/French.java @@ -0,0 +1,2092 @@ +/* + * BIP39 library, a Java implementation of BIP39 + * Copyright (C) 2017 Alan Evans, NovaCrypto + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Original source: https://github.com/NovaCrypto/BIP39 + * You can contact the authors via github issues. + */ + +package io.github.novacrypto.bip39.wordlists; + +import io.github.novacrypto.bip39.WordList; + +/** + * Source: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt + */ +public enum French implements WordList { + INSTANCE; + + @Override + public String getWord(final int index) { + return words[index]; + } + + @Override + public char getSpace() { + return ' '; + } + + private final static String[] words = new String[]{ + "abaisser", + "abandon", + "abdiquer", + "abeille", + "abolir", + "aborder", + "aboutir", + "aboyer", + "abrasif", + "abreuver", + "abriter", + "abroger", + "abrupt", + "absence", + "absolu", + "absurde", + "abusif", + "abyssal", + "académie", + "acajou", + "acarien", + "accabler", + "accepter", + "acclamer", + "accolade", + "accroche", + "accuser", + "acerbe", + "achat", + "acheter", + "aciduler", + "acier", + "acompte", + "acquérir", + "acronyme", + "acteur", + "actif", + "actuel", + "adepte", + "adéquat", + "adhésif", + "adjectif", + "adjuger", + "admettre", + "admirer", + "adopter", + "adorer", + "adoucir", + "adresse", + "adroit", + "adulte", + "adverbe", + "aérer", + "aéronef", + "affaire", + "affecter", + "affiche", + "affreux", + "affubler", + "agacer", + "agencer", + "agile", + "agiter", + "agrafer", + "agréable", + "agrume", + "aider", + "aiguille", + "ailier", + "aimable", + "aisance", + "ajouter", + "ajuster", + "alarmer", + "alchimie", + "alerte", + "algèbre", + "algue", + "aliéner", + "aliment", + "alléger", + "alliage", + "allouer", + "allumer", + "alourdir", + "alpaga", + "altesse", + "alvéole", + "amateur", + "ambigu", + "ambre", + "aménager", + "amertume", + "amidon", + "amiral", + "amorcer", + "amour", + "amovible", + "amphibie", + "ampleur", + "amusant", + "analyse", + "anaphore", + "anarchie", + "anatomie", + "ancien", + "anéantir", + "angle", + "angoisse", + "anguleux", + "animal", + "annexer", + "annonce", + "annuel", + "anodin", + "anomalie", + "anonyme", + "anormal", + "antenne", + "antidote", + "anxieux", + "apaiser", + "apéritif", + "aplanir", + "apologie", + "appareil", + "appeler", + "apporter", + "appuyer", + "aquarium", + "aqueduc", + "arbitre", + "arbuste", + "ardeur", + "ardoise", + "argent", + "arlequin", + "armature", + "armement", + "armoire", + "armure", + "arpenter", + "arracher", + "arriver", + "arroser", + "arsenic", + "artériel", + "article", + "aspect", + "asphalte", + "aspirer", + "assaut", + "asservir", + "assiette", + "associer", + "assurer", + "asticot", + "astre", + "astuce", + "atelier", + "atome", + "atrium", + "atroce", + "attaque", + "attentif", + "attirer", + "attraper", + "aubaine", + "auberge", + "audace", + "audible", + "augurer", + "aurore", + "automne", + "autruche", + "avaler", + "avancer", + "avarice", + "avenir", + "averse", + "aveugle", + "aviateur", + "avide", + "avion", + "aviser", + "avoine", + "avouer", + "avril", + "axial", + "axiome", + "badge", + "bafouer", + "bagage", + "baguette", + "baignade", + "balancer", + "balcon", + "baleine", + "balisage", + "bambin", + "bancaire", + "bandage", + "banlieue", + "bannière", + "banquier", + "barbier", + "baril", + "baron", + "barque", + "barrage", + "bassin", + "bastion", + "bataille", + "bateau", + "batterie", + "baudrier", + "bavarder", + "belette", + "bélier", + "belote", + "bénéfice", + "berceau", + "berger", + "berline", + "bermuda", + "besace", + "besogne", + "bétail", + "beurre", + "biberon", + "bicycle", + "bidule", + "bijou", + "bilan", + "bilingue", + "billard", + "binaire", + "biologie", + "biopsie", + "biotype", + "biscuit", + "bison", + "bistouri", + "bitume", + "bizarre", + "blafard", + "blague", + "blanchir", + "blessant", + "blinder", + "blond", + "bloquer", + "blouson", + "bobard", + "bobine", + "boire", + "boiser", + "bolide", + "bonbon", + "bondir", + "bonheur", + "bonifier", + "bonus", + "bordure", + "borne", + "botte", + "boucle", + "boueux", + "bougie", + "boulon", + "bouquin", + "bourse", + "boussole", + "boutique", + "boxeur", + "branche", + "brasier", + "brave", + "brebis", + "brèche", + "breuvage", + "bricoler", + "brigade", + "brillant", + "brioche", + "brique", + "brochure", + "broder", + "bronzer", + "brousse", + "broyeur", + "brume", + "brusque", + "brutal", + "bruyant", + "buffle", + "buisson", + "bulletin", + "bureau", + "burin", + "bustier", + "butiner", + "butoir", + "buvable", + "buvette", + "cabanon", + "cabine", + "cachette", + "cadeau", + "cadre", + "caféine", + "caillou", + "caisson", + "calculer", + "calepin", + "calibre", + "calmer", + "calomnie", + "calvaire", + "camarade", + "caméra", + "camion", + "campagne", + "canal", + "caneton", + "canon", + "cantine", + "canular", + "capable", + "caporal", + "caprice", + "capsule", + "capter", + "capuche", + "carabine", + "carbone", + "caresser", + "caribou", + "carnage", + "carotte", + "carreau", + "carton", + "cascade", + "casier", + "casque", + "cassure", + "causer", + "caution", + "cavalier", + "caverne", + "caviar", + "cédille", + "ceinture", + "céleste", + "cellule", + "cendrier", + "censurer", + "central", + "cercle", + "cérébral", + "cerise", + "cerner", + "cerveau", + "cesser", + "chagrin", + "chaise", + "chaleur", + "chambre", + "chance", + "chapitre", + "charbon", + "chasseur", + "chaton", + "chausson", + "chavirer", + "chemise", + "chenille", + "chéquier", + "chercher", + "cheval", + "chien", + "chiffre", + "chignon", + "chimère", + "chiot", + "chlorure", + "chocolat", + "choisir", + "chose", + "chouette", + "chrome", + "chute", + "cigare", + "cigogne", + "cimenter", + "cinéma", + "cintrer", + "circuler", + "cirer", + "cirque", + "citerne", + "citoyen", + "citron", + "civil", + "clairon", + "clameur", + "claquer", + "classe", + "clavier", + "client", + "cligner", + "climat", + "clivage", + "cloche", + "clonage", + "cloporte", + "cobalt", + "cobra", + "cocasse", + "cocotier", + "coder", + "codifier", + "coffre", + "cogner", + "cohésion", + "coiffer", + "coincer", + "colère", + "colibri", + "colline", + "colmater", + "colonel", + "combat", + "comédie", + "commande", + "compact", + "concert", + "conduire", + "confier", + "congeler", + "connoter", + "consonne", + "contact", + "convexe", + "copain", + "copie", + "corail", + "corbeau", + "cordage", + "corniche", + "corpus", + "correct", + "cortège", + "cosmique", + "costume", + "coton", + "coude", + "coupure", + "courage", + "couteau", + "couvrir", + "coyote", + "crabe", + "crainte", + "cravate", + "crayon", + "créature", + "créditer", + "crémeux", + "creuser", + "crevette", + "cribler", + "crier", + "cristal", + "critère", + "croire", + "croquer", + "crotale", + "crucial", + "cruel", + "crypter", + "cubique", + "cueillir", + "cuillère", + "cuisine", + "cuivre", + "culminer", + "cultiver", + "cumuler", + "cupide", + "curatif", + "curseur", + "cyanure", + "cycle", + "cylindre", + "cynique", + "daigner", + "damier", + "danger", + "danseur", + "dauphin", + "débattre", + "débiter", + "déborder", + "débrider", + "débutant", + "décaler", + "décembre", + "déchirer", + "décider", + "déclarer", + "décorer", + "décrire", + "décupler", + "dédale", + "déductif", + "déesse", + "défensif", + "défiler", + "défrayer", + "dégager", + "dégivrer", + "déglutir", + "dégrafer", + "déjeuner", + "délice", + "déloger", + "demander", + "demeurer", + "démolir", + "dénicher", + "dénouer", + "dentelle", + "dénuder", + "départ", + "dépenser", + "déphaser", + "déplacer", + "déposer", + "déranger", + "dérober", + "désastre", + "descente", + "désert", + "désigner", + "désobéir", + "dessiner", + "destrier", + "détacher", + "détester", + "détourer", + "détresse", + "devancer", + "devenir", + "deviner", + "devoir", + "diable", + "dialogue", + "diamant", + "dicter", + "différer", + "digérer", + "digital", + "digne", + "diluer", + "dimanche", + "diminuer", + "dioxyde", + "directif", + "diriger", + "discuter", + "disposer", + "dissiper", + "distance", + "divertir", + "diviser", + "docile", + "docteur", + "dogme", + "doigt", + "domaine", + "domicile", + "dompter", + "donateur", + "donjon", + "donner", + "dopamine", + "dortoir", + "dorure", + "dosage", + "doseur", + "dossier", + "dotation", + "douanier", + "double", + "douceur", + "douter", + "doyen", + "dragon", + "draper", + "dresser", + "dribbler", + "droiture", + "duperie", + "duplexe", + "durable", + "durcir", + "dynastie", + "éblouir", + "écarter", + "écharpe", + "échelle", + "éclairer", + "éclipse", + "éclore", + "écluse", + "école", + "économie", + "écorce", + "écouter", + "écraser", + "écrémer", + "écrivain", + "écrou", + "écume", + "écureuil", + "édifier", + "éduquer", + "effacer", + "effectif", + "effigie", + "effort", + "effrayer", + "effusion", + "égaliser", + "égarer", + "éjecter", + "élaborer", + "élargir", + "électron", + "élégant", + "éléphant", + "élève", + "éligible", + "élitisme", + "éloge", + "élucider", + "éluder", + "emballer", + "embellir", + "embryon", + "émeraude", + "émission", + "emmener", + "émotion", + "émouvoir", + "empereur", + "employer", + "emporter", + "emprise", + "émulsion", + "encadrer", + "enchère", + "enclave", + "encoche", + "endiguer", + "endosser", + "endroit", + "enduire", + "énergie", + "enfance", + "enfermer", + "enfouir", + "engager", + "engin", + "englober", + "énigme", + "enjamber", + "enjeu", + "enlever", + "ennemi", + "ennuyeux", + "enrichir", + "enrobage", + "enseigne", + "entasser", + "entendre", + "entier", + "entourer", + "entraver", + "énumérer", + "envahir", + "enviable", + "envoyer", + "enzyme", + "éolien", + "épaissir", + "épargne", + "épatant", + "épaule", + "épicerie", + "épidémie", + "épier", + "épilogue", + "épine", + "épisode", + "épitaphe", + "époque", + "épreuve", + "éprouver", + "épuisant", + "équerre", + "équipe", + "ériger", + "érosion", + "erreur", + "éruption", + "escalier", + "espadon", + "espèce", + "espiègle", + "espoir", + "esprit", + "esquiver", + "essayer", + "essence", + "essieu", + "essorer", + "estime", + "estomac", + "estrade", + "étagère", + "étaler", + "étanche", + "étatique", + "éteindre", + "étendoir", + "éternel", + "éthanol", + "éthique", + "ethnie", + "étirer", + "étoffer", + "étoile", + "étonnant", + "étourdir", + "étrange", + "étroit", + "étude", + "euphorie", + "évaluer", + "évasion", + "éventail", + "évidence", + "éviter", + "évolutif", + "évoquer", + "exact", + "exagérer", + "exaucer", + "exceller", + "excitant", + "exclusif", + "excuse", + "exécuter", + "exemple", + "exercer", + "exhaler", + "exhorter", + "exigence", + "exiler", + "exister", + "exotique", + "expédier", + "explorer", + "exposer", + "exprimer", + "exquis", + "extensif", + "extraire", + "exulter", + "fable", + "fabuleux", + "facette", + "facile", + "facture", + "faiblir", + "falaise", + "fameux", + "famille", + "farceur", + "farfelu", + "farine", + "farouche", + "fasciner", + "fatal", + "fatigue", + "faucon", + "fautif", + "faveur", + "favori", + "fébrile", + "féconder", + "fédérer", + "félin", + "femme", + "fémur", + "fendoir", + "féodal", + "fermer", + "féroce", + "ferveur", + "festival", + "feuille", + "feutre", + "février", + "fiasco", + "ficeler", + "fictif", + "fidèle", + "figure", + "filature", + "filetage", + "filière", + "filleul", + "filmer", + "filou", + "filtrer", + "financer", + "finir", + "fiole", + "firme", + "fissure", + "fixer", + "flairer", + "flamme", + "flasque", + "flatteur", + "fléau", + "flèche", + "fleur", + "flexion", + "flocon", + "flore", + "fluctuer", + "fluide", + "fluvial", + "folie", + "fonderie", + "fongible", + "fontaine", + "forcer", + "forgeron", + "formuler", + "fortune", + "fossile", + "foudre", + "fougère", + "fouiller", + "foulure", + "fourmi", + "fragile", + "fraise", + "franchir", + "frapper", + "frayeur", + "frégate", + "freiner", + "frelon", + "frémir", + "frénésie", + "frère", + "friable", + "friction", + "frisson", + "frivole", + "froid", + "fromage", + "frontal", + "frotter", + "fruit", + "fugitif", + "fuite", + "fureur", + "furieux", + "furtif", + "fusion", + "futur", + "gagner", + "galaxie", + "galerie", + "gambader", + "garantir", + "gardien", + "garnir", + "garrigue", + "gazelle", + "gazon", + "géant", + "gélatine", + "gélule", + "gendarme", + "général", + "génie", + "genou", + "gentil", + "géologie", + "géomètre", + "géranium", + "germe", + "gestuel", + "geyser", + "gibier", + "gicler", + "girafe", + "givre", + "glace", + "glaive", + "glisser", + "globe", + "gloire", + "glorieux", + "golfeur", + "gomme", + "gonfler", + "gorge", + "gorille", + "goudron", + "gouffre", + "goulot", + "goupille", + "gourmand", + "goutte", + "graduel", + "graffiti", + "graine", + "grand", + "grappin", + "gratuit", + "gravir", + "grenat", + "griffure", + "griller", + "grimper", + "grogner", + "gronder", + "grotte", + "groupe", + "gruger", + "grutier", + "gruyère", + "guépard", + "guerrier", + "guide", + "guimauve", + "guitare", + "gustatif", + "gymnaste", + "gyrostat", + "habitude", + "hachoir", + "halte", + "hameau", + "hangar", + "hanneton", + "haricot", + "harmonie", + "harpon", + "hasard", + "hélium", + "hématome", + "herbe", + "hérisson", + "hermine", + "héron", + "hésiter", + "heureux", + "hiberner", + "hibou", + "hilarant", + "histoire", + "hiver", + "homard", + "hommage", + "homogène", + "honneur", + "honorer", + "honteux", + "horde", + "horizon", + "horloge", + "hormone", + "horrible", + "houleux", + "housse", + "hublot", + "huileux", + "humain", + "humble", + "humide", + "humour", + "hurler", + "hydromel", + "hygiène", + "hymne", + "hypnose", + "idylle", + "ignorer", + "iguane", + "illicite", + "illusion", + "image", + "imbiber", + "imiter", + "immense", + "immobile", + "immuable", + "impact", + "impérial", + "implorer", + "imposer", + "imprimer", + "imputer", + "incarner", + "incendie", + "incident", + "incliner", + "incolore", + "indexer", + "indice", + "inductif", + "inédit", + "ineptie", + "inexact", + "infini", + "infliger", + "informer", + "infusion", + "ingérer", + "inhaler", + "inhiber", + "injecter", + "injure", + "innocent", + "inoculer", + "inonder", + "inscrire", + "insecte", + "insigne", + "insolite", + "inspirer", + "instinct", + "insulter", + "intact", + "intense", + "intime", + "intrigue", + "intuitif", + "inutile", + "invasion", + "inventer", + "inviter", + "invoquer", + "ironique", + "irradier", + "irréel", + "irriter", + "isoler", + "ivoire", + "ivresse", + "jaguar", + "jaillir", + "jambe", + "janvier", + "jardin", + "jauger", + "jaune", + "javelot", + "jetable", + "jeton", + "jeudi", + "jeunesse", + "joindre", + "joncher", + "jongler", + "joueur", + "jouissif", + "journal", + "jovial", + "joyau", + "joyeux", + "jubiler", + "jugement", + "junior", + "jupon", + "juriste", + "justice", + "juteux", + "juvénile", + "kayak", + "kimono", + "kiosque", + "label", + "labial", + "labourer", + "lacérer", + "lactose", + "lagune", + "laine", + "laisser", + "laitier", + "lambeau", + "lamelle", + "lampe", + "lanceur", + "langage", + "lanterne", + "lapin", + "largeur", + "larme", + "laurier", + "lavabo", + "lavoir", + "lecture", + "légal", + "léger", + "légume", + "lessive", + "lettre", + "levier", + "lexique", + "lézard", + "liasse", + "libérer", + "libre", + "licence", + "licorne", + "liège", + "lièvre", + "ligature", + "ligoter", + "ligue", + "limer", + "limite", + "limonade", + "limpide", + "linéaire", + "lingot", + "lionceau", + "liquide", + "lisière", + "lister", + "lithium", + "litige", + "littoral", + "livreur", + "logique", + "lointain", + "loisir", + "lombric", + "loterie", + "louer", + "lourd", + "loutre", + "louve", + "loyal", + "lubie", + "lucide", + "lucratif", + "lueur", + "lugubre", + "luisant", + "lumière", + "lunaire", + "lundi", + "luron", + "lutter", + "luxueux", + "machine", + "magasin", + "magenta", + "magique", + "maigre", + "maillon", + "maintien", + "mairie", + "maison", + "majorer", + "malaxer", + "maléfice", + "malheur", + "malice", + "mallette", + "mammouth", + "mandater", + "maniable", + "manquant", + "manteau", + "manuel", + "marathon", + "marbre", + "marchand", + "mardi", + "maritime", + "marqueur", + "marron", + "marteler", + "mascotte", + "massif", + "matériel", + "matière", + "matraque", + "maudire", + "maussade", + "mauve", + "maximal", + "méchant", + "méconnu", + "médaille", + "médecin", + "méditer", + "méduse", + "meilleur", + "mélange", + "mélodie", + "membre", + "mémoire", + "menacer", + "mener", + "menhir", + "mensonge", + "mentor", + "mercredi", + "mérite", + "merle", + "messager", + "mesure", + "métal", + "météore", + "méthode", + "métier", + "meuble", + "miauler", + "microbe", + "miette", + "mignon", + "migrer", + "milieu", + "million", + "mimique", + "mince", + "minéral", + "minimal", + "minorer", + "minute", + "miracle", + "miroiter", + "missile", + "mixte", + "mobile", + "moderne", + "moelleux", + "mondial", + "moniteur", + "monnaie", + "monotone", + "monstre", + "montagne", + "monument", + "moqueur", + "morceau", + "morsure", + "mortier", + "moteur", + "motif", + "mouche", + "moufle", + "moulin", + "mousson", + "mouton", + "mouvant", + "multiple", + "munition", + "muraille", + "murène", + "murmure", + "muscle", + "muséum", + "musicien", + "mutation", + "muter", + "mutuel", + "myriade", + "myrtille", + "mystère", + "mythique", + "nageur", + "nappe", + "narquois", + "narrer", + "natation", + "nation", + "nature", + "naufrage", + "nautique", + "navire", + "nébuleux", + "nectar", + "néfaste", + "négation", + "négliger", + "négocier", + "neige", + "nerveux", + "nettoyer", + "neurone", + "neutron", + "neveu", + "niche", + "nickel", + "nitrate", + "niveau", + "noble", + "nocif", + "nocturne", + "noirceur", + "noisette", + "nomade", + "nombreux", + "nommer", + "normatif", + "notable", + "notifier", + "notoire", + "nourrir", + "nouveau", + "novateur", + "novembre", + "novice", + "nuage", + "nuancer", + "nuire", + "nuisible", + "numéro", + "nuptial", + "nuque", + "nutritif", + "obéir", + "objectif", + "obliger", + "obscur", + "observer", + "obstacle", + "obtenir", + "obturer", + "occasion", + "occuper", + "océan", + "octobre", + "octroyer", + "octupler", + "oculaire", + "odeur", + "odorant", + "offenser", + "officier", + "offrir", + "ogive", + "oiseau", + "oisillon", + "olfactif", + "olivier", + "ombrage", + "omettre", + "onctueux", + "onduler", + "onéreux", + "onirique", + "opale", + "opaque", + "opérer", + "opinion", + "opportun", + "opprimer", + "opter", + "optique", + "orageux", + "orange", + "orbite", + "ordonner", + "oreille", + "organe", + "orgueil", + "orifice", + "ornement", + "orque", + "ortie", + "osciller", + "osmose", + "ossature", + "otarie", + "ouragan", + "ourson", + "outil", + "outrager", + "ouvrage", + "ovation", + "oxyde", + "oxygène", + "ozone", + "paisible", + "palace", + "palmarès", + "palourde", + "palper", + "panache", + "panda", + "pangolin", + "paniquer", + "panneau", + "panorama", + "pantalon", + "papaye", + "papier", + "papoter", + "papyrus", + "paradoxe", + "parcelle", + "paresse", + "parfumer", + "parler", + "parole", + "parrain", + "parsemer", + "partager", + "parure", + "parvenir", + "passion", + "pastèque", + "paternel", + "patience", + "patron", + "pavillon", + "pavoiser", + "payer", + "paysage", + "peigne", + "peintre", + "pelage", + "pélican", + "pelle", + "pelouse", + "peluche", + "pendule", + "pénétrer", + "pénible", + "pensif", + "pénurie", + "pépite", + "péplum", + "perdrix", + "perforer", + "période", + "permuter", + "perplexe", + "persil", + "perte", + "peser", + "pétale", + "petit", + "pétrir", + "peuple", + "pharaon", + "phobie", + "phoque", + "photon", + "phrase", + "physique", + "piano", + "pictural", + "pièce", + "pierre", + "pieuvre", + "pilote", + "pinceau", + "pipette", + "piquer", + "pirogue", + "piscine", + "piston", + "pivoter", + "pixel", + "pizza", + "placard", + "plafond", + "plaisir", + "planer", + "plaque", + "plastron", + "plateau", + "pleurer", + "plexus", + "pliage", + "plomb", + "plonger", + "pluie", + "plumage", + "pochette", + "poésie", + "poète", + "pointe", + "poirier", + "poisson", + "poivre", + "polaire", + "policier", + "pollen", + "polygone", + "pommade", + "pompier", + "ponctuel", + "pondérer", + "poney", + "portique", + "position", + "posséder", + "posture", + "potager", + "poteau", + "potion", + "pouce", + "poulain", + "poumon", + "pourpre", + "poussin", + "pouvoir", + "prairie", + "pratique", + "précieux", + "prédire", + "préfixe", + "prélude", + "prénom", + "présence", + "prétexte", + "prévoir", + "primitif", + "prince", + "prison", + "priver", + "problème", + "procéder", + "prodige", + "profond", + "progrès", + "proie", + "projeter", + "prologue", + "promener", + "propre", + "prospère", + "protéger", + "prouesse", + "proverbe", + "prudence", + "pruneau", + "psychose", + "public", + "puceron", + "puiser", + "pulpe", + "pulsar", + "punaise", + "punitif", + "pupitre", + "purifier", + "puzzle", + "pyramide", + "quasar", + "querelle", + "question", + "quiétude", + "quitter", + "quotient", + "racine", + "raconter", + "radieux", + "ragondin", + "raideur", + "raisin", + "ralentir", + "rallonge", + "ramasser", + "rapide", + "rasage", + "ratisser", + "ravager", + "ravin", + "rayonner", + "réactif", + "réagir", + "réaliser", + "réanimer", + "recevoir", + "réciter", + "réclamer", + "récolter", + "recruter", + "reculer", + "recycler", + "rédiger", + "redouter", + "refaire", + "réflexe", + "réformer", + "refrain", + "refuge", + "régalien", + "région", + "réglage", + "régulier", + "réitérer", + "rejeter", + "rejouer", + "relatif", + "relever", + "relief", + "remarque", + "remède", + "remise", + "remonter", + "remplir", + "remuer", + "renard", + "renfort", + "renifler", + "renoncer", + "rentrer", + "renvoi", + "replier", + "reporter", + "reprise", + "reptile", + "requin", + "réserve", + "résineux", + "résoudre", + "respect", + "rester", + "résultat", + "rétablir", + "retenir", + "réticule", + "retomber", + "retracer", + "réunion", + "réussir", + "revanche", + "revivre", + "révolte", + "révulsif", + "richesse", + "rideau", + "rieur", + "rigide", + "rigoler", + "rincer", + "riposter", + "risible", + "risque", + "rituel", + "rival", + "rivière", + "rocheux", + "romance", + "rompre", + "ronce", + "rondin", + "roseau", + "rosier", + "rotatif", + "rotor", + "rotule", + "rouge", + "rouille", + "rouleau", + "routine", + "royaume", + "ruban", + "rubis", + "ruche", + "ruelle", + "rugueux", + "ruiner", + "ruisseau", + "ruser", + "rustique", + "rythme", + "sabler", + "saboter", + "sabre", + "sacoche", + "safari", + "sagesse", + "saisir", + "salade", + "salive", + "salon", + "saluer", + "samedi", + "sanction", + "sanglier", + "sarcasme", + "sardine", + "saturer", + "saugrenu", + "saumon", + "sauter", + "sauvage", + "savant", + "savonner", + "scalpel", + "scandale", + "scélérat", + "scénario", + "sceptre", + "schéma", + "science", + "scinder", + "score", + "scrutin", + "sculpter", + "séance", + "sécable", + "sécher", + "secouer", + "sécréter", + "sédatif", + "séduire", + "seigneur", + "séjour", + "sélectif", + "semaine", + "sembler", + "semence", + "séminal", + "sénateur", + "sensible", + "sentence", + "séparer", + "séquence", + "serein", + "sergent", + "sérieux", + "serrure", + "sérum", + "service", + "sésame", + "sévir", + "sevrage", + "sextuple", + "sidéral", + "siècle", + "siéger", + "siffler", + "sigle", + "signal", + "silence", + "silicium", + "simple", + "sincère", + "sinistre", + "siphon", + "sirop", + "sismique", + "situer", + "skier", + "social", + "socle", + "sodium", + "soigneux", + "soldat", + "soleil", + "solitude", + "soluble", + "sombre", + "sommeil", + "somnoler", + "sonde", + "songeur", + "sonnette", + "sonore", + "sorcier", + "sortir", + "sosie", + "sottise", + "soucieux", + "soudure", + "souffle", + "soulever", + "soupape", + "source", + "soutirer", + "souvenir", + "spacieux", + "spatial", + "spécial", + "sphère", + "spiral", + "stable", + "station", + "sternum", + "stimulus", + "stipuler", + "strict", + "studieux", + "stupeur", + "styliste", + "sublime", + "substrat", + "subtil", + "subvenir", + "succès", + "sucre", + "suffixe", + "suggérer", + "suiveur", + "sulfate", + "superbe", + "supplier", + "surface", + "suricate", + "surmener", + "surprise", + "sursaut", + "survie", + "suspect", + "syllabe", + "symbole", + "symétrie", + "synapse", + "syntaxe", + "système", + "tabac", + "tablier", + "tactile", + "tailler", + "talent", + "talisman", + "talonner", + "tambour", + "tamiser", + "tangible", + "tapis", + "taquiner", + "tarder", + "tarif", + "tartine", + "tasse", + "tatami", + "tatouage", + "taupe", + "taureau", + "taxer", + "témoin", + "temporel", + "tenaille", + "tendre", + "teneur", + "tenir", + "tension", + "terminer", + "terne", + "terrible", + "tétine", + "texte", + "thème", + "théorie", + "thérapie", + "thorax", + "tibia", + "tiède", + "timide", + "tirelire", + "tiroir", + "tissu", + "titane", + "titre", + "tituber", + "toboggan", + "tolérant", + "tomate", + "tonique", + "tonneau", + "toponyme", + "torche", + "tordre", + "tornade", + "torpille", + "torrent", + "torse", + "tortue", + "totem", + "toucher", + "tournage", + "tousser", + "toxine", + "traction", + "trafic", + "tragique", + "trahir", + "train", + "trancher", + "travail", + "trèfle", + "tremper", + "trésor", + "treuil", + "triage", + "tribunal", + "tricoter", + "trilogie", + "triomphe", + "tripler", + "triturer", + "trivial", + "trombone", + "tronc", + "tropical", + "troupeau", + "tuile", + "tulipe", + "tumulte", + "tunnel", + "turbine", + "tuteur", + "tutoyer", + "tuyau", + "tympan", + "typhon", + "typique", + "tyran", + "ubuesque", + "ultime", + "ultrason", + "unanime", + "unifier", + "union", + "unique", + "unitaire", + "univers", + "uranium", + "urbain", + "urticant", + "usage", + "usine", + "usuel", + "usure", + "utile", + "utopie", + "vacarme", + "vaccin", + "vagabond", + "vague", + "vaillant", + "vaincre", + "vaisseau", + "valable", + "valise", + "vallon", + "valve", + "vampire", + "vanille", + "vapeur", + "varier", + "vaseux", + "vassal", + "vaste", + "vecteur", + "vedette", + "végétal", + "véhicule", + "veinard", + "véloce", + "vendredi", + "vénérer", + "venger", + "venimeux", + "ventouse", + "verdure", + "vérin", + "vernir", + "verrou", + "verser", + "vertu", + "veston", + "vétéran", + "vétuste", + "vexant", + "vexer", + "viaduc", + "viande", + "victoire", + "vidange", + "vidéo", + "vignette", + "vigueur", + "vilain", + "village", + "vinaigre", + "violon", + "vipère", + "virement", + "virtuose", + "virus", + "visage", + "viseur", + "vision", + "visqueux", + "visuel", + "vital", + "vitesse", + "viticole", + "vitrine", + "vivace", + "vivipare", + "vocation", + "voguer", + "voile", + "voisin", + "voiture", + "volaille", + "volcan", + "voltiger", + "volume", + "vorace", + "vortex", + "voter", + "vouloir", + "voyage", + "voyelle", + "wagon", + "xénon", + "yacht", + "zèbre", + "zénith", + "zeste", + "zoologie" + }; +} \ No newline at end of file diff --git a/src/test/java/io/github/novacrypto/bip39/MnemonicGenerationTests.java b/src/test/java/io/github/novacrypto/bip39/MnemonicGenerationTests.java index e89a0bc..fd6faaf 100644 --- a/src/test/java/io/github/novacrypto/bip39/MnemonicGenerationTests.java +++ b/src/test/java/io/github/novacrypto/bip39/MnemonicGenerationTests.java @@ -22,9 +22,10 @@ package io.github.novacrypto.bip39; import io.github.novacrypto.bip39.testjson.EnglishJson; -import io.github.novacrypto.bip39.testjson.JapaneseJson; -import io.github.novacrypto.bip39.testjson.JapaneseJsonTestCase; +import io.github.novacrypto.bip39.testjson.TestVector; +import io.github.novacrypto.bip39.testjson.TestVectorJson; import io.github.novacrypto.bip39.wordlists.English; +import io.github.novacrypto.bip39.wordlists.French; import io.github.novacrypto.bip39.wordlists.Japanese; import org.junit.Test; @@ -100,9 +101,17 @@ public void all_english_test_vectors() throws Exception { @Test public void all_japanese_test_vectors() throws Exception { - final JapaneseJson data = JapaneseJson.load(); - for (final JapaneseJsonTestCase testCase : data.data) { - assertEquals(testCase.mnemonic, createMnemonic(testCase.entropy, Japanese.INSTANCE)); + final TestVectorJson data = TestVectorJson.loadJapanese(); + for (final TestVector testVector : data.vectors) { + assertEquals(testVector.mnemonic, createMnemonic(testVector.entropy, Japanese.INSTANCE)); + } + } + + @Test + public void all_french_test_vectors() throws Exception { + final TestVectorJson data = TestVectorJson.loadFrench(); + for (final TestVector testVector : data.vectors) { + assertEquals(testVector.mnemonic, createMnemonic(testVector.entropy, French.INSTANCE)); } } diff --git a/src/test/java/io/github/novacrypto/bip39/MnemonicValidationTests.java b/src/test/java/io/github/novacrypto/bip39/MnemonicValidationTests.java index 4a69754..26c35eb 100644 --- a/src/test/java/io/github/novacrypto/bip39/MnemonicValidationTests.java +++ b/src/test/java/io/github/novacrypto/bip39/MnemonicValidationTests.java @@ -25,9 +25,10 @@ import io.github.novacrypto.bip39.Validation.InvalidWordCountException; import io.github.novacrypto.bip39.Validation.WordNotFoundException; import io.github.novacrypto.bip39.testjson.EnglishJson; -import io.github.novacrypto.bip39.testjson.JapaneseJson; -import io.github.novacrypto.bip39.testjson.JapaneseJsonTestCase; +import io.github.novacrypto.bip39.testjson.TestVector; +import io.github.novacrypto.bip39.testjson.TestVectorJson; import io.github.novacrypto.bip39.wordlists.English; +import io.github.novacrypto.bip39.wordlists.French; import io.github.novacrypto.bip39.wordlists.Japanese; import org.junit.Test; @@ -158,19 +159,27 @@ private static String swapWords(String mnemonic, int index1, int index2, WordLis @Test public void all_japanese_test_vectors() throws Exception { - final JapaneseJson data = JapaneseJson.load(); - for (final JapaneseJsonTestCase testCase : data.data) { - assertTrue(validate(testCase.mnemonic, Japanese.INSTANCE)); + final TestVectorJson data = TestVectorJson.loadJapanese(); + for (final TestVector testVector : data.vectors) { + assertTrue(validate(testVector.mnemonic, Japanese.INSTANCE)); + } + } + + @Test + public void all_french_test_vectors() throws Exception { + final TestVectorJson data = TestVectorJson.loadFrench(); + for (final TestVector testVector : data.vectors) { + assertTrue(validate(testVector.mnemonic, French.INSTANCE)); } } @Test public void all_japanese_test_vectors_words_swapped() throws Exception { int testCaseCount = 0; - final JapaneseJson data = JapaneseJson.load(); - for (final JapaneseJsonTestCase testCase : data.data) { - final String mnemonic = swapWords(testCase.mnemonic, 1, 3, Japanese.INSTANCE); - if (mnemonic.equals(testCase.mnemonic)) continue; //word were same + final TestVectorJson data = TestVectorJson.loadJapanese(); + for (final TestVector testVector : data.vectors) { + final String mnemonic = swapWords(testVector.mnemonic, 1, 3, Japanese.INSTANCE); + if (mnemonic.equals(testVector.mnemonic)) continue; //word were same assertFalse(validate(mnemonic, Japanese.INSTANCE)); testCaseCount++; } diff --git a/src/test/java/io/github/novacrypto/bip39/SeedCalculationTests.java b/src/test/java/io/github/novacrypto/bip39/SeedCalculationTests.java index 75253a8..67c6f30 100644 --- a/src/test/java/io/github/novacrypto/bip39/SeedCalculationTests.java +++ b/src/test/java/io/github/novacrypto/bip39/SeedCalculationTests.java @@ -22,8 +22,8 @@ package io.github.novacrypto.bip39; import io.github.novacrypto.bip39.testjson.EnglishJson; -import io.github.novacrypto.bip39.testjson.JapaneseJson; -import io.github.novacrypto.bip39.testjson.JapaneseJsonTestCase; +import io.github.novacrypto.bip39.testjson.TestVectorJson; +import io.github.novacrypto.bip39.testjson.TestVector; import org.junit.Test; import java.math.BigInteger; @@ -60,9 +60,17 @@ public void passphrase_normalization() throws Exception { @Test public void all_japanese_test_vectors() throws Exception { - final JapaneseJson data = JapaneseJson.load(); - for (final JapaneseJsonTestCase testCase : data.data) { - assertEquals(testCase.seed, calculateSeedHex(testCase.mnemonic, testCase.passphrase)); + final TestVectorJson data = TestVectorJson.loadJapanese(); + for (final TestVector testVector : data.vectors) { + assertEquals(testVector.seed, calculateSeedHex(testVector.mnemonic, testVector.passphrase)); + } + } + + @Test + public void all_french_test_vectors() throws Exception { + final TestVectorJson data = TestVectorJson.loadFrench(); + for (final TestVector testVector : data.vectors) { + assertEquals(testVector.entropy, testVector.seed, calculateSeedHex(testVector.mnemonic, testVector.passphrase)); } } diff --git a/src/test/java/io/github/novacrypto/bip39/testjson/JapaneseJsonTestCase.java b/src/test/java/io/github/novacrypto/bip39/testjson/TestVector.java similarity index 96% rename from src/test/java/io/github/novacrypto/bip39/testjson/JapaneseJsonTestCase.java rename to src/test/java/io/github/novacrypto/bip39/testjson/TestVector.java index e720d65..8183251 100644 --- a/src/test/java/io/github/novacrypto/bip39/testjson/JapaneseJsonTestCase.java +++ b/src/test/java/io/github/novacrypto/bip39/testjson/TestVector.java @@ -21,7 +21,7 @@ package io.github.novacrypto.bip39.testjson; -public final class JapaneseJsonTestCase { +public final class TestVector { public String mnemonic; public String passphrase; public String seed; diff --git a/src/test/java/io/github/novacrypto/bip39/testjson/JapaneseJson.java b/src/test/java/io/github/novacrypto/bip39/testjson/TestVectorJson.java similarity index 63% rename from src/test/java/io/github/novacrypto/bip39/testjson/JapaneseJson.java rename to src/test/java/io/github/novacrypto/bip39/testjson/TestVectorJson.java index 221722f..d28edb3 100644 --- a/src/test/java/io/github/novacrypto/bip39/testjson/JapaneseJson.java +++ b/src/test/java/io/github/novacrypto/bip39/testjson/TestVectorJson.java @@ -21,16 +21,24 @@ package io.github.novacrypto.bip39.testjson; +import com.google.gson.annotations.SerializedName; import io.github.novacrypto.bip39.Resources; import static org.junit.Assert.assertEquals; -public final class JapaneseJson { - public JapaneseJsonTestCase[] data; +public final class TestVectorJson { + @SerializedName("data") + public TestVector[] vectors; - public static JapaneseJson load() { - final JapaneseJson data = Resources.loadJsonResource("bip39_japanese_test_vectors.json", JapaneseJson.class); - assertEquals(24, data.data.length); + public static TestVectorJson loadJapanese() { + final TestVectorJson data = Resources.loadJsonResource("bip39_japanese_test_vectors.json", TestVectorJson.class); + assertEquals(24, data.vectors.length); + return data; + } + + public static TestVectorJson loadFrench() { + final TestVectorJson data = Resources.loadJsonResource("bip39_french_test_vectors.json", TestVectorJson.class); + assertEquals(18, data.vectors.length); return data; } } diff --git a/src/test/resources/bip39_french_test_vectors.json b/src/test/resources/bip39_french_test_vectors.json new file mode 100644 index 0000000..5022110 --- /dev/null +++ b/src/test/resources/bip39_french_test_vectors.json @@ -0,0 +1,131 @@ +{ + "source": "https://iancoleman.github.io/bip39/#french", + "data": [ + { + "entropy": "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", + "mnemonic": "implorer visage sonnette voyage véloce pourpre volaille tribunal implorer visage sonnette voyelle", + "passphrase": "TREZOR", + "seed": "ab9180b7dfdde74e5cf8781e5692e2c0b55afa8bc1987fa8e14e3fb83c88b195c53e9f939f8febc33d2958f5fcd8add57843cb318d8886130ef9c9879c826357", + "bip32_xprv": "xprv9s21ZrQH143K3MCzhsD85FFZ2d8vDN2QdRTN63gbU3qHjZxn7utU1kwYGR5bxQkssS1Tji4Tuw8vpTzDWogXxhbWYDKuZveeRBe5wiNsuFJ" + }, + { + "entropy": "ffffffffffffffffffffffffffffffff", + "mnemonic": "zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie voter", + "passphrase": "TREZOR", + "seed": "7d2f168ce71ba3e40e74baf47a072a94e49973c0dbdb33a62b3a285ab167c704a85d6ce0d15cc6a4dd3bf1311334ee0d290ae7d20115863d5f5633b8dfacf2d4", + "bip32_xprv": "xprv9s21ZrQH143K2AsqW9AAdu5C4zUaV45MgyzBQAYbEKtKusR83UzLwCZdqDwqJ59ebNryoNuVA5pEiY1eBYqr64UGkwZGezwaceCqxPWia7M" + }, + { + "entropy": "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", + "mnemonic": "implorer visage sonnette voyage véloce pourpre volaille tribunal implorer visage sonnette voyage véloce pourpre volaille tribunal implorer vinaigre", + "passphrase": "TREZOR", + "seed": "dcf42783150cdb92672c9ea7d13f145401661f10b89bfb012a803ca7713e97181ee28ac327a982060a7f8aaa6e8c649ca2c5b83c24458393fe41739ced31d987", + "bip32_xprv": "xprv9s21ZrQH143K2Lq1fbvL5nedyALbSBmmm4EbcVduaPFArtunM6azzNy96pcKbLvVBQcFFDa3Agp54eMhCBH5Ehtbxitv525n2SrhYvALPiD" + }, + { + "entropy": "ffffffffffffffffffffffffffffffffffffffffffffffff", + "mnemonic": "zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie viande", + "passphrase": "TREZOR", + "seed": "e12d20a535ef5e9e2f87e05b5261bdb51451e052fe484feb87543f5cb7a8822c4aa0152492be1259fba00a28c1e95518a90f0645bdd0eb822516d37ac881f7e0", + "bip32_xprv": "xprv9s21ZrQH143K2woSZYBmSoRYygWNGUUrkLiy2i4FmReSqyc568kb1siagkBpHFj6MzLbfuh8TaWKDckfnfphrYyKTAG2rk5y4sGv4fjn5gD" + }, + { + "entropy": "7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", + "mnemonic": "implorer visage sonnette voyage véloce pourpre volaille tribunal implorer visage sonnette voyage véloce pourpre volaille tribunal implorer visage sonnette voyage véloce pourpre volaille studieux", + "passphrase": "TREZOR", + "seed": "8f12b35fe92a7586dfbdab9721a91300d0dbe3185d0943021667e62fd5a643e0cf2443e544738c5234009aa50faac0dbb123ac847c31dc25d875c56fe39c6186", + "bip32_xprv": "xprv9s21ZrQH143K43qySSryByKtU1Df5foSz6kDEHUsR524HZJzxnKrrU3wTdeSvHVvpitC8nAb2kdeVWGREu22KaiaMF3YjEZQdb7htpY6CXP" + }, + { + "entropy": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "mnemonic": "zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie zoologie valable", + "passphrase": "TREZOR", + "seed": "b5e96f552ba44ec827c1bc5ef362e8cea68dd6f36f2c8640aeb171cf9b66198fbdf155fdbcf7dc505431068f972a92442f33cda0065afc1e9a7f5f7097ea6c6a", + "bip32_xprv": "xprv9s21ZrQH143K2umcmDhRrUZ8wsZ7ACj6rvFCEuDK1coHWpo1RwYPvy3dpWmvPjstSMm9fm3igm9gjsAesjqAU6Tnejizy919FSmyofhRTyS" + }, + { + "entropy": "77c2b00716cec7213839159e404db50d", + "mnemonic": "gyrostat aurore absolu chagrin tomate logique soulever brave monstre acajou frisson berger", + "passphrase": "TREZOR", + "seed": "f4988154e66df3c9ab667914237e87ef809a90f2006e668e596e578d130b357992d64da7f44dbf07754295c9ec3fcfff0ca23988bfacc5b45a7fe7f8c98e55b1", + "bip32_xprv": "xprv9s21ZrQH143K4Vr7qo2KQ8YsgSZ7CWURK2KRMWHEn3nYdPo12YSbo1dwP99XLhEAJgTyy8U4kHx4gXksSKFTE1uoacrSqSxFnkrYLqThbgm" + }, + { + "entropy": "b63a9c59a6e641f288ebc103017f1da9f8290b3da6bdef7b", + "mnemonic": "pénurie sagesse averse écrivain favori vertu brique halte accolade amorcer ratisser enfermer inoculer ivoire vanille sceptre tremper serrure", + "passphrase": "TREZOR", + "seed": "60355a67adab6b7a275cf123df17d47a884db365373eefff9d62d734048fe86ecec162bffe6e2db0b937788e4fda49144557cb02251c42a13c99628bac068823", + "bip32_xprv": "xprv9s21ZrQH143K3dhNTe5wABNgAUSYZWNoC1gc6e5NxGnZ5KjYZV25Msnd84iUZ6CQWvV1e6M9DkoXq9sanF4oPd5kzynKtsn1of8dDDWRYTT" + }, + { + "entropy": "3e141609b97933b66a060dcddc71fad1d91677db872031e85f4c015c5e7e8982", + "mnemonic": "daigner murmure innocent globe luxueux sérieux nuptial priver résoudre subtil imiter négation loutre cruel fruit suffixe cirque dépenser ruban accabler quotient décaler buvette élégant", + "passphrase": "TREZOR", + "seed": "3237424feb4554afe9edea53de59ccead07feaef29638523b3408bbd33c97e6cf9ce86313d41aebe3c487d6135b4a3161b2d54623839e5321ca3f455828084ab", + "bip32_xprv": "xprv9s21ZrQH143K3LsqcnWZXzeK9mrMRZUyDeQxtnyQAPdXyto68t1fWAHR5UmdYWyZtQgBHwji9vEnuSMAHHFuzxAB139kfq2HnMJbrdvHxAN" + }, + { + "entropy": "0460ef47585604c5660618db2e6a7e7f", + "mnemonic": "acteur agacer roseau palourde exiler famille méchant prospère sérieux golfeur moufle voyelle", + "passphrase": "TREZOR", + "seed": "2a6fce53b3f22341c24136ed86e86810410b3ce2590f021f2a90303ef0680373e8dff00f0ccadd0c8545421e64dc44001b5aa5b50eea0ded9b94b149837b1647", + "bip32_xprv": "xprv9s21ZrQH143K2Qr4ogkmy4m9bRhnCxPiBT2bMKArBjA8fSzyuLhs8phoGnM5rVsi5LJGs7qBmxD65FNFTFtprW7hZA83ZSwVyqTQ9v6gF4D" + }, + { + "entropy": "72f60ebac5dd8add8d2a25a797102c3ce21bc029c200076f", + "mnemonic": "globe palace osciller lapin sécable fusion codifier détester nuancer phrase amateur héron boulon sorcier novateur décrire agacer impact", + "passphrase": "TREZOR", + "seed": "be84f96be871eaa09b5b6d36f94342489e821ceef6d551a4aad4d9357e9c4b96a778d8518fb8c382a8cd7d1cbc43bceba76f5f9a835aa3fc5bea734cfd2de9ab", + "bip32_xprv": "xprv9s21ZrQH143K2jWgzyME2ofnF6PV7Q1P7tFiAGri4MrJB7bdpK236L5fhU4NLxnKoqBJTB9uRuxPggvXJ4gHVfudYku5QzNN44be5uzChKU" + }, + { + "entropy": "2c85efc7f24ee4573d2b81a6ec66cee209b2dcbd09d8eddc51e0215b0b68e416", + "mnemonic": "censurer cheval tuteur superbe toxine cavalier usure gazon nouveau farouche passion puceron meuble fuite urticant crier totem stimulus hachoir dénuder palourde pavoiser littoral social", + "passphrase": "TREZOR", + "seed": "e0686d5de43478652af2ad67d963decd26ef96022cd2088079af4f7adc5dbaf2f8cb992d3c1d0f28f9a883cd5affc558c6d3f2cc879bbf55bf6db4829718d335", + "bip32_xprv": "xprv9s21ZrQH143K33hdXzRWQZyizEaPucvtHa4RJBjh4KUTvGow13mAaYa8zBGYcbZwk4vYLAUwMEHfjmTdCqFcwqmn99sZMmVMWoEwws5m3hz" + }, + { + "entropy": "eaebabb2383351fd31d703840b32e9e2", + "mnemonic": "thorax étrange tonique gélatine cohésion vortex rasage sottise intrigue éruption pixel querelle", + "passphrase": "TREZOR", + "seed": "62f8a4471a712f888dca0b676ed2a7d14e2e9edf490b41d7c9830e18f10359c5c83b656c0b196f992ec695ef51d35782147b5478eec6f525352876f02add2e01", + "bip32_xprv": "xprv9s21ZrQH143K4DsRfkTdxQjJsk9KqZMhs94RthUAJEcAR5B24qMqLjuijdbD4gKB69364hRzqtD548taBzJdB2wSy6LGZzY3gPcaBzKVMe5" + }, + { + "entropy": "7ac45cfe7722ee6c7ba84fbc2d5bd61b45cb2fe5eb65aa78", + "mnemonic": "homard brèche déchirer toxine chemise comédie tragique aliment pluie fortune vaillant concert étirer maximal maussade frémir odorant protéger", + "passphrase": "TREZOR", + "seed": "6511cdc7011b62f0d518d15de676a1c5c1c1d4e08e17209157ff6be6f87cce330addc35b247ca99dbabb68edf7f1c8f8de26aad25c2a1af6be655c639ae5c5d7", + "bip32_xprv": "xprv9s21ZrQH143K4DR3RNnBvhB4vC7tZJzNduNmypMFEyuoxDYjd3MY1VZ63upGeFtZDzwJbqxBxLfoehZbwpA5LSpEx16kAwdsJv8Tjqrj5vE" + }, + { + "entropy": "4fa1a8bc3e6d80ee1316050e862c1812031493212b7ec3f3bb1b08f168cabeef", + "mnemonic": "élaborer anéantir chenille humble scinder guerrier écharpe prélude anonyme cinéma adresse bronzer cimenter dorure inviter garnir public mondial ralentir arriver aveugle féroce virtuose suricate", + "passphrase": "TREZOR", + "seed": "31aab1fcfa23db8976ebe42738b1e3dca2b2f1f75bc7d0fa810e739422c2286935c1037be1172e27682702678ac4e76ca3552c8ce0597a4a00e2f8d3f72a6594", + "bip32_xprv": "xprv9s21ZrQH143K3NWzNDsNxmvcdSKZRcX2asXnkpkGuSzGU6UBtDsw9oJXYXs4rNH9yUo6hBMH6fiDJCGJUP8LJKXcBrX4CoftMitFiBuMX8R" + }, + { + "entropy": "18ab19a9f54a9274f03e5209a2ac8a91", + "mnemonic": "baleine épuisant forcer thème obtenir créditer présence région algue augurer brave brochure", + "passphrase": "TREZOR", + "seed": "f283aad985086927dbdd7e948d29c014dfcc1e4de9cb7f6b140a0d23f24e7386ae978ffe9dcfcfe7215fd9874d89646425fa1765d80edfc3a92cfb96ff504f3b", + "bip32_xprv": "xprv9s21ZrQH143K3tXUyufRCWxJVXfi3UPXxqgGkdMYaH3JocQ1R1uJKwBhzXhqi4SfriQdZES9j6D7D1yRURWuuUnKpFDCdvceNFpQ948iJE2" + }, + { + "entropy": "18a2e1d81b8ecfb2a333adcb0c17a5b9eb76cc5d05db91a4", + "mnemonic": "baleine aviser grogner connoter torche séduire légume griffure relatif expédier tendre gorille peser ficeler gouffre plateau loyal calvaire", + "passphrase": "TREZOR", + "seed": "a5d07758ddd70074dcdc39c6166eea091f7eb10b646708540bdd3cfd617944ddbc4844b8fc2af1e92af3504b0dfe20a92eb68eeef0f4f71cd8e0f793848ba882", + "bip32_xprv": "xprv9s21ZrQH143K4CpMDJk4LwtnvEr6oRsXccYE1MGWymLykwF6fYnZwvHuAbzn5uHVTrhgozCqU7DKY8oHnaY76GqjoQHx9y7TkD9SgmyJPCs" + }, + { + "entropy": "15da872c95a13dd738fbf50e427583ad61f18fd99f628c417a61cf8343c90419", + "mnemonic": "autruche rythme relever causer astuce tiroir sucre imiter anodin astre exposer essieu blessant réactif fidèle tolérant lavoir amiral médecin mortier cobra superbe arbitre cérébral", + "passphrase": "TREZOR", + "seed": "3e9a3b483d0f9773a392318b12140dc84796c5391736f29ddb45b033f2cb4e1ea8b81c7192c4ca49fe7da0e5c39441a33f036f0d233896d76644133ea0068369", + "bip32_xprv": "xprv9s21ZrQH143K2kHYTt8X36uZkDhwKaQeBwuTNvXexvrBV13yFVf9u7d3k31kvCbP2QoDamx3ZDXn6DW1oHUc9BRf7MMjLXz5xgjpvnBew2h" + } + ] +} \ No newline at end of file