Browse Source

Fix seed and update translations

qortal-ui-dev
AlphaX-Projects 1 year ago
parent
commit
8bfc0a850c
  1. 24
      core/language/de.json
  2. 24
      core/language/es.json
  3. 24
      core/language/fr.json
  4. 24
      core/language/hindi.json
  5. 24
      core/language/hr.json
  6. 24
      core/language/hu.json
  7. 24
      core/language/it.json
  8. 24
      core/language/jp.json
  9. 24
      core/language/ko.json
  10. 24
      core/language/no.json
  11. 24
      core/language/pl.json
  12. 24
      core/language/pt.json
  13. 24
      core/language/ro.json
  14. 24
      core/language/rs.json
  15. 24
      core/language/ru.json
  16. 25
      core/language/us.json
  17. 24
      core/language/zhc.json
  18. 24
      core/language/zht.json
  19. 4
      core/src/redux/app/app-reducer.js
  20. 21
      crypto/api/decryptStoredWallet.js
  21. 23
      crypto/api/kdf.js
  22. BIN
      img/qortal-lock.jpg

24
core/language/de.json

@ -117,7 +117,29 @@
"created1": "Ihr Konto ist jetzt erstellt",
"created2": " und wird in diesem Browser gespeichert.",
"downloadbackup": "Laden Sie die Wallet-Sicherungsdatei herunter",
"passwordhint": "Ein Passwort muss mindestens 8 Zeichen lang sein."
"passwordhint": "Ein Passwort muss mindestens 8 Zeichen lang sein.",
"lp1": "Bildschirm sperren",
"lp2": "Es ist kein Passwort für den Sperrbildschirm festgelegt!",
"lp3": "Bitte legen Sie eins fest",
"lp4": "Nein Danke",
"lp5": "Passwort festlegen",
"lp6": "Neues Passwort für die Bildschirmsperre erfolgreich festgelegt!",
"lp7": "UNLOCK",
"lp8": "Fehler: Falsches Passwort",
"lp9": "IST",
"lp10": "GESPERRT",
"lp11": "ENTSPERRT",
"lp12": "Gespeicherte Daten dekodieren",
"lp13": "Entschlüsselungsschlüssel wird generiert",
"lp14": "Schlüssel wird überprüft",
"lp15": "Falsches Passwort",
"lp16": "Entschlüsseln",
"lp17": "Warten, bis die Arbeiter bereit sind",
"lp18": "Schlüsselteile ableiten",
"lp19": "Fehler, falscher Schlüssel. ",
"lp20": "Fehler, falsche Nonce",
"lp21": "Wichtige Teile kombinieren",
"lp22": "Schlüssel ist bereit"
},
"logout": {
"logout": "AUSLOGGEN",

24
core/language/es.json

@ -117,7 +117,29 @@
"created1": "Su cuenta ha sido creada",
"created2": " y será guardada en el navegador.",
"downloadbackup": "Descargar archivo de copia de seguridad del monedero",
"passwordhint": "Una contraseña debe tener al menos 8 caracteres."
"passwordhint": "Una contraseña debe tener al menos 8 caracteres.",
"lp1": "Pantalla de bloqueo",
"lp2": "¡No se estableció una contraseña de pantalla de bloqueo!",
"lp3": "Establece uno",
"lp4": "No, gracias",
"lp5": "Establecer contraseña",
"lp6": "¡Nueva contraseña de bloqueo de pantalla configurada correctamente!",
"lp7": "DESBLOQUEAR",
"lp8": "Error: Contraseña incorrecta",
"lp9": "ES",
"lp10": "BLOQUEADO",
"lp11": "DESBLOQUEADO",
"lp12": "Decodificación de datos guardados",
"lp13": "Generando clave de descifrado",
"lp14": "Comprobando clave",
"lp15": "Contraseña incorrecta",
"lp16": "Descifrando",
"lp17": "Esperando que los trabajadores estén listos",
"lp18": "Derivar partes clave",
"lp19": "Error, clave incorrecta. ",
"lp20": "Error, nonce incorrecto",
"lp21": "Combinando partes clave",
"lp22": "La llave está lista"
},
"logout": {
"logout": "CERRAR SESIÓN",

24
core/language/fr.json

@ -117,7 +117,29 @@
"created1": "Votre compte est maintenant créé",
"created2": " et sera enregistré dans ce navigateur.",
"downloadbackup": "Télécharger le fichier de sauvegarde du portefeuille",
"passwordhint": "Un mot de passe doit comporter au moins 8 caractères."
"passwordhint": "Un mot de passe doit comporter au moins 8 caractères.",
"lp1": "Verrouiller l'écran",
"lp2": "Aucun mot de passe d'écran de verrouillage n'est défini !",
"lp3": "Veuillez en définir un",
"lp4": "Non merci",
"lp5": "Définir le mot de passe",
"lp6": "Le nouveau mot de passe de verrouillage de l'écran a été défini avec succès !",
"lp7": "DÉVERROUILLER",
"lp8": "Erreur : Mot de passe incorrect",
"lp9": "EST",
"lp10": "VERROUILLÉ",
"lp11": "DÉVERROUILLÉ",
"lp12": "Décodage des données enregistrées",
"lp13": "Génération de la clé de déchiffrement",
"lp14": "Clé de vérification",
"lp15": "Mot de passe incorrect",
"lp16": "Décryptage",
"lp17": "En attente que les travailleurs soient prêts",
"lp18": "Dérivation des parties clés",
"lp19": "Erreur, clé incorrecte. ",
"lp20": "Erreur, nonce incorrect",
"lp21": "Combiner des éléments clés",
"lp22": "La clé est prête"
},
"logout": {
"logout": "DECONNEXION",

24
core/language/hindi.json

@ -118,7 +118,29 @@
"created1": "आपक अब निित ह गय",
"created2": " और इस बउजर म सहएग।",
"downloadbackup": "वट बकअप फइल डउनलड कर",
"passwordhint": "पसवरड कम स कम 8 अकषर किए।"
"passwordhint": "पसवरड कम स कम 8 अकषर किए।",
"lp1": "लक सन",
"lp2": "कई लक सन पसवरड सट नह!",
"lp3": "कपय एक सट कर",
"lp4": "नह धनयवद",
"lp5": "पसवरड सट कर",
"lp6": "नयन लक पसवरड सफलतवक सट ह गय!",
"lp7": "अनलक",
"lp8": "ति: गलत पसवरड",
"lp9": "आईएस",
"lp10": "लक",
"lp11": "अनलक",
"lp12": "सह गए डिड करन",
"lp13": "डििशन क उतपनन करन",
"lp14": "कच रह",
"lp15": "गलत पसवरड",
"lp16": "डिििग",
"lp17": "करमचिर हरत रह",
"lp18": "मय भग पत करन",
"lp19": "ति, गलत क।",
"lp20": "ति, गलत एक बर",
"lp21": "मय भजन",
"lp22": "कर ह"
},
"logout": {
"logout": "लग आउट",

24
core/language/hr.json

@ -117,7 +117,29 @@
"created1": "Vaš je račun sada stvoren",
"created2": "i bit će spremljen u ovom pregledniku.",
"downloadbackup": "Preuzmite datoteku sigurnosne kopije novčanika",
"passwordhint": "Lozinka mora imati najmanje 8 znakova."
"passwordhint": "Lozinka mora imati najmanje 8 znakova.",
"lp1": "Zaključani zaslon",
"lp2": "Nije postavljena lozinka za zaključavanje zaslona!",
"lp3": "Molimo postavite jedan",
"lp4": "Ne hvala",
"lp5": "Postavi lozinku",
"lp6": "Nova lozinka za zaključavanje zaslona uspješno postavljena!",
"lp7": "OTKLJUČAJ",
"lp8": "Greška: netočna lozinka",
"lp9": "JE",
"lp10": "ZAKLJUČANO",
"lp11": "OTKLJUČANO",
"lp12": "Dekodiranje spremljenih podataka",
"lp13": "Generiranje ključa za dešifriranje",
"lp14": "Ključ za provjeru",
"lp15": "Netočna lozinka",
"lp16": "Dešifriranje",
"lp17": "Čeka se da radnici budu spremni",
"lp18": "Izvođenje ključnih dijelova",
"lp19": "Greška, netočan ključ. ",
"lp20": "Pogreška, netočno jednokratno",
"lp21": "Kombiniranje ključnih dijelova",
"lp22": "Ključ je spreman"
},
"logout": {
"logout": "ODJAVITE SE",

24
core/language/hu.json

@ -117,7 +117,29 @@
"created1": "A fiók most jön létre",
"created2": " és mentésre kerül ebben a böngészőben.",
"downloadbackup": "Pénztárca biztonsági mentési fájl letöltése",
"passwordhint": "A jelszónak legalább 8 karakterből kell állnia."
"passwordhint": "A jelszónak legalább 8 karakterből kell állnia.",
"lp1": "Képernyőzár",
"lp2": "Nincs beállítva a lezárási képernyő jelszava!",
"lp3": "Kérjük, állítson be egyet",
"lp4": "Nem, köszönöm",
"lp5": "Jelszó beállítása",
"lp6": "Az új képernyőzárolási jelszó sikeresen beállítva!",
"lp7": "UNLOCK",
"lp8": "Hiba: hibás jelszó",
"lp9": "IS",
"lp10": "ZÁROLVA",
"lp11": "FELOLDVA",
"lp12": "Elmentett adatok dekódolása",
"lp13": "Dekódoló kulcs generálása",
"lp14": "Ellenőrző kulcs",
"lp15": "Helytelen jelszó",
"lp16": "Dekódolás",
"lp17": "Várakozás a dolgozókra, hogy készen álljanak",
"lp18": "Kulcsrészek származtatása",
"lp19": "Hiba, hibás kulcs. ",
"lp20": "Hiba, incorrect nonce",
"lp21": "A legfontosabb alkatrészek kombinálása",
"lp22": "A kulcs készen áll"
},
"logout": {
"logout": "KIJELENTKEZIK",

24
core/language/it.json

@ -117,7 +117,29 @@
"created1": "Il tuo account è ora creato",
"created2": " e verrà salvato in questo browser.",
"downloadbackup": "Scarica il file di backup del portafoglio",
"passwordhint": "Una password deve contenere almeno 8 caratteri."
"passwordhint": "Una password deve contenere almeno 8 caratteri.",
"lp1": "Blocca schermo",
"lp2": "Nessuna password per la schermata di blocco impostata!",
"lp3": "Per favore impostane uno",
"lp4": "No, grazie",
"lp5": "Imposta password",
"lp6": "Nuova password di blocco dello schermo impostata con successo!",
"lp7": "SBLOCCA",
"lp8": "Errore: password errata",
"lp9": "È",
"lp10": "BLOCCATO",
"lp11": "SBLOCCATO",
"lp12": "Decodifica dei dati salvati",
"lp13": "Generazione della chiave di decrittazione",
"lp14": "Verifica chiave",
"lp15": "Password errata",
"lp16": "Decifratura",
"lp17": "In attesa che i lavoratori siano pronti",
"lp18": "Deriva parti chiave",
"lp19": "Errore, chiave errata. ",
"lp20": "Errore, nonce errato",
"lp21": "Combinazione di parti chiave",
"lp22": "La chiave è pronta"
},
"logout": {
"logout": "LOGOUT",

24
core/language/jp.json

@ -119,7 +119,29 @@
"created1": "アカウントが作成され...",
"created2": " このブラウザに保存されます。",
"downloadbackup": "ウォレットのバックアップ ファイルをダウンロード",
"passwordhint": "パスワードは 8 文字以上である必要があります。"
"passwordhint": "パスワードは 8 文字以上である必要があります。",
"lp1": "ロック画面",
"lp2": "ロック画面のパスワードが設定されていません!",
"lp3": "1 つ設定してください",
"lp4": "いいえ、ありがとう",
"lp5": "パスワードを設定",
"lp6": "新しい画面ロックのパスワードが正常に設定されました!",
"lp7": "ロック解除",
"lp8": "エラー: パスワードが正しくありません",
"lp9": "IS",
"lp10": "ロックされました",
"lp11": "ロック解除されました",
"lp12": "保存されたデータをデコードする",
"lp13": "復号化キーを生成しています",
"lp14": "キーを確認しています",
"lp15": "パスワードが正しくありません",
"lp16": "復号化中",
"lp17": "ワーカーの準備ができるのを待っています",
"lp18": "キーパーツの導出",
"lp19": "エラー、キーが正しくありません。 ",
"lp20": "エラー、間違ったノンス",
"lp21": "キーパーツを組み合わせる",
"lp22": "キーの準備ができました"
},
"logout": {
"logout": "ログアウト",

24
core/language/ko.json

@ -117,7 +117,29 @@
"created1": "이제 계정이 생성되었습니다.",
"created2": " 이 브라우저에 저장됩니다.",
"downloadbackup": "지갑 백업 파일 다운로드",
"passwordhint": "비밀번호는 8자 이상이어야 합니다."
"passwordhint": "비밀번호는 8자 이상이어야 합니다.",
"lp1": "잠금 화면",
"lp2": "잠금 화면 암호가 설정되지 않았습니다!",
"lp3": "하나를 설정하세요",
"lp4": "아니요",
"lp5": "비밀번호 설정",
"lp6": "새 화면 잠금 암호가 성공적으로 설정되었습니다!",
"lp7": "잠금 해제",
"lp8": "오류: 잘못된 암호",
"lp9": "이다",
"lp10": "잠김",
"lp11": "잠금 해제됨",
"lp12": "저장 데이터 디코딩",
"lp13": "복호화 키 생성 중",
"lp14": "키 확인 중",
"lp15": "잘못된 비밀번호",
"lp16": "암호 해독 중",
"lp17": "작업자가 준비되기를 기다리는 중",
"lp18": "핵심 부품 도출",
"lp19": "오류, 잘못된 키입니다. ",
"lp20": "오류, 잘못된 nonce",
"lp21": "주요 부품 결합",
"lp22": "키가 준비되었습니다"
},
"logout": {
"logout": "로그아웃",

24
core/language/no.json

@ -117,7 +117,29 @@
"created1": "Kontoen din er nå opprettet",
"created2": " og vil bli lagret i denne nettleseren.",
"downloadbackup": "Last ned backup-fil for lommebok",
"passwordhint": "Et passord må være på minst 8 tegn."
"passwordhint": "Et passord må være på minst 8 tegn.",
"lp1": "Lås skjerm",
"lp2": "Ingen passord for låseskjerm er angitt!",
"lp3": "Vennligst sett en",
"lp4": "Nei takk",
"lp5": "Angi passord",
"lp6": "Nytt passord for skjermlås er angitt !",
"lp7": "LÅS OP",
"lp8": "Feil: Feil passord",
"lp9": "IS",
"lp10": "LÅST",
"lp11": "OPPLÅST",
"lp12": "Dekoding av lagrede data",
"lp13": "Genererer dekrypteringsnøkkel",
"lp14": "Sjekker nøkkel",
"lp15": "Feil passord",
"lp16": "Dekrypterer",
"lp17": "Venter på at arbeiderne skal være klare",
"lp18": "Avlede nøkkeldeler",
"lp19": "Feil, feil nøkkel. ",
"lp20": "Feil, feil ikke",
"lp21": "Kombinere nøkkeldeler",
"lp22": "Nøkkelen er klar"
},
"logout": {
"logout": "LOGG AV",

24
core/language/pl.json

@ -117,7 +117,29 @@
"created1": "Twoje konto zostało utworzone",
"created2": " i zostanie zapisane w tej przeglądarce.",
"downloadbackup": "Pobierz plik kopii zapasowej portfela",
"passwordhint": "Hasło musi mieć co najmniej 8 znaków."
"passwordhint": "Hasło musi mieć co najmniej 8 znaków.",
"lp1": "Ekran blokady",
"lp2": "Nie ustawiono hasła blokady ekranu!",
"lp3": "Proszę ustawić jeden",
"lp4": "Nie, dziękuję",
"lp5": "Ustaw hasło",
"lp6": "Nowe hasło blokady ekranu zostało pomyślnie ustawione!",
"lp7": "ODBLOKUJ",
"lp8": "Błąd: Niepoprawne hasło",
"lp9": "IS",
"lp10": "ZABLOKOWANY",
"lp11": "ODBLOKOWANY",
"lp12": "Dekodowanie zapisanych danych",
"lp13": "Generowanie klucza deszyfrującego",
"lp14": "Sprawdzanie klucza",
"lp15": "Nieprawidłowe hasło",
"lp16": "Odszyfrowywanie",
"lp17": "Oczekiwanie na gotowość pracowników",
"lp18": "Wyprowadzanie kluczowych części",
"lp19": "Błąd, nieprawidłowy klucz. ",
"lp20": "Błąd, niepoprawna wartość jednorazowa",
"lp21": "Łączenie kluczowych części",
"lp22": "Klucz jest gotowy"
},
"logout": {
"logout": "WYLOGUJ",

24
core/language/pt.json

@ -117,7 +117,29 @@
"created1": "Sua conta foi Criada",
"created2": "e será salva neste navegador.",
"downloadbackup": "Baixe o Arquivo BackUp da Carteira",
"passwordhint": "Uma senha deve ter pelo menos 8 caracteres."
"passwordhint": "Uma senha deve ter pelo menos 8 caracteres.",
"lp1": "Tela de bloqueio",
"lp2": "Nenhuma senha de tela de bloqueio foi definida!",
"lp3": "Defina um",
"lp4": "Não, obrigado",
"lp5": "Definir senha",
"lp6": "Nova senha de bloqueio de tela definida com sucesso!",
"lp7": "DESBLOQUEAR",
"lp8": "Erro: senha incorreta",
"lp9": "É",
"lp10": "BLOQUEADO",
"lp11": "DESBLOQUEADO",
"lp12": "Decodificando dados salvos",
"lp13": "Gerando chave de descriptografia",
"lp14": "Verificando chave",
"lp15": "Senha incorreta",
"lp16": "Descriptografando",
"lp17": "Esperando que os trabalhadores estejam prontos",
"lp18": "Derivando peças-chave",
"lp19": "Erro, chave incorreta. ",
"lp20": "Erro, nonce incorreto",
"lp21": "Combinando partes principais",
"lp22": "A chave está pronta"
},
"logout": {
"logout": "SAIR",

24
core/language/ro.json

@ -117,7 +117,29 @@
"created1": "Contul tau este acum creat",
"created2": "si va fi salvat in acest browser.",
"downloadbackup": "Descarca copia de siguranta a Portofelului",
"passwordhint": "O parola trebuie sa aiba cel putin 8 caractere."
"passwordhint": "O parola trebuie sa aiba cel putin 8 caractere.",
"lp1": "Ecran de blocare",
"lp2": "Nu este setată nicio parolă pentru ecranul de blocare!",
"lp3": "Vă rugăm să setați unul",
"lp4": "Nu, mulțumesc",
"lp5": "Setați parola",
"lp6": "Noua parolă de blocare a ecranului setată cu succes !",
"lp7": "DEBLOCARE",
"lp8": "Eroare: parolă incorectă",
"lp9": "Este",
"lp10": "BLOCAT",
"lp11": "DEBLOCAT",
"lp12": "Decodificarea datelor salvate",
"lp13": "Se generează cheia de decriptare",
"lp14": "Se verifică cheia",
"lp15": "Parolă incorectă",
"lp16": "Decriptare",
"lp17": "Așteptăm ca lucrătorii să fie pregătiți",
"lp18": "Derivarea părților cheie",
"lp19": "Eroare, cheie incorectă. ",
"lp20": "Eroare, nonce incorect",
"lp21": "Combinarea părților cheie",
"lp22": "Cheia este gata"
},
"logout": {
"logout": "DECONECTARE",

24
core/language/rs.json

@ -117,7 +117,29 @@
"created1": "Vaš nalog je napravljen",
"created2": " i biće sačuvan u ovom pretraživaču.",
"downloadbackup": "Skinite Datoteku Rezervne kopije Novčanika",
"passwordhint": "Lozinka mora imati najmanje 8 znakova."
"passwordhint": "Lozinka mora imati najmanje 8 znakova.",
"lp1": "Zaključani ekran",
"lp2": "Lozinka za zaključavanje ekrana nije postavljena!",
"lp3": "Postavite jedan",
"lp4": "Ne hvala",
"lp5": "Postavi lozinku",
"lp6": "Nova lozinka za zaključavanje ekrana je uspešno postavljena!",
"lp7": "OTKLJUČAJ",
"lp8": "Greška: netačna lozinka",
"lp9": "IS",
"lp10": "ZAKLJUČAN",
"lp11": "OTKLJUČAN",
"lp12": "Dekodiranje sačuvanih podataka",
"lp13": "Generisanje ključa za dešifrovanje",
"lp14": "Provera ključa",
"lp15": "Netačna lozinka",
"lp16": "Dešifrovanje",
"lp17": "Čeka se da radnici budu spremni",
"lp18": "Izvođenje ključnih delova",
"lp19": "Greška, netačan ključ. ",
"lp20": "Greška, netačan nonce",
"lp21": "Kombinovanje ključnih delova",
"lp22": "Ključ je spreman"
},
"logout": {
"logout": "ODJAVA",

24
core/language/ru.json

@ -117,7 +117,29 @@
"created1": "Ваша учетная запись создана",
"created2": "и будет сохранено в этом приложении.",
"downloadbackup": "Скачать файл резервной копии кошелька",
"passwordhint": "Пароль должен быть не менее 8 символов."
"passwordhint": "Пароль должен быть не менее 8 символов.",
"lp1": "Экран блокировки",
"lp2": "Пароль блокировки экрана не установлен!",
"lp3": "Пожалуйста, установите один",
"lp4": "Нет, спасибо",
"lp5": "Установить пароль",
"lp6": "Новый пароль блокировки экрана успешно установлен!",
"lp7": "РАЗБЛОКИРОВАТЬ",
"lp8": "Ошибка: неверный пароль",
"lp9": "ЕСТЬ",
"lp10": "БЛОКИРОВКА",
"lp11": "РАЗБЛОКИРОВАНО",
"lp12": "Декодирование сохраненных данных",
"lp13": "Генерация ключа расшифровки",
"lp14": "Проверка ключа",
"lp15": "Неверный пароль",
"lp16": "Расшифровка",
"lp17": "Ожидание готовности рабочих",
"lp18": "Извлечение ключевых частей",
"lp19": "Ошибка, неверный ключ. ",
"lp20": "Ошибка, неправильный одноразовый номер",
"lp21": "Объединение ключевых частей",
"lp22": "Ключ готов"
},
"logout": {
"logout": "ВЫХОД",

25
core/language/us.json

@ -118,7 +118,30 @@
"created1": "Your account is now created",
"created2": " and will be saved in this browser.",
"downloadbackup": "Download Wallet BackUp File",
"passwordhint": "A password must be at least 8 characters."
"passwordhint": "A password must be at least 8 characters.",
"lp1": "Lock Screen",
"lp2": "No Lock Screen Password Is Set !",
"lp3": "Please Set One",
"lp4": "No Thanks",
"lp5": "Set Password",
"lp6": "New screen lock password set successfully !",
"lp7": "UNLOCK",
"lp8": "Error: Incorrect password",
"lp9": "IS",
"lp10": "LOCKED",
"lp11": "UNLOCKED",
"lp12": "Decoding saved data",
"lp13": "Generating decryption key",
"lp14": "Checking key",
"lp15": "Incorrect password",
"lp16": "Decrypting",
"lp17": "Waiting for workers to be ready",
"lp18": "Deriving key parts",
"lp19": "Error, incorrect key. ",
"lp20": "Error, incorrect nonce",
"lp21": "Combining key parts",
"lp22": "Key is ready"
},
"logout": {
"logout": "LOG OUT",

24
core/language/zhc.json

@ -117,7 +117,29 @@
"created1": "你的账号已创建成功",
"created2": "并会储存在UI上.",
"downloadbackup": "下载钱包备份文件",
"passwordhint": "密码必须至少为8 个字符。"
"passwordhint": "密码必须至少为8 个字符。",
"lp1": "锁定屏幕",
"lp2": "未设置锁屏密码!",
"lp3": "请设置一个",
"lp4": "不用了,谢谢",
"lp5": "设置密码",
"lp6": "新的锁屏密码设置成功!",
"lp7": "解锁",
"lp8": "错误:密码不正确",
"lp9": "是",
"lp10": "锁定",
"lp11": "解锁",
"lp12": "解码保存的数据",
"lp13": "正在生成解密密钥",
"lp14": "正在检查密钥",
"lp15": "密码错误",
"lp16": "正在解密",
"lp17": "等待工人准备好",
"lp18": "导出关键部分",
"lp19": "错误,密钥不正确。",
"lp20": "错误,随机数不正确",
"lp21": "组合关键部分",
"lp22": "钥匙已准备好"
},
"logout": {
"logout": "登出",

24
core/language/zht.json

@ -117,7 +117,29 @@
"created1": "你的賬號已創建成功",
"created2": " 並會儲存在UI上.",
"downloadbackup": "下載錢包備份文件",
"passwordhint": "密碼必須至少為 8 個字符。"
"passwordhint": "密碼必須至少為 8 個字符。",
"lp1": "鎖定屏幕",
"lp2": "未設置鎖屏密碼!",
"lp3": "請設置一個",
"lp4": "不用了,謝謝",
"lp5": "設置密碼",
"lp6": "新的鎖屏密碼設置成功!",
"lp7": "解鎖",
"lp8": "錯誤:密碼不正確",
"lp9": "是",
"lp10": "鎖定",
"lp11": "解鎖",
"lp12": "解碼保存的數據",
"lp13": "正在生成解密密鑰",
"lp14": "正在檢查密鑰",
"lp15": "密碼錯誤",
"lp16": "正在解密",
"lp17": "等待工人準備好",
"lp18": "導出關鍵部分",
"lp19": "錯誤,密鑰不正確。",
"lp20": "錯誤,隨機數不正確",
"lp21": "組合關鍵部分",
"lp22": "鑰匙已準備好"
},
"logout": {
"logout": "登出",

4
core/src/redux/app/app-reducer.js

@ -10,6 +10,7 @@ const chatLastSeen = localForage.createInstance({
});
const INITIAL_STATE = {
loggedIn: false,
drawerOpen: false,
@ -63,7 +64,8 @@ export default (state = INITIAL_STATE, action) => {
pin: '',
loggedIn: false,
loggingIn: false,
wallet: INITIAL_STATE.wallet
wallet: INITIAL_STATE.wallet,
selectedAddress: INITIAL_STATE.selectedAddress
}
case ADD_PLUGIN:
return {

21
crypto/api/decryptStoredWallet.js

@ -1,23 +1,32 @@
import Base58 from './deps/Base58.js'
import { kdf } from './kdf.js'
import { HmacSha512, AES_CBC } from 'asmcrypto.js'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
})
export const decryptStoredWallet = async (password, wallet, statusFn = () => { }) => {
statusFn('Decoding saved data')
const sfn1 = get("login.lp12")
statusFn(sfn1)
const encryptedSeedBytes = Base58.decode(wallet.encryptedSeed)
const iv = Base58.decode(wallet.iv)
const salt = Base58.decode(wallet.salt)
statusFn('Generating decryption key')
const sfn2 = get("login.lp13")
statusFn(sfn2)
const key = await kdf(password, salt, statusFn)
const encryptionKey = key.slice(0, 32)
const macKey = key.slice(32, 63)
statusFn('Checking key')
const sfn3 = get("login.lp14")
statusFn(sfn3)
const mac = new HmacSha512(macKey).process(encryptedSeedBytes).finish().result
const sfn4 = get("login.lp15")
if (Base58.encode(mac) !== wallet.mac) {
throw new Error('Incorrect password')
throw new Error(sfn4)
}
statusFn('Decrypting')
const sfn5 = get("login.lp16")
statusFn(sfn5)
const decryptedBytes = AES_CBC.decrypt(encryptedSeedBytes, encryptionKey, false, iv)
return decryptedBytes
}

23
crypto/api/kdf.js

@ -2,14 +2,21 @@ import { store } from '../api_deps.js'
import { stateAwait } from './utils/stateAwait.js'
import { Sha512 } from 'asmcrypto.js'
import utils from '../api/deps/utils.js'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
})
export const kdf = async (seed, salt, status = () => { }) => {
const state = store.getState()
const config = state.config
const workers = state.app.workers.workers
status('Waiting for workers to be ready')
const kst1 = get("login.lp17")
status(kst1)
await stateAwait(state => state.app.workers.ready)
status('Deriving key parts')
const kst2 = get("login.lp18")
status(kst2)
salt = new Uint8Array(salt)
const seedParts = await Promise.all(workers.map((worker, index) => {
const nonce = index
@ -27,13 +34,17 @@ export const kdf = async (seed, salt, status = () => { }) => {
} catch (e) {
// ...
}
if (seed !== data.key) throw new Error('Error, incorrect key. ' + seed + ' !== ' + data.key)
if (nonce !== data.nonce) throw new Error('Error, incorrect nonce')
const kst3 = get("login.lp19")
if (seed !== data.key) throw new Error(kst3 + seed + ' !== ' + data.key)
const kst4 = get("login.lp20")
if (nonce !== data.nonce) throw new Error(kst4)
return data.result
})
}))
status('Combining key parts')
const kst5 = get("login.lp21")
status(kst5)
const result = new Sha512().process(utils.stringtoUTF8Array(config.crypto.staticSalt + seedParts.reduce((a, c) => a + c))).finish().result
status('Key is ready ')
const kst6 = get("login.lp22")
status(kst6)
return result
}

BIN
img/qortal-lock.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Loading…
Cancel
Save