From 05640ebb63b2d923aca39a6b10e1524b64348bb7 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 2 Jul 2021 16:46:55 -0300 Subject: [PATCH] Replace novacrypt BIP39 library with the zcash one which is MIT licensed instead of GPLv3 Change-Id: I30041de5ab1c1f8c7d5f57d6c60e28300a285259 --- Android.bp | 2 +- app/build.gradle | 2 +- .../ui/recoverycode/RecoveryCodeAdapter.kt | 6 +- .../recoverycode/RecoveryCodeInputFragment.kt | 35 ++-- .../RecoveryCodeOutputFragment.kt | 2 +- .../ui/recoverycode/RecoveryCodeViewModel.kt | 45 ++-- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-es-rUS/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-he/strings.xml | 2 +- app/src/main/res/values-hr/strings.xml | 2 +- app/src/main/res/values-is/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-nb-rNO/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values/strings.xml | 4 +- .../com/stevesoltys/seedvault/TestUtils.kt | 2 +- .../seedvault/crypto/WordListTest.kt | 198 +++++++++++++++--- libs/Android.bp | 5 + libs/kotlin-bip39-1.0.2.jar | Bin 0 -> 40711 bytes libs/novacrypto-bip39/Android.bp | 27 --- libs/novacrypto-bip39/BIP39-2019.01.27.jar | Bin 118985 -> 0 bytes libs/novacrypto-bip39/SHA256-2019.01.27.jar | Bin 2198 -> 0 bytes libs/novacrypto-bip39/ToRuntime-0.9.0.jar | Bin 2387 -> 0 bytes 31 files changed, 231 insertions(+), 129 deletions(-) create mode 100644 libs/Android.bp create mode 100644 libs/kotlin-bip39-1.0.2.jar delete mode 100644 libs/novacrypto-bip39/Android.bp delete mode 100644 libs/novacrypto-bip39/BIP39-2019.01.27.jar delete mode 100644 libs/novacrypto-bip39/SHA256-2019.01.27.jar delete mode 100644 libs/novacrypto-bip39/ToRuntime-0.9.0.jar diff --git a/Android.bp b/Android.bp index a8f4ab85..5664d6d1 100644 --- a/Android.bp +++ b/Android.bp @@ -41,7 +41,7 @@ android_app { "seedvault-lib-koin-android", "seedvault-lib-koin-androidx-viewmodel", // bip39 - "seedvault-lib-novacrypto-bip39", + "seedvault-lib-kotlin-bip39", ], manifest: "app/src/main/AndroidManifest.xml", diff --git a/app/build.gradle b/app/build.gradle index 706a6de2..fe1a84da 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -123,7 +123,7 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: "${rootProject.rootDir}/libs/koin-android") implementation fileTree(include: ['*.aar'], dir: "${rootProject.rootDir}/libs/koin-android") - implementation fileTree(include: ['*.jar'], dir: "${rootProject.rootDir}/libs/novacrypto-bip39") + implementation fileTree(include: ['kotlin-bip39-1.0.2.jar'], dir: "${rootProject.rootDir}/libs") /** * Test Dependencies (do not concern the AOSP build) diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt index 606e024b..1003300e 100644 --- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt +++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeAdapter.kt @@ -8,7 +8,7 @@ import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.Adapter import com.stevesoltys.seedvault.R -class RecoveryCodeAdapter(private val items: List) : +class RecoveryCodeAdapter(private val items: List) : Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecoveryCodeViewHolder { @@ -30,9 +30,9 @@ class RecoveryCodeViewHolder(v: View) : RecyclerView.ViewHolder(v) { private val num = v.findViewById(R.id.num) private val word = v.findViewById(R.id.word) - internal fun bind(number: Int, item: CharSequence) { + internal fun bind(number: Int, item: CharArray) { num.text = number.toString() - word.text = item + word.text = String(item) } } diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt index 4b707b84..fdd8c1e2 100644 --- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt +++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeInputFragment.kt @@ -19,15 +19,16 @@ import androidx.activity.result.contract.ActivityResultContracts.StartActivityFo import androidx.appcompat.app.AlertDialog import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.Fragment +import cash.z.ecc.android.bip39.Mnemonics +import cash.z.ecc.android.bip39.Mnemonics.ChecksumException +import cash.z.ecc.android.bip39.Mnemonics.InvalidWordException import com.google.android.material.snackbar.Snackbar import com.google.android.material.textfield.TextInputLayout import com.stevesoltys.seedvault.R import com.stevesoltys.seedvault.isDebugBuild import com.stevesoltys.seedvault.ui.LiveEventHandler -import io.github.novacrypto.bip39.Validation.InvalidChecksumException -import io.github.novacrypto.bip39.Validation.WordNotFoundException -import io.github.novacrypto.bip39.wordlists.English import org.koin.androidx.viewmodel.ext.android.sharedViewModel +import java.util.Locale internal const val ARG_FOR_NEW_CODE = "forVerifyingNewCode" @@ -101,7 +102,10 @@ class RecoveryCodeInputFragment : Fragment() { backView.setOnClickListener { requireActivity().finishAfterTransition() } } - val adapter = getAdapter() + val adapterLayout = android.R.layout.simple_list_item_1 + val adapter = ArrayAdapter(requireContext(), adapterLayout).apply { + addAll(Mnemonics.getCachedWords(Locale.ENGLISH.language)) + } for (i in 0 until WORD_NUM) { val wordLayout = getWordLayout(i) @@ -122,14 +126,6 @@ class RecoveryCodeInputFragment : Fragment() { if (forVerifyingNewCode && isDebugBuild() && !viewModel.isRestore) debugPreFill() } - private fun getAdapter(): ArrayAdapter { - val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_list_item_1) - for (i in 0 until WORD_LIST_SIZE) { - adapter.add(English.INSTANCE.getWord(i)) - } - return adapter - } - private fun getInput(): List = ArrayList(WORD_NUM).apply { for (i in 0 until WORD_NUM) add(getWordLayout(i).editText!!.text.toString()) } @@ -139,10 +135,10 @@ class RecoveryCodeInputFragment : Fragment() { if (!allFilledOut(input)) return try { viewModel.validateAndContinue(input, forVerifyingNewCode) - } catch (e: InvalidChecksumException) { + } catch (e: ChecksumException) { Toast.makeText(context, R.string.recovery_code_error_checksum_word, LENGTH_LONG).show() - } catch (e: WordNotFoundException) { - showWrongWordError(input, e) + } catch (e: InvalidWordException) { + showWrongWordError(input) } } @@ -155,10 +151,11 @@ class RecoveryCodeInputFragment : Fragment() { return true } - private fun showWrongWordError(input: List, e: WordNotFoundException) { - val i = input.indexOf(e.word) + private fun showWrongWordError(input: List) { + val words = Mnemonics.getCachedWords(Locale.ENGLISH.language) + val i = input.indexOfFirst { it !in words } if (i == -1) throw AssertionError() - val str = getString(R.string.recovery_code_error_invalid_word, e.suggestion1, e.suggestion2) + val str = getString(R.string.recovery_code_error_invalid_word) showError(i, str) } @@ -235,7 +232,7 @@ class RecoveryCodeInputFragment : Fragment() { private fun debugPreFill() { val words = viewModel.wordList for (i in words.indices) { - getWordLayout(i).editText!!.setText(words[i]) + getWordLayout(i).editText!!.setText(String(words[i])) } } diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt index 35f6af76..d8b3a5ef 100644 --- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt +++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeOutputFragment.kt @@ -23,7 +23,7 @@ class RecoveryCodeOutputFragment : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { val v: View = inflater.inflate(R.layout.fragment_recovery_code_output, container, false) wordList = v.findViewById(R.id.wordList) diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt index 3b8c6173..3eb3329e 100644 --- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt +++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt @@ -4,6 +4,11 @@ import android.app.backup.IBackupManager import android.os.UserHandle import android.util.Log import androidx.lifecycle.AndroidViewModel +import cash.z.ecc.android.bip39.Mnemonics +import cash.z.ecc.android.bip39.Mnemonics.ChecksumException +import cash.z.ecc.android.bip39.Mnemonics.InvalidWordException +import cash.z.ecc.android.bip39.Mnemonics.WordCountException +import cash.z.ecc.android.bip39.toSeed import com.stevesoltys.seedvault.App import com.stevesoltys.seedvault.crypto.Crypto import com.stevesoltys.seedvault.crypto.KeyManager @@ -11,26 +16,14 @@ import com.stevesoltys.seedvault.transport.TRANSPORT_ID import com.stevesoltys.seedvault.transport.backup.BackupCoordinator import com.stevesoltys.seedvault.ui.LiveEvent import com.stevesoltys.seedvault.ui.MutableLiveEvent -import io.github.novacrypto.bip39.JavaxPBKDF2WithHmacSHA512 -import io.github.novacrypto.bip39.MnemonicGenerator -import io.github.novacrypto.bip39.MnemonicValidator -import io.github.novacrypto.bip39.SeedCalculator -import io.github.novacrypto.bip39.Validation.InvalidChecksumException -import io.github.novacrypto.bip39.Validation.InvalidWordCountException -import io.github.novacrypto.bip39.Validation.UnexpectedWhiteSpaceException -import io.github.novacrypto.bip39.Validation.WordNotFoundException -import io.github.novacrypto.bip39.Words -import io.github.novacrypto.bip39.wordlists.English import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.calyxos.backup.storage.api.StorageBackup import java.io.IOException import java.security.SecureRandom -import java.util.ArrayList internal const val WORD_NUM = 12 -internal const val WORD_LIST_SIZE = 2048 private val TAG = RecoveryCodeViewModel::class.java.simpleName @@ -43,14 +36,12 @@ internal class RecoveryCodeViewModel( private val storageBackup: StorageBackup ) : AndroidViewModel(app) { - internal val wordList: List by lazy { - val items: ArrayList = ArrayList(WORD_NUM) - val entropy = ByteArray(Words.TWELVE.byteLength()) + internal val wordList: List by lazy { + // we use our own entropy to not having to trust the library to use SecureRandom + val entropy = ByteArray(Mnemonics.WordCount.COUNT_12.bitLength / 8) SecureRandom().nextBytes(entropy) - MnemonicGenerator(English.INSTANCE).createMnemonic(entropy) { - if (it != " ") items.add(it) - } - items + // create the words from the entropy + Mnemonics.MnemonicCode(entropy).words } private val mConfirmButtonClicked = MutableLiveEvent() @@ -65,17 +56,15 @@ internal class RecoveryCodeViewModel( internal var isRestore: Boolean = false - @Throws(WordNotFoundException::class, InvalidChecksumException::class) + @Throws(InvalidWordException::class, ChecksumException::class) fun validateAndContinue(input: List, forVerifyingNewCode: Boolean) { + val code = Mnemonics.MnemonicCode(input.toMnemonicChars()) try { - MnemonicValidator.ofWordList(English.INSTANCE).validate(input) - } catch (e: UnexpectedWhiteSpaceException) { - throw AssertionError(e) - } catch (e: InvalidWordCountException) { + code.validate() + } catch (e: WordCountException) { throw AssertionError(e) } - val mnemonic = input.joinToString(" ") - val seed = SeedCalculator(JavaxPBKDF2WithHmacSHA512.INSTANCE).calculateSeed(mnemonic, "") + val seed = code.toSeed() if (forVerifyingNewCode) { keyManager.storeBackupKey(seed) keyManager.storeMainKey(seed) @@ -118,3 +107,7 @@ internal class RecoveryCodeViewModel( } } + +internal fun List.toMnemonicChars(): CharArray { + return joinToString(" ").toCharArray() +} diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index bd7b8d08..8cbee9f7 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -18,7 +18,7 @@ Sicherung läuft Sicherungsbenachrichtigung Ihr Wiederherstellungsschlüssel ist ungültig. Bitte prüfen Sie alle eingegebenen Wörter und versuchen Sie es erneut! - Falsches Wort. Meinten Sie %1$s oder %2$s\? + Falsches Wort. Sie vergaßen, dieses Wort einzugeben. Wort 12 Wort 11 diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 67988b49..c7924e52 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -80,7 +80,7 @@ Εκτελείται δημιουργία αντιγράφων ασφαλείας Ειδοποίηση δημιουργίας αντιγράφων ασφαλείας Ο κωδικός σας δεν είναι έγκυρος. Ελέγξτε όλες τις λέξεις και δοκιμάστε ξανά! - Λάθος λέξη. Εννοείτε %1$s ή %2$s; + Λάθος λέξη. Ξεχάσατε να εισαγάγετε αυτήν τη λέξη. Λέξη 12 Λέξη 11 diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml index 82a77787..d5735baa 100644 --- a/app/src/main/res/values-es-rUS/strings.xml +++ b/app/src/main/res/values-es-rUS/strings.xml @@ -46,7 +46,7 @@ Respaldo terminó Ejecución de respaldo Tu código no es válido. Por favor revise todas las palabras e intente nuevamente! - Palabra equivocada. ¿Quisiste decir %1$s o %2$s\? + Palabra equivocada. Olvidaste ingresar esta palabra. Palabra 12 Palabra 11 diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d69cef52..a3ec950c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -72,7 +72,7 @@ Copia de seguridad en ejecución Notificación de copia de seguridad Su código es inválido. Por favor, compruebe todas las palabras e inténtelo de nuevo! - Palabra equivocada. ¿Quisiste decir %1$s o %2$s \? + Palabra equivocada. Ingrese su código de recuperación de 12 palabras que anotó al configurar las copias de seguridad. Ingrese su código de recuperación de 12 palabras para asegurarse de que funcionará cuando lo necesite. Confirma código diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 80b59e8c..ee6ad5e2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -16,7 +16,7 @@ Réparer Notification de la sauvegarde Votre code est invalide. Veuillez vérifier tous les mots et réessayer ! - Mot erroné. Vouliez-vous dire %1$s ou %2$s \? + Mot erroné. Vous avez oublié d’entrer ce mot. Mot 12 Mot 11 diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index a1efca53..29b4a1ce 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -6,7 +6,7 @@ הגיבוי פועל התראת גיבוי הקוד שלך שגוי. נא לאמת את כל המילים ולנסות שוב! - מילה שגויה. התכוונת למילה %1$s או %2$s\? + מילה שגויה. שכחת למלא את המילה הזאת. מילה 12 מילה 11 diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index c68e40fa..d5d26369 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -49,7 +49,7 @@ Sigurnosna kopija pokrenuta Obavijest sigurnosne kopije Tvoja lozinka je neispravna. Provjeri sve riječi i pokušaj ponovo! - Kriva riječ. Je li misliš %1$s ili %2$s\? + Kriva riječ. Ova riječ nije upisana. Riječ 12 Riječ 11 diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index 2e5cbbb6..1ceb3e91 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -47,7 +47,7 @@ Öryggisafritun í gangi Tilkynning um öryggisafritatöku Kóðinn er ógildur. Athugað öll orðin og prófaðu aftur! - Rangt orð. Meintirðu %1$s or %2$s\? + Rangt orð. Þú gleymdir að slá inn þetta orð. Orð 12 Orð 11 diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c48c143c..7252c597 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -9,7 +9,7 @@ Backup in esecuzione Notificazione backup Il tuo codice non è valido, Controlla tutte le parole e riprova! - Parola sbagliata. Intendevi %1$s o %2$s\? + Parola sbagliata. Hai dimenticato di inserire questa parola. Parola 12 Parola 11 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index d6e84788..0f1b1a69 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -41,7 +41,7 @@ 앱 설치 제거 백업이 이미 진행 중 코드가 잘못되었습니다. 모든 단어를 확인하고 다시 시도하세요! - 단어가 틀렸습니다. %1$s 또는 %2$s를 입력하려고 하셨나요\? + 단어가 틀렸습니다. 이 단어를 입력하지 않았습니다. 복구 코드가 맞는지 확인하려면 12개 단어로 이루어진 복구 코드를 입력하세요. 백업을 설정할 때 지정했던 12개 단어로 이루어진 복구 코드를 입력하세요. diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 4428e1e4..4b79a885 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -61,7 +61,7 @@ Sikkerhetskopiering utføres Sikkerhetskopieringsmerknad Koden din er ugyldig. Sjekk alle ordene og prøv igjen. - Feil ord. Mente du %1$s eller %2$s\? + Feil ord. Du glemte å skrive inn dette ordet. Ord 12 Ord 11 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 1e692a51..a84fb883 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -12,7 +12,7 @@ Backup em execução Notificação de backup Seu código é inválido. Por favor, verifique todas as palavras e tente novamente! - Palavra errada. Você quis dizer %1$s ou %2$s\? + Palavra errada. Você se esqueceu de inserir esta palavra. Palavra 12 Palavra 11 diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 521c917e..a00429da 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -49,7 +49,7 @@ Backup em execução Notificação de backup Seu código é inválido. Por favor, verifique todas as palavras e tente novamente! - Palavra errada. Quis dizer %1$s ou %2$s\? + Palavra errada. Se esqueceu de inserir esta palavra. Palavra 12 Palavra 11 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ae511a53..4b2d9679 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -53,7 +53,7 @@ Резервное копирование запущено Уведомление о резервном копировании Ваш код недействителен. Пожалуйста, проверьте все слова и попробуйте еще раз! - Неверное слово. Вы имели в виду %1$s или %2$s\? + Неверное слово. Вы забыли ввести это слово. Слово 12 Слово 11 diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index be1d199f..cb9975e6 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -48,7 +48,7 @@ Yedekleme çalışıyor Yedekleme bildirimi Kodunuz geçersiz. Lütfen tüm sözcükleri gözden geçirin ve tekrar deneyin! - Yanlış sözcük. %1$s veya %2$s demek mi istediniz\? + Yanlış sözcük. Bu sözcüğü girmeyi unuttunuz. 12. sözcük 11. sözcük diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index da558c78..3abfcff3 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -75,7 +75,7 @@ 备份运行中 备份提示 您的代码无效。请检查所有单词,然后重试! - 错误的词。你的意思是%1$s或%2$s? + 错误的词。 你忘了输入这个词。 完成 确认代码 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d7eaa927..e502e9c7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -82,8 +82,8 @@ Word 11 Word 12 You forgot to enter this word. - Wrong word. Did you mean %1$s or %2$s? - Your code is invalid. Please check all words and try again! + Wrong word. + Your code is invalid. Please check all words as well as their position and try again! Recovery code verified Your code is correct and will work for restoring your backup. Incorrect recovery code diff --git a/app/src/sharedTest/java/com/stevesoltys/seedvault/TestUtils.kt b/app/src/sharedTest/java/com/stevesoltys/seedvault/TestUtils.kt index be475cd5..9a9c0f95 100644 --- a/app/src/sharedTest/java/com/stevesoltys/seedvault/TestUtils.kt +++ b/app/src/sharedTest/java/com/stevesoltys/seedvault/TestUtils.kt @@ -44,7 +44,7 @@ fun ByteArray.toHexString(spacer: String = " "): String { for (b in this) { str += String.format("%02X$spacer", b) } - return str + return str.trimEnd() } fun ByteArray.toIntString(): String { diff --git a/app/src/test/java/com/stevesoltys/seedvault/crypto/WordListTest.kt b/app/src/test/java/com/stevesoltys/seedvault/crypto/WordListTest.kt index 58c771d3..3e54e42e 100644 --- a/app/src/test/java/com/stevesoltys/seedvault/crypto/WordListTest.kt +++ b/app/src/test/java/com/stevesoltys/seedvault/crypto/WordListTest.kt @@ -1,11 +1,10 @@ package com.stevesoltys.seedvault.crypto +import cash.z.ecc.android.bip39.Mnemonics +import cash.z.ecc.android.bip39.WordList +import cash.z.ecc.android.bip39.toSeed import com.stevesoltys.seedvault.toHexString -import io.github.novacrypto.bip39.JavaxPBKDF2WithHmacSHA512 -import io.github.novacrypto.bip39.MnemonicGenerator -import io.github.novacrypto.bip39.SeedCalculator -import io.github.novacrypto.bip39.Words -import io.github.novacrypto.bip39.wordlists.English +import com.stevesoltys.seedvault.ui.recoverycode.toMnemonicChars import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test @@ -2067,62 +2066,197 @@ class WordListTest { @Test fun `word list of library did not change`() { + val libWords = WordList().words for (i in words.indices) { - assertEquals(words[i], English.INSTANCE.getWord(i)) + assertEquals(words[i], libWords[i]) } } @Test - fun `test createMnemonic`() { - val entropy = ByteArray(Words.TWELVE.byteLength()) + fun `test creating MnemonicCode from entropy`() { + val entropy = ByteArray(Mnemonics.WordCount.COUNT_12.bitLength / 8) Random.nextBytes(entropy) - val list = ArrayList(12) - MnemonicGenerator(English.INSTANCE).createMnemonic(entropy) { - if (it != " ") list.add(it.toString()) - } - assertEquals(12, list.size) - for (word in list) { - assertTrue(word in words) + val code = Mnemonics.MnemonicCode(entropy) + assertEquals(12, code.words.size) + for (word in code) { + assertTrue(word in words, "$word unknown") } } @Test - @Suppress("MaxLineLength") - fun `12 words generate expected seed`() { + fun `12 not validating words generate seed that novacrypt generated`() { assertEquals( "64AA8C388EC0F3A13C7E51653BC766E30668D30952AB34381C4B174BF3278774" + "B4EE43D0BA08BCBCE0D0B806DEB7AA364A83525C34847078B2A8002A3E116066", - SeedCalculator(JavaxPBKDF2WithHmacSHA512.INSTANCE).calculateSeed( - "write wrong yard year yellow you young youth zebra zero zone zoo", "" - ).toHexString("") + Mnemonics.MnemonicCode( + "write wrong yard year yellow you young youth zebra zero zone zoo" + ).toSeed(validate = false).toHexString("") ) assertEquals( "E911FAA42F389AA9F6D5A40B2ECB876B06D6D1FFBD5885C54720398EB11918CA" + "B8F7BAD70FD5BE39BEB4EB065610700D1CFF1D4BFAA26F998357E15E79002779", - SeedCalculator(JavaxPBKDF2WithHmacSHA512.INSTANCE).calculateSeed( - "matrix lava they brand negative spray floor gym purity picture ritual disorder", "" - ).toHexString("") + Mnemonics.MnemonicCode( + "matrix lava they brand negative spray floor gym purity picture ritual disorder" + ).toSeed(validate = false).toHexString("") ) assertEquals( "DDB26091680CF30D0DC615546E4612327DB287B6B2B8B8947A3E12580315D38C" + "3BF7DD0EB4E9E50B10A41925332E0C8ED43C80DBA29281EF331A1DFA858BF1C9", - SeedCalculator(JavaxPBKDF2WithHmacSHA512.INSTANCE).calculateSeed( - "middle rack south alert ribbon tube hope involve defy oxygen gloom rabbit", "" - ).toHexString("") + Mnemonics.MnemonicCode( + "middle rack south alert ribbon tube hope involve defy oxygen gloom rabbit" + ).toSeed(validate = false).toHexString("") ) assertEquals( "4815B580D0DCDA08334C92B3CB9A8436CD581C55841FB2794FB1E3D6E389F447" + "C8C6520B2FE567720950F5B39BE7EC42C0BC98D3C63F8FEF642B5BD3EE4CDD7B", - SeedCalculator(JavaxPBKDF2WithHmacSHA512.INSTANCE).calculateSeed( - "interest mask trial hold foot segment fade page monitor apple garden shuffle", "" - ).toHexString("") + Mnemonics.MnemonicCode( + "interest mask trial hold foot segment fade page monitor apple garden shuffle" + ).toSeed(validate = false).toHexString("") ) assertEquals( "FF462543D8FB9DAE6C17FA7BA047238664207FCC797D6688E10DD1B3CFD183D4" + "928AD088E8287B69BABCAEB0F87A2DFF2ADD49A7FDB7EB2554D7344F09C41A76", - SeedCalculator(JavaxPBKDF2WithHmacSHA512.INSTANCE).calculateSeed( - "palace glory gospel garment obscure person edge total hunt fix setup uphold\n", "" - ).toHexString("") + Mnemonics.MnemonicCode( + "palace glory gospel garment obscure person edge total hunt fix setup uphold\n" + ).toSeed(validate = false).toHexString("") + ) + } + + @Test + fun `12 valid words generate seed that novacrypt generated`() { + assertEquals( + "C6F9762718449C9D0794FEC140D2C8D4E23FF8E3701D64C03DDD13C69BC73E48" + + "6AB89AB2C7C9BEA43F4AF839F2078595851D5D48FEC6A9FC6C25F399DBB909F9", + Mnemonics.MnemonicCode( + "script vault basic album cotton car entire jaguar correct anger select flower" + ).toSeed().toHexString("") + ) + assertEquals( + "13C5188428B1DF8A5333E60BA7EC47F7E75585315C73BD19812D3591C5F4C52B" + + "B2FC1FF40B1942E2A1EF9F34F586114ED37D46A5A3907A43B317E937C1D9D2CD", + Mnemonics.MnemonicCode( + "drastic toy fatal goose treat saddle chalk fame dismiss employ super behind" + ).toSeed().toHexString("") + ) + assertEquals( + "40B41BB22AC3A507F26A78E027A3B3C5C8F45FF0F5593D82762C74AE69FA548B" + + "A72C0CED31DED6211884B412E7B80F932F9830FA7A67CDB5B28604213DE6599C", + Mnemonics.MnemonicCode( + "nation infant heart virus argue two vivid slam lend decorate turn wish" + ).toSeed().toHexString("") + ) + assertEquals( + "B6D755172B6E9353A25EB3559336C17A8619F3EBE55E8A9A74A44E1AB88EF5E2" + + "C6E12FE132E42A55CC3F8F9224E6A0ABC9C3FF4EB9523A4E9750CDAAEFBA6282", + Mnemonics.MnemonicCode( + "elbow boy powder robot eagle rival neutral pigeon oil shrimp demand health" + ).toSeed().toHexString("") + ) + assertEquals( + "3EDB1292B4D124426201AC523FCC2572184E0B63667DA7DF105AD8FCCD16C074" + + "C6DAF9C7D644B4B48AF75185D21B9E7D778FFE55F836C539581DEBB98C331526", + Mnemonics.MnemonicCode( + "build setup screen solution prepare spice organ ten loud seek ask attract" + ).toSeed().toHexString("") + ) + assertEquals( + "65986351CD054822B40E417855AC2B5651C5F87892F17ED2A984F6B59DD5FB4E" + + "6A4568ABF7E06D93CBCC69BB68F2625E3E8AF2751106380922D49C0D0D0B456B", + Mnemonics.MnemonicCode( + "unhappy welcome pizza inflict inherit village minimum orient cheap swear grunt giraffe" // ktlint-disable max-line-length + ).toSeed().toHexString("") + ) + assertEquals( + "639034B381740A9FA5B8A84715CF18B21EBD343DD91F7B6124A0EFC32A636619" + + "49B02A7810B1A99D8E8CC4CD7D046CE59EAAADBB52DDC0B5036EFED007E1CFF6", + Mnemonics.MnemonicCode( + "rather suit pluck afford avocado diary swap library earn song rival fiber" + ).toSeed().toHexString("") + ) + assertEquals( + "43E1417221BFB40851DE286B543B51DEE9C01D239B2C2E8A355D45B3DF95DFAA" + + "C8DBCAEF1D864D91759A07057DBDB891900D583CAB09BD0655493912108AE65A", + Mnemonics.MnemonicCode( + "toss note family morning silk edge high error appear tilt almost myth" + ).toSeed().toHexString("") + ) + assertEquals( + "14084AAF9CFCAC386D4CE5B9140BEADBF727B1B09786A67A574B668A1A4AE0A3" + + "21B8D4E7BC005980B088A160B6EC08A1CB892C2090C58D95A7C6AAD16C14EE1E", + Mnemonics.MnemonicCode( + "parrot burden release bronze section fantasy ridge blood direct physical spoil asthma" // ktlint-disable max-line-length + ).toSeed().toHexString("") + ) + assertEquals( + "E11E8737327EE6A640761B3888C349D829A60FEAEFB7914D2AE1616F0AC45B9A" + + "322F41D0030C89E209300FA25615FE6B5BDEF73F3E5CE21167685E8A27EE0790", + Mnemonics.MnemonicCode( + "version deliver worry sick flee submit pledge adapt night swear glare adult" + ).toSeed().toHexString("") + ) + assertEquals( + "02652896F67695C03F379A354685A8A0B92D0F303F77461476E80BB594EAD84B" + + "D00B2943C2229ED843C65F6C53A376005871FF74F834E6B6E3B57FFD83D3FB12", + Mnemonics.MnemonicCode( + "exercise curtain initial model travel client twist neutral peace unfold start shell" // ktlint-disable max-line-length + ).toSeed().toHexString("") + ) + } + + @Test + fun `entropy generates same words that novacrypt generated`() { + assertEquals( + "B8 3F 0D 49 7F 2A F4 69 13 71 47 D5 54 9D 17 0B", + Mnemonics.MnemonicCode( + "return wear false wrestle quantum cruel evidence cigar stem pilot easy blood" + ).toEntropy().toHexString() + ) + assertEquals( + "AA 8E 3F 1C EF 60 20 D7 D2 BB FD A0 AA AD 69 09", + Mnemonics.MnemonicCode( + "pride impose shrimp tell acoustic hip enough leisure pass fever fog basket" + ).toEntropy().toHexString() + ) + assertEquals( + "CE E8 17 7E AB 9E 49 8A 0B 32 3C 97 94 07 0C 32", + Mnemonics.MnemonicCode( + "solve doll text fire tonight shallow coast elegant nurse parent seek grass" + ).toEntropy().toHexString() + ) + assertEquals( + "AA 27 4B D8 7B 0D 18 EB 5D 08 BD 11 73 36 C1 06", + Mnemonics.MnemonicCode( + "pretty demise voyage voyage spice interest injury bless badge often raccoon artefact" // ktlint-disable max-line-length + ).toEntropy().toHexString() + ) + assertEquals( + "16 5F A7 40 26 E9 51 70 1B 7A 5C D2 AB CD 73 7E", + Mnemonics.MnemonicCode( + "bind wood source evidence never retreat hospital entire sport fury fresh woman" + ).toEntropy().toHexString() + ) + } + + @Test + fun `test create MnemonicCode from List of CharSequence`() { + assertEquals( + "B8 3F 0D 49 7F 2A F4 69 13 71 47 D5 54 9D 17 0B", + Mnemonics.MnemonicCode( + listOf( + "return", + "wear", + "false", + "wrestle", + "quantum", + "cruel", + "evidence", + "cigar", + "stem", + "pilot", + "easy", + "blood" + ).toMnemonicChars() + ).toEntropy().toHexString() ) } diff --git a/libs/Android.bp b/libs/Android.bp new file mode 100644 index 00000000..2fa04ce0 --- /dev/null +++ b/libs/Android.bp @@ -0,0 +1,5 @@ +java_import { + name: "seedvault-lib-kotlin-bip39", + jars: ["kotlin-bip39-1.0.2.jar"], + sdk_version: "current", +} diff --git a/libs/kotlin-bip39-1.0.2.jar b/libs/kotlin-bip39-1.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..c05e1e05b0539ddf1fcbdfc8ba8ad3c121836c11 GIT binary patch literal 40711 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 literal 0 HcmV?d00001 diff --git a/libs/novacrypto-bip39/Android.bp b/libs/novacrypto-bip39/Android.bp deleted file mode 100644 index e1947407..00000000 --- a/libs/novacrypto-bip39/Android.bp +++ /dev/null @@ -1,27 +0,0 @@ -java_import { - name: "seedvault-lib-novacrypto-bip39-nodeps", - jars: ["BIP39-2019.01.27.jar"], - sdk_version: "current", -} - -java_library_static { - name: "seedvault-lib-novacrypto-bip39", - static_libs: [ - "seedvault-lib-novacrypto-bip39-nodeps", - "seedvault-lib-novacrypto-sha256", - "seedvault-lib-novacrypto-toruntime", - ], - sdk_version: "current", -} - -java_import { - name: "seedvault-lib-novacrypto-sha256", - jars: ["SHA256-2019.01.27.jar"], - sdk_version: "current", -} - -java_import { - name: "seedvault-lib-novacrypto-toruntime", - jars: ["ToRuntime-0.9.0.jar"], - sdk_version: "current", -} diff --git a/libs/novacrypto-bip39/BIP39-2019.01.27.jar b/libs/novacrypto-bip39/BIP39-2019.01.27.jar deleted file mode 100644 index 806af43de56469e2b03aaa4255790ab546f068ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118985 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 diff --git a/libs/novacrypto-bip39/SHA256-2019.01.27.jar b/libs/novacrypto-bip39/SHA256-2019.01.27.jar deleted file mode 100644 index ae871853aeaf4ca01e4b494c2d2a141a5b133605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2198 zcmWIWW@h1HVBp|jD4T2T#{dLOAOZ+Df!NnI#8KDN&rP41Apk|;rh2A#(m(~0KrDi+ z(AUw=)6F$FM9?mS;d0K2#m?o=zV4&uuMLQN;%vhna#7RMO zR>Yy-CDu1(W71~Nja2&Y6@TT&1O5;0lJE1f6{jj(Z2!5d_}$Fn^Jo72`1#hlVR?k! z!9#Bg?`S6Sm3vDZww3;#d**gT!Um}z&&}s1tiSqQlI!dWZ3(sLpic9XiS9?L_Xr0q zxzuGN_wIAVve%9q5|~y>&XHZ}a))Qrv5DPu+z$kDbe^OrN@NeW8elnC8lqlToW(%Z}c@`?d1G zfvhE4cHZWa5t_B=XzixHE8o{RpZ>B_w#=m0_7Z_bt9U?!BMv z|7`Wue{-WI_Qax3hW8~U7d__UvdT*c(0go^7I?K#y4dR2l3cORA^%uc>7QK{abaUe zYTLs76B1|aV32ZFJd_cgQg!pjV>4E*hmM!IRxp^pTRdl(V0q-W*;kepFJxXXysPoX z^JlXTzums)=byc2`I#Q>jJ~(}M~kBPp9!HhN)NtX*eYq(`&qr7@x&yT2v4@l!R)?| zPu3@1@+sLR`zi3n(w~hFvr2Mb6ffGlzKH4D#1@fXnO8H|eT|z7W0XDn=NdG;-ts)- zjk$1x)}@P)+a|4>Ggs;B!tRAG--7&W#9Z%qJz}5y!+eUebM-@!m%T4fUHD*Vbouy; z-<`!XjTqP}r#=Z$t?bQ36^mD1!*HUl$ z-4Lt3>9y;4Kz-_6`JbVgbCs`sZrOd|@SYo~ac_+D%VzScoH4E3JLydDMVA%Q^C#BU zHr>(OqJQFa&6@WAMwNFvEqns*t8|N8ZCo*{{mc32prZSX0p5&EBFwmJ7+@L)0s)4% zjvyLd-=J$luWvw#L10NED3`#sA=N(UCV*7Ksy0w10|6k5%YaN^eS%K|sLFu=kcOE+ zCZYnurw>#CK>$eKVIUKs52-rBX9TD^f&h>aKY&cEM!+g3bfeHKCzxSN8ci7q7=>C@ lp&N`|QXvd(1O_i&H$n`Clv@GbtZX2y96+c5jGqKB4*;MZBx(Qv diff --git a/libs/novacrypto-bip39/ToRuntime-0.9.0.jar b/libs/novacrypto-bip39/ToRuntime-0.9.0.jar deleted file mode 100644 index d5aa5d63d19d7634d7c09c35b96a0be7af43bb4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2387 zcmWIWW@h1HVBp|jh>QyJW&i>v5CH_7KE;?7qUY=O+4sz8A8%c~i@e^tTIbH3-yCFc#rVO~M^Bm13yTmn9|_RTh-sH(nl>rjq=k(!7$)+*AxZKi!)0_##kS zFe3wlD`D-<8L7$HsVS}%$*Bb;nfZAk`9TnaRUDH+e7)qH#Ny()0UQ084S8z!P2;v* zS0H39%&e1=km$TZOGsE~?TyPR2T z6!g4b{pL4dSgi+!nKLC}=2n`Q3=6T-euoVN=ICZRIW;<27C)L0_o0!y>Cnaa8u=eA7T}xMb>#7(xU}*u#+z?#|2{pOL0v-ShTjGCoQU_0!G z9Soln8Z-S(*|rIX<_d3Gt*$uTPcl~hhVqi&(5!cRrncnS>2z(F+~2i%{;kvTZJ&(g*@6*XaAPGoOZOeHqPqsoQ-dleqVl+ z@o1}pi|&_oTc?%9eB3q7bm9NMCWjt$N6i-W`!6jo%pq&y8u-I-kwNKU5mq}lpR!a=*>ne0R|wrTC|vD?0c6Ufh$uO+MtP zc$xgOb9efS&+jcxumAV!m+S#yo4#bB??N7r_I0sq6%`(t;O}s_t1DELKh#DjV4Ls# zGTFu_>mEnMEln-i9Tx8DsIcvFu}{^Moa5h4GhK|S>%Y~tJD+pOs%^=8Uu~717H%%3 zo0YbDUFMc=Jm;r9Z!~&l{&w8~x2t7enQ!NRliKxIPI_7SrH`?9%lFQEd^^{By@~GU z6SwOBUEE?d$^UNcERxyu_JRh}$62>O`(z)V_BZxdzJud8<<86{ zlP+vjGbleO!=W=To4rwaF;Cp|gPM)Yr$5y-`2787!2_o<#{}amXFr|29H=mP_lKK0 zPmXQ*y6kz~gy7@cN325r)jSbzov`<*)#1s0ni}e1=M?;Qb}F0=<(zWe;I!$@@&htP zQ>30vTsocSosf>x%($OT9S5GjGCy)}-Mqv{?gEPp(x>dV;Iud^8?eAly?-l1#33J{ z4_snQ|4r5<8G2azXqjHu%>SafH(+DSY{rw(j1zA+Yu#d2k`xMLu}ge4=hVxFZnyav z2UJfdH7J#)W_focPd=L4YjO0rMe2zM=NcNjPUuNylZ{ z{^kwvW@Hj!#$EXUQ!fw*FuZjH(eSDWT^o8;1X2tFOBywSBwQO(#e{AGNHwh11Jyqe z0J69Y$OKk3_%wiOBM1O#mLz^pKy?!Yfb<;(G7