mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-07-12 03:27:06 +10:00
e1a4900dc0
This adds a simple UI in repeater management settings for remotely setting a repeater's private key. A key can be pasted from an external key generator, or a random one can be generated here, optionally with a specified prefix. If a prefix is specified, searching is done in 30ms batches in order to keep the UI responsive and show the progress indicator animation smoothly. Searches can be interrupted. An estimation of search length is given as expected number of generated key pairs. (A future improvement would be to observe keys per second performance and give time estimates based on that.) When it generates a new private key on your behalf, it can tell you what the corresponding public key will be. Unfortunately, if you paste one in from another source, it can't compute the corresponding public key. This is because the standard Dart crypto library doesn't provide that capability, nor does it give access to the elliptic curve functions it implements so we could do it ourselves. Our only recourse would be to copy the source for all those things, and I didn't think it was worth it. This will not check the validity of a pasted key, but the remote repeater will. It does limit it to the correct length and hexadecimal charset. Prefixes are limited to 4 characters. There's no technical reason for this, but users are unlikely to want more, and I think it would just be a bad experience to allow more and spin for a very long time. If someone really wants a longer one, they can use an external generator like they do now. Possible TODO: rewrite background processing using isolates. Closes #142.
482 lines
14 KiB
JSON
482 lines
14 KiB
JSON
{
|
|
"bg": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"de": [
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"es": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"fr": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"hu": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"it": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"ja": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"ko": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"nl": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"pl": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"pt": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"ru": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"sk": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"sl": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"sv": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"uk": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
],
|
|
|
|
"zh": [
|
|
"settings_regionSettings",
|
|
"settings_regionSettingsSubtitle",
|
|
"settings_regionManagement_screenTitle",
|
|
"settings_regionNameHint",
|
|
"settings_regionAddRegion",
|
|
"settings_regionFetchRegions",
|
|
"settings_regionFetchRegionsFail",
|
|
"settings_regionFetchRegionsAlreadyExists",
|
|
"settings_regionName",
|
|
"settings_regionDeleted",
|
|
"settings_deleteRegion",
|
|
"settings_deleteRegionConfirm",
|
|
"channels_regionSetTo",
|
|
"channels_regionNotSet",
|
|
"channels_regionSelect_Title",
|
|
"channels_clearRegion",
|
|
"repeater_keySettings",
|
|
"repeater_keySettingsSubtitle",
|
|
"repeater_prvKey",
|
|
"repeater_prvKeyHelper",
|
|
"repeater_generatePrvKey",
|
|
"repeater_stopGeneratingPrvKey",
|
|
"repeater_pubKey",
|
|
"repeater_pubKeyHelper",
|
|
"repeater_pubKeyPrefix",
|
|
"repeater_pubKeyPrefixHelper"
|
|
]
|
|
}
|