From 8bfc0a850c904d8b14957bdbcc30a95807361072 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Tue, 27 Jun 2023 16:21:06 +0200 Subject: [PATCH] Fix seed and update translations --- core/language/de.json | 24 +++++++++++++++++++++++- core/language/es.json | 24 +++++++++++++++++++++++- core/language/fr.json | 24 +++++++++++++++++++++++- core/language/hindi.json | 24 +++++++++++++++++++++++- core/language/hr.json | 24 +++++++++++++++++++++++- core/language/hu.json | 24 +++++++++++++++++++++++- core/language/it.json | 24 +++++++++++++++++++++++- core/language/jp.json | 24 +++++++++++++++++++++++- core/language/ko.json | 24 +++++++++++++++++++++++- core/language/no.json | 24 +++++++++++++++++++++++- core/language/pl.json | 24 +++++++++++++++++++++++- core/language/pt.json | 24 +++++++++++++++++++++++- core/language/ro.json | 24 +++++++++++++++++++++++- core/language/rs.json | 24 +++++++++++++++++++++++- core/language/ru.json | 24 +++++++++++++++++++++++- core/language/us.json | 25 ++++++++++++++++++++++++- core/language/zhc.json | 24 +++++++++++++++++++++++- core/language/zht.json | 24 +++++++++++++++++++++++- core/src/redux/app/app-reducer.js | 4 +++- crypto/api/decryptStoredWallet.js | 21 +++++++++++++++------ crypto/api/kdf.js | 23 +++++++++++++++++------ img/qortal-lock.jpg | Bin 0 -> 53900 bytes 22 files changed, 450 insertions(+), 31 deletions(-) create mode 100644 img/qortal-lock.jpg diff --git a/core/language/de.json b/core/language/de.json index 42f2927f..877a783d 100644 --- a/core/language/de.json +++ b/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", diff --git a/core/language/es.json b/core/language/es.json index 3e134273..f6d62eb8 100644 --- a/core/language/es.json +++ b/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", diff --git a/core/language/fr.json b/core/language/fr.json index 9305c484..c0c1a620 100644 --- a/core/language/fr.json +++ b/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", diff --git a/core/language/hindi.json b/core/language/hindi.json index 1b1e1e52..571c2a56 100644 --- a/core/language/hindi.json +++ b/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": "लॉग आउट", diff --git a/core/language/hr.json b/core/language/hr.json index 0baf070a..303c7170 100644 --- a/core/language/hr.json +++ b/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", diff --git a/core/language/hu.json b/core/language/hu.json index ff712be9..0577616e 100644 --- a/core/language/hu.json +++ b/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", diff --git a/core/language/it.json b/core/language/it.json index 8b5dd9c0..f62a806e 100644 --- a/core/language/it.json +++ b/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", diff --git a/core/language/jp.json b/core/language/jp.json index 06b9692d..ef705df3 100644 --- a/core/language/jp.json +++ b/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": "ログアウト", diff --git a/core/language/ko.json b/core/language/ko.json index 1dda116f..184a7305 100644 --- a/core/language/ko.json +++ b/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": "로그아웃", diff --git a/core/language/no.json b/core/language/no.json index 5c4c4f38..7739b678 100644 --- a/core/language/no.json +++ b/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", diff --git a/core/language/pl.json b/core/language/pl.json index 288bb745..b5525dda 100644 --- a/core/language/pl.json +++ b/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", diff --git a/core/language/pt.json b/core/language/pt.json index e803b2d2..7fb86f7f 100644 --- a/core/language/pt.json +++ b/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", diff --git a/core/language/ro.json b/core/language/ro.json index 7633acf2..d11bd68b 100644 --- a/core/language/ro.json +++ b/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", diff --git a/core/language/rs.json b/core/language/rs.json index 2cb237db..2ad35372 100644 --- a/core/language/rs.json +++ b/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", diff --git a/core/language/ru.json b/core/language/ru.json index c205731f..0eb6ee61 100644 --- a/core/language/ru.json +++ b/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": "ВЫХОД", diff --git a/core/language/us.json b/core/language/us.json index 052137b0..bc8c6f93 100644 --- a/core/language/us.json +++ b/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", diff --git a/core/language/zhc.json b/core/language/zhc.json index 23b8f33b..98bcafbe 100644 --- a/core/language/zhc.json +++ b/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": "登出", diff --git a/core/language/zht.json b/core/language/zht.json index a30b08bf..69d57fcc 100644 --- a/core/language/zht.json +++ b/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": "登出", diff --git a/core/src/redux/app/app-reducer.js b/core/src/redux/app/app-reducer.js index 5ba2edbb..0fd3c2cc 100644 --- a/core/src/redux/app/app-reducer.js +++ b/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 { diff --git a/crypto/api/decryptStoredWallet.js b/crypto/api/decryptStoredWallet.js index f98649cd..9a045376 100644 --- a/crypto/api/decryptStoredWallet.js +++ b/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 } diff --git a/crypto/api/kdf.js b/crypto/api/kdf.js index 8c18888a..bf3daec5 100644 --- a/crypto/api/kdf.js +++ b/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 } diff --git a/img/qortal-lock.jpg b/img/qortal-lock.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ccccc5522d720363716398bde94af04844349699 GIT binary patch literal 53900 zcmbTd1yJ0}vnaec0fM`G2<{f#-8I<3eQ^yM+}+(_vEUvOT!Op1EE+uc+vJ?{zxVs< z)~#3XR|PfOGt<-E(>>DD{kr(N1;Cf|w6*{MWM%0Ah=Bk4UQYlR5^kopUH~WnECeh7 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