1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-05 23:53:33 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Todd Martin
621bf76db8 Updated minimum version 2023-12-29 21:22:02 -05:00
41 changed files with 449 additions and 505 deletions

12
.github/CODEOWNERS vendored
View File

@@ -1,14 +1,12 @@
# Please sort into logical groups with comment headers. Sort groups in order of specificity.
# For example, default owners should always be the first group.
# Sort lines alphabetically within these groups to avoid accidentally adding duplicates.
# Please sort lines alphabetically, this will ensure we don't accidentally add duplicates.
#
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Default file owners
* @bitwarden/dept-development-mobile
# The following owners will be the default owners for everything in the repo.
# Unless a later match takes precedence
# @bitwarden/tech-leads
# DevOps for Actions and other workflow changes
.github/workflows @bitwarden/dept-devops
@bitwarden/dept-development-mobile
## Auth team files ##

16
.github/renovate.json vendored
View File

@@ -8,14 +8,16 @@
":pinAllExceptPeerDependencies",
":prConcurrentLimit10",
":rebaseStalePrs",
":separateMajorReleases",
"group:monorepos",
"schedule:weekends"
"schedule:weekends",
":separateMajorReleases"
],
"enabledManagers": ["github-actions", "npm", "nuget"],
"commitMessagePrefix": "[deps]:",
"commitMessageTopic": "{{depName}}",
"enabledManagers": ["cargo", "github-actions", "npm", "nuget"],
"packageRules": [
{
"groupName": "cargo minor",
"matchManagers": ["cargo"],
"matchUpdateTypes": ["minor", "patch"]
},
{
"groupName": "gh minor",
"matchManagers": ["github-actions"],
@@ -30,6 +32,6 @@
"groupName": "nuget minor",
"matchManagers": ["nuget"],
"matchUpdateTypes": ["minor", "patch"]
}
},
]
}

2
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"name": "bitwarden-mobile",
"version": "0.0.0",
"devDependencies": {
"gh-pages": "3.2.3"
"gh-pages": "^3.2.3"
}
},
"node_modules/array-union": {

View File

@@ -6,6 +6,6 @@
"clean:l10n": "git push origin --delete l10n_master"
},
"devDependencies": {
"gh-pages": "3.2.3"
"gh-pages": "^3.2.3"
}
}

View File

@@ -157,7 +157,7 @@ namespace Bit.Droid
var autofillHandler = new AutofillHandler(stateService, messagingService, clipboardService,
platformUtilsService, new LazyResolve<IEventService>());
var cryptoFunctionService = new PclCryptoFunctionService(cryptoPrimitiveService);
var cryptoService = new CryptoService(stateService, cryptoFunctionService, logger);
var cryptoService = new CryptoService(stateService, cryptoFunctionService);
var biometricService = new BiometricService(stateService, cryptoService);
var userPinService = new UserPinService(stateService, cryptoService);
var passwordRepromptService = new MobilePasswordRepromptService(platformUtilsService, cryptoService, stateService);

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="2024.1.1" android:installLocation="internalOnly" package="com.x8bit.bitwarden">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="2023.12.1" android:installLocation="internalOnly" package="com.x8bit.bitwarden">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.NFC" />

View File

@@ -40,11 +40,11 @@ namespace Bit.App.Pages
private async Task GoToImportItemsAsync()
{
var toolsImportUrl = string.Format(ExternalLinksConstants.WEB_VAULT_TOOLS_IMPORT_FORMAT, _environmentService.GetWebVaultUrl());
var body = string.Format(AppResources.YouCanImportDataToYourVaultOnX, toolsImportUrl);
var webVaultUrl = _environmentService.GetWebVaultUrl();
var body = string.Format(AppResources.YouCanImportDataToYourVaultOnX, webVaultUrl);
if (await _platformUtilsService.ShowDialogAsync(body, AppResources.ContinueToWebApp, AppResources.Continue, AppResources.Cancel))
{
_platformUtilsService.LaunchUri(toolsImportUrl);
_platformUtilsService.LaunchUri(webVaultUrl);
}
}
}

View File

@@ -156,7 +156,7 @@
<comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
</data>
<data name="CopyUsername" xml:space="preserve">
<value>İstifadəçi adını kopyala</value>
<value>İstifadəçi adını kopyalayın</value>
<comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
</data>
<data name="Credits" xml:space="preserve">
@@ -176,7 +176,7 @@
<comment>Confirmation alert message when deleteing something.</comment>
</data>
<data name="Edit" xml:space="preserve">
<value>Düzəliş et</value>
<value>Redaktə edin</value>
</data>
<data name="EditFolder" xml:space="preserve">
<value>Qovluğa düzəliş et</value>
@@ -784,13 +784,13 @@
<value>Avto-doldurmaq və ya bu elementə baxmaq istəyirsiniz?</value>
</data>
<data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve">
<value>Bu elementi avto-doldurmaq istədiyinizə əminsiniz? "{0}" ilə tam uyuşmur.</value>
<value>Bu elementi avto-doldurmaq istədiyinizə əminsiniz? "{0}" ilə tam uyğun gəlmir.</value>
</data>
<data name="MatchingItems" xml:space="preserve">
<value>Uyuşan elementlər</value>
<value>Uyğun gələnlər</value>
</data>
<data name="PossibleMatchingItems" xml:space="preserve">
<value>Uyuşması mümkün olan elementlər</value>
<value>Uyğun gələ bilənlər</value>
</data>
<data name="Search" xml:space="preserve">
<value>Axtar</value>
@@ -1246,10 +1246,10 @@ Skan prosesi avtomatik baş tutacaq.</value>
<value>Başlayır</value>
</data>
<data name="URIMatchDetection" xml:space="preserve">
<value>URI uyuşma aşkarlaması</value>
<value>URI uyğunluq aşkarlaması</value>
</data>
<data name="MatchDetection" xml:space="preserve">
<value>Uyuşmanı aşkarlama</value>
<value>Uyğunluq aşkarlaması</value>
<comment>URI match detection for auto-fill.</comment>
</data>
<data name="YesAndSave" xml:space="preserve">
@@ -1530,11 +1530,11 @@ Skan prosesi avtomatik baş tutacaq.</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="DefaultUriMatchDetection" xml:space="preserve">
<value>İlkin URI uyuşma aşkarlaması</value>
<value>İlkin URI uyğunluq aşkarlaması</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
<value>Avto-doldurma kimi əməliyyatları icra edərkən giriş etmə prosesi üçün URI uyuşma aşkarlamasının idarə edliəcəyi ilkin yolu seçin.</value>
<value>Avto-doldurma kimi əməliyyatları icra edərkən giriş etmə prosesi üçün URI uyğunluq aşkarlamasının ilkin yolunu seçin.</value>
</data>
<data name="Theme" xml:space="preserve">
<value>Tema</value>
@@ -2464,7 +2464,7 @@ Skan prosesi avtomatik baş tutacaq.</value>
<value>Əlçatımlılıq Xidməti açıqlaması</value>
</data>
<data name="AccessibilityDisclosureText" xml:space="preserve">
<value>Bitwarden, tətbiqlərdə və veb saytlarda giriş sahələrini axtarmaq üçün Əlçatımlılıq Xidmətini istifadə edir, daha sonra tətbiq və ya sayt üçün uyuşma tapdıqda istifadəçi adı və parolun daxil edilməsi üçün müvafiq sahə kimliklərini yaradır. Xidmət tərəfindən bizə təqdim edilən məlumatların heç birini saxlamırıq, kimlik məlumatlarının daxil edilməsindən kənar ekrandakı hər hansısa elementə nəzarət etməyə cəhd etmirik.</value>
<value>Bitwarden, tətbiqlərdə və veb saytlarda giriş sahələrini axtarmaq üçün Əlçatımlılıq Xidmətini istifadə edir, daha sonra tətbiq və ya sayt üçün uyğunluq aşkar etdikdə istifadəçi adı və parolun daxil edilməsi üçün müvafiq sahə kimliklərini yaradır. Xidmət tərəfindən bizə təqdim edilən məlumatların heç birini saxlamırıq, kimlik məlumatlarının daxil edilməsindən kənar ekrandakı hər hansısa elementə nəzarət etməyə cəhd etmirik.</value>
</data>
<data name="Accept" xml:space="preserve">
<value>Qəbul et</value>
@@ -2505,7 +2505,7 @@ Bu hesaba keçmək istəyirsiniz?</value>
<value>Cihazınıza bir bildiriş göndərildi.</value>
</data>
<data name="PleaseMakeSureYourVaultIsUnlockedAndTheFingerprintPhraseMatchesOnTheOtherDevice" xml:space="preserve">
<value>Lütfən anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazla uyuşduğuna əmin olun.</value>
<value>Lütfən anbarınızın kilidinin açıq olduğuna və Barmaq izi ifadəsinin digər cihazda uyğun gəldiyinə əmin olun.</value>
</data>
<data name="ResendNotification" xml:space="preserve">
<value>Bildirişi təkrar göndər</value>
@@ -2592,13 +2592,13 @@ Bu hesaba keçmək istəyirsiniz?</value>
<value>Açarı, mövcud və ya yeni bir elementə əlavə edin</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Anbarınızda {0} ilə uyuşan heç bir element yoxdur</value>
<value>Anbarınızda {0} ilə uyğunlaşan heç bir element yoxdur</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Bir element axtarın və ya yenisini əlavə edin</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Axtarışla uyuşan heç bir element yoxdur</value>
<value>Axtarışa uyğun gələn heç bir element yoxdur</value>
</data>
<data name="US" xml:space="preserve">
<value>ABŞ</value>

View File

@@ -265,7 +265,7 @@
<comment>The login button text (verb).</comment>
</data>
<data name="LogInNoun" xml:space="preserve">
<value>Mewngofnodi</value>
<value>Login</value>
<comment>Title for login page. (noun)</comment>
</data>
<data name="LogOut" xml:space="preserve">
@@ -308,7 +308,7 @@
<comment>Label for an entity name.</comment>
</data>
<data name="No" xml:space="preserve">
<value>Na</value>
<value>No</value>
</data>
<data name="Notes" xml:space="preserve">
<value>Nodiadau</value>
@@ -327,7 +327,7 @@
<comment>Button text for a save operation (verb).</comment>
</data>
<data name="Move" xml:space="preserve">
<value>Symud</value>
<value>Move</value>
</data>
<data name="Saving" xml:space="preserve">
<value>Yn cadw...</value>
@@ -391,7 +391,7 @@
<value>Fersiwn</value>
</data>
<data name="View" xml:space="preserve">
<value>Golwg</value>
<value>View</value>
</data>
<data name="VisitOurWebsite" xml:space="preserve">
<value>Visit our website</value>
@@ -401,7 +401,7 @@
<comment>Label for a website.</comment>
</data>
<data name="Yes" xml:space="preserve">
<value>Ydw</value>
<value>Yes</value>
</data>
<data name="Account" xml:space="preserve">
<value>Cyfrif</value>
@@ -715,7 +715,7 @@
<value>Verification code</value>
</data>
<data name="ViewItem" xml:space="preserve">
<value>Gweld yr Eitem</value>
<value>View item</value>
</data>
<data name="WebVault" xml:space="preserve">
<value>Cell we Bitwarden</value>

View File

@@ -416,7 +416,7 @@
<value>Sovelluslaajennus</value>
</data>
<data name="AutofillAccessibilityDescription" xml:space="preserve">
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkkosivuilla.</value>
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojesi automaattitäyttöön sovelluksissa ja verkossa.</value>
</data>
<data name="AutofillService" xml:space="preserve">
<value>Automaattitäytön palvelu</value>
@@ -431,13 +431,13 @@
<value>Helpoin tapa lisätä holviisi uusia kirjautumistietoja on käyttää Bitwardenin sovelluslaajennusta. "Asetukset" -osiosta löydät lisätietoja laajennuksen käytöstä.</value>
</data>
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
<value>Käytä Bitwardenia kirjautumistietojesi automaattiseen täyttöön Safarissa ja muissa sovelluksissa.</value>
<value>Käytä Bitwardenia kirjautumistietojesi automaattitäyttöön Safarissa ja muissa sovelluksissa.</value>
</data>
<data name="BitwardenAutofillService" xml:space="preserve">
<value>Bitwardenin automaattitäytön palvelu</value>
</data>
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön.</value>
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattitäyttöön.</value>
</data>
<data name="ChangeEmail" xml:space="preserve">
<value>Vaihda sähköpostiosoite</value>
@@ -745,10 +745,10 @@
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
</data>
<data name="BitwardenAutofillServiceOverlay" xml:space="preserve">
<value>Kun valitset syöttökentän ja näet Bitwardenin ponnahdusvalinnan, voit sitä napauttamalla avata automaattitäytön palvelun.</value>
<value>Kun valitset syöttökentän ja näet Bitwardenin ponnahdusvalinnan, voit napauttaa sitä avataksesi automaattitäytön palvelun.</value>
</data>
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
<value>Täytä kohde holvistasi automaattisesti napauttamalla tätä ilmoitusta.</value>
<value>Automaattitäytä holvisi kohde automaattisesti napauttamalla tätä ilmoitusta.</value>
</data>
<data name="BitwardenAutofillServiceOpenAccessibilitySettings" xml:space="preserve">
<value>Avaa "Esteettömyys" -asetukset</value>
@@ -775,16 +775,16 @@
<value>Tila</value>
</data>
<data name="BitwardenAutofillServiceAlert2" xml:space="preserve">
<value>Holviin on helpoin lisätä uusia kirjautumistietoja Bitwardenin automaattitäytön palvelun avulla. Asetuksista löydät lisätietoja sen käytöstä.</value>
<value>Helpoin tapa lisätä holviisi uusia kirjautumistietoja on Bitwardenin automaattitäytön palvelu. Asetuksista löydät lisätietoja sen käytöstä.</value>
</data>
<data name="Autofill" xml:space="preserve">
<value>Automaattitäyttö</value>
</data>
<data name="AutofillOrView" xml:space="preserve">
<value>Haluatko täyttää kohteen automaattisesti vai tarkastella sitä?</value>
<value>Haluatko automaattitäyttää vai tarkastella kohdetta?</value>
</data>
<data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve">
<value>Haluatko varmasti täyttää kohteen automaattisesti? Se ei vastaa osoitetta "{0}" täysin.</value>
<value>Haluatko varmasti automaattitäyttää tällä kohteella? Se ei ole täysin osoitetta "{0}" vastaava.</value>
</data>
<data name="MatchingItems" xml:space="preserve">
<value>Tunnistetut kohteet</value>
@@ -796,7 +796,7 @@
<value>Etsi</value>
</data>
<data name="BitwardenAutofillServiceSearch" xml:space="preserve">
<value>Etsit automaattisesti täytettävää kohdetta osoitteelle ”{0}”.</value>
<value>Etsit automaattitäyttöön kohdetta osoitteelle ”{0}”.</value>
</data>
<data name="LearnOrg" xml:space="preserve">
<value>Lisätietoja organisaatioista</value>
@@ -878,17 +878,17 @@
<comment>The placeholder will show the file size of the attachment. Ex "25 MB"</comment>
</data>
<data name="AuthenticatorKey" xml:space="preserve">
<value>Todennusavain (TOTP)</value>
<value>Todennusmenetelmän avain (TOTP)</value>
</data>
<data name="VerificationCodeTotp" xml:space="preserve">
<value>Todennuskoodi (TOTP)</value>
<comment>Totp code label</comment>
</data>
<data name="AuthenticatorKeyAdded" xml:space="preserve">
<value>Todennusavain on lisätty.</value>
<value>Todennusmenetelmän avain lisätty.</value>
</data>
<data name="AuthenticatorKeyReadError" xml:space="preserve">
<value>Todennusavaimen lukeminen ei onnistu.</value>
<value>Todennusavaimen luku epäonnistui.</value>
</data>
<data name="PointYourCameraAtTheQRCode" xml:space="preserve">
<value>Kohdista kamera QR-koodiin.
@@ -907,7 +907,7 @@ Koodi skannataan automaattisesti.</value>
<value>Kopioi TOTP-todennuskoodi</value>
</data>
<data name="CopyTotpAutomaticallyDescription" xml:space="preserve">
<value>Jos kirjautumistieto sisältää kaksivaiheisen todennuksen avaimen, kopioidaan TOTP-todennuskoodi leikepöydälle kohteen automaattisen täytön yhteydessä.</value>
<value>Jos kirjautumistieto sisältää kaksivaiheisen TOTP-todennusavaimen, kopioidaan todennuskoodi automaattitäytön yhteydessä automaattisesti leikepöydälle.</value>
</data>
<data name="CopyTotpAutomatically" xml:space="preserve">
<value>TOTP-koodin kopiointi</value>
@@ -1167,10 +1167,10 @@ Koodi skannataan automaattisesti.</value>
<value>Automaattitäytön esteettömyyspalvelu</value>
</data>
<data name="AutofillServiceDescription" xml:space="preserve">
<value>Bitwardenin automaattitäytön palvelu käyttää Android Autofill Framework -rajapintaa kirjautumistietojen täyttöön laitteen muissa sovelluksissa.</value>
<value>Bitwardenin automaattitäytön palvelu käyttää Android Autofill Framework -rajapintaa kirjautumistietojen täyttöön laitteen sovelluksissa.</value>
</data>
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
<value>Käytä Bitwardenin automaattitäytön palvelua kirjautumistietojen täyttöön muissa sovelluksissa.</value>
<value>Käytä Bitwardenin automaattitäytön palvelua kirjautumistietojen täyttöön sovelluksissa.</value>
</data>
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
<value>Avaa "Automaattinen täyttö -palvelu" -asetukset</value>
@@ -1298,7 +1298,7 @@ Koodi skannataan automaattisesti.</value>
<value>Käytä holviasi suoraan näppäimistöltä nopeaa salasanojen automaattista täyttöä varten.</value>
</data>
<data name="AutofillTurnOn" xml:space="preserve">
<value>Ota salasanojen automaattinen täyttö laitteellasi käyttöön seuraavilla ohjeilla:</value>
<value>Ota salasanojen automaattitäyttö käyttöön laitteellasi seuraavilla ohjeilla:</value>
</data>
<data name="AutofillTurnOn1" xml:space="preserve">
<value>1. Siirry iOS:n "Asetukset" -sovellukseen</value>
@@ -1534,7 +1534,7 @@ Koodi skannataan automaattisesti.</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
<value>Valitse kirjautumistietojen URI:en oletusarvoinen tunnistustapa suoritettaessa automaattisen täytön kaltaisia toimintoja.</value>
<value>Valitse kirjautumistietojen URI:en oletusarvoinen tunnistustapa suoritettaessa automaattitäytön kaltaisia toimintoja.</value>
</data>
<data name="Theme" xml:space="preserve">
<value>Teema</value>
@@ -1574,7 +1574,7 @@ Koodi skannataan automaattisesti.</value>
<comment>'Solarized Dark' is the name of a specific color scheme. It should not be translated.</comment>
</data>
<data name="AutofillBlockedUris" xml:space="preserve">
<value>Automaattitäytä estetyt URI:t</value>
<value>Täytä estetyt URI:t automaattisesti</value>
</data>
<data name="AskToAddLogin" xml:space="preserve">
<value>Kysy lisätäänkö kirjautumistieto</value>
@@ -1586,7 +1586,7 @@ Koodi skannataan automaattisesti.</value>
<value>Kun sovellus käynnistetään uudelleen</value>
</data>
<data name="AutofillServiceNotEnabled" xml:space="preserve">
<value>Automaattisen täytön avulla Bitwarden-holviasi on helppo käyttää sivustoilla ja muissa sovelluksissa. Näyttää siltä, ettei Bitwardenia ole määritetty automaattitäytön palveluksi. Määritys onnistuu "Asetukset"-ruudusta.</value>
<value>Automaattitäytön avulla Bitwarden-holviasi on helppo käyttää sivustoilla ja muissa sovelluksissa. Näyttää siltä, ettei Bitwardenia ole määritetty automaattitäytön palveluksi. Määritys onnistuu "Asetukset"-ruudusta.</value>
</data>
<data name="ThemeAppliedOnRestart" xml:space="preserve">
<value>Teema vaihtuu kun sovellus käynnistetään uudelleen.</value>
@@ -1829,10 +1829,10 @@ Koodi skannataan automaattisesti.</value>
<value>Esteettömyyspalvelu</value>
</data>
<data name="AccessibilityDescription" xml:space="preserve">
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkkosivustoilla. Kun määritetty, näytetään aktiivisten kirjautumiskenttien ohessa pikavalintapalkki.</value>
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattitäyttöön sovelluksissa ja verkkosivustoilla. Kun määritetty, näytetään aktiivisten kirjautumiskenttien ohessa pikavalintapalkki.</value>
</data>
<data name="AccessibilityDescription2" xml:space="preserve">
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkkosivustoilla (myös "Näkyminen muiden päällä" -asetuksen on oltava käytössä).</value>
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattitäyttöön sovelluksissa ja verkkosivustoilla (myös "Näkyminen muiden päällä" -asetuksen on oltava käytössä).</value>
</data>
<data name="AccessibilityDescription3" xml:space="preserve">
<value>Käytä Bitwardenin esteettömyyspalvelua käyttääksesi Automaattisen täytön pikavalintapalkkia ja/tai näytä palkki käyttäen "Näkyminen muiden päällä" -asetusta.</value>
@@ -1847,13 +1847,13 @@ Koodi skannataan automaattisesti.</value>
<value>Sallii Bitwardenin esteettömyyspalvelun näyttää pikavalintapalkin aktiivisten kirjautumiskenttien ohessa.</value>
</data>
<data name="DrawOverDescription2" xml:space="preserve">
<value>Kun käytössä, Bitwardenin esteettömyyspalvelu näyttää aktiivisten kirjautumiskenttien ohessa pikavalintapalkin helpottaakseen kirjautumistietojen automaattista täyttöä.</value>
<value>Kun käytössä, Bitwardenin esteettömyyspalvelu näyttää aktiivisten kirjautumiskenttien ohessa pikavalintapalkin helpottaakseen kirjautumistietojen automaattitäyttöä.</value>
</data>
<data name="DrawOverDescription3" xml:space="preserve">
<value>Jos käytössä, esteettömyyspalvelu näyttää pikavalintapalkin laajentaakseen automaattisen täytön palvelun toiminnan kattamaan myös vanhemmat sovellukset, jotka eivät tue Android Autofill Framework -rajapintaa.</value>
</data>
<data name="PersonalOwnershipSubmitError" xml:space="preserve">
<value>Yrityskäytännön vuoksi kohteiden tallennus henkilökohtaiseen holviin ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista.</value>
<value>Yrityskäytännön johdosta kohteiden tallennus henkilökohtaiseen holviin ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista.</value>
</data>
<data name="PersonalOwnershipPolicyInEffect" xml:space="preserve">
<value>Organisaatiokäytäntö vaikuttaa omistajuusvalintoihisi.</value>
@@ -2126,7 +2126,7 @@ Koodi skannataan automaattisesti.</value>
<value>Varmista, että oletusselaimesi sisältää WebAuthn-tuen ja yritä uudelleen.</value>
</data>
<data name="ResetPasswordAutoEnrollInviteWarning" xml:space="preserve">
<value>Organisaatiolla on yrityskäytäntö, joka liittää tilisi automaattisesti salasanan palautusapuun. Liitos sallii organisaation ylläpitäjien vaihtaa pääsalasanasi.</value>
<value>Organisaatiolla on käytäntö, joka liittää tilisi automaattisesti salasanan palautusapuun. Liitos sallii organisaation ylläpitäjien vaihtaa pääsalasanasi.</value>
</data>
<data name="VaultTimeoutPolicyInEffect" xml:space="preserve">
<value>Organisaatiokäytännöt ovat määrittäneet holvisi aikakatkaisun enimmäisajaksi {0} tunti(a) {1} minuutti(a).</value>
@@ -2273,7 +2273,7 @@ Koodi skannataan automaattisesti.</value>
<value>Premium-tilaus vaaditaan</value>
</data>
<data name="CannotAddAuthenticatorKey" xml:space="preserve">
<value>Eikä todennusavaimen lisääminen onnistu?</value>
<value>Etkö voi lisätä todennusavainta? </value>
</data>
<data name="ScanQRCode" xml:space="preserve">
<value>Skannaa QR-koodi</value>
@@ -2282,7 +2282,7 @@ Koodi skannataan automaattisesti.</value>
<value>Eikö QR-koodin skannaus onnistu? </value>
</data>
<data name="AuthenticatorKeyScanner" xml:space="preserve">
<value>Todennusavain</value>
<value>Todentajan avain</value>
</data>
<data name="EnterKeyManually" xml:space="preserve">
<value>Syötä se manuaalisesti</value>
@@ -2699,7 +2699,7 @@ Haluatko vaihtaa tähän tiliin?</value>
<value>Estä automaattitäyttö</value>
</data>
<data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve">
<value>Automaattista täyttöä ei tarjota näille URI-osoitteille.</value>
<value>Automaattitäyttöä ei tarjota näille URI-osoitteille.</value>
</data>
<data name="NewBlockedURI" xml:space="preserve">
<value>Uusi estetty URI</value>

File diff suppressed because it is too large Load Diff

View File

@@ -885,7 +885,7 @@
<comment>Totp code label</comment>
</data>
<data name="AuthenticatorKeyAdded" xml:space="preserve">
<value>Chave de autenticação adicionada.</value>
<value>Chave de autenticador adicionada.</value>
</data>
<data name="AuthenticatorKeyReadError" xml:space="preserve">
<value>Não é possível ler a chave de autenticação.</value>

View File

@@ -885,10 +885,10 @@
<comment>Totp code label</comment>
</data>
<data name="AuthenticatorKeyAdded" xml:space="preserve">
<value>Ключ аутентификатора добавлен.</value>
<value>Ключ проверки подлинности добавлен.</value>
</data>
<data name="AuthenticatorKeyReadError" xml:space="preserve">
<value>Не удается прочитать ключ аутентификатора.</value>
<value>Не удается прочитать ключ проверки подлинности.</value>
</data>
<data name="PointYourCameraAtTheQRCode" xml:space="preserve">
<value>Наведите камеру на QR-код.
@@ -2272,7 +2272,7 @@
<value>Требуется подписка Премиум</value>
</data>
<data name="CannotAddAuthenticatorKey" xml:space="preserve">
<value>Не удается добавить ключ аутентификатора? </value>
<value>Не удается добавить ключ проверки подлинности? </value>
</data>
<data name="ScanQRCode" xml:space="preserve">
<value>Сканировать QR-код</value>

View File

@@ -858,7 +858,7 @@
<comment>"YubiKey" is the product name and should not be translated.</comment>
</data>
<data name="AddNewAttachment" xml:space="preserve">
<value>புதிய இணைப்பைச் சேர்</value>
<value>புதிய இணைப்பை சேர்</value>
</data>
<data name="Attachments" xml:space="preserve">
<value>இணைப்புகள்</value>
@@ -2331,7 +2331,7 @@
<value>நேரம்</value>
</data>
<data name="Near" xml:space="preserve">
<value>இதற்கருகில்</value>
<value>Near</value>
</data>
<data name="ConfirmLogIn" xml:space="preserve">
<value>உள்நுழைவை உறுதிபடுத்து</value>
@@ -2772,7 +2772,7 @@
<value>இப்போது ஒத்திசை</value>
</data>
<data name="UnlockOptions" xml:space="preserve">
<value>பூட்டவிழ்ப்பு விருப்பங்கள்</value>
<value>Unlock options</value>
</data>
<data name="SessionTimeout" xml:space="preserve">
<value>அமர்வு நேரமுடிவு</value>
@@ -2785,16 +2785,16 @@
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
</data>
<data name="OneHourAndOneMinute" xml:space="preserve">
<value>ஒரு மணிநேரம் மற்றும் ஒரு நிமிடம்</value>
<value>One hour and one minute</value>
</data>
<data name="OneHourAndXMinute" xml:space="preserve">
<value>ஒரு மணிநேரம் மற்றும் {0} நிமிடங்கள்</value>
<value>One hour and {0} minutes</value>
</data>
<data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} மணிநேரம் மற்றும் ஒரு நிமிடம்</value>
<value>{0} hours and one minute</value>
</data>
<data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} மணிநேரம் மற்றும் {1} நிமிடங்கள்</value>
<value>{0} hours and {1} minutes</value>
</data>
<data name="XHours" xml:space="preserve">
<value>{0} மணிநேரம்</value>
@@ -2809,29 +2809,29 @@
<value>கூடுதல் தேர்வுகள்</value>
</data>
<data name="ContinueToWebApp" xml:space="preserve">
<value>வலைச்செயலிக்குத் தொடரவா?</value>
<value>Continue to web app?</value>
</data>
<data name="ContinueToX" xml:space="preserve">
<value>{0}-க்குத் தொடரவா?</value>
<value>Continue to {0}?</value>
<comment>The parameter is an URL, like bitwarden.com.</comment>
</data>
<data name="ContinueToHelpCenter" xml:space="preserve">
<value>உதவி மையத்திற்குத் தொடரவா?</value>
<value>Continue to Help center?</value>
</data>
<data name="ContinueToContactSupport" xml:space="preserve">
<value>ஆதரவைத் தொடர்புகொள்ளத் தொடரவா?</value>
<value>Continue to contact support?</value>
</data>
<data name="ContinueToAppStore" xml:space="preserve">
<value>Continue to app store?</value>
</data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Bitwarden வலைச்செயலியில் இரு-படி உள்நுழைவை அமைத்து உமது கணக்கின் பாதுகாப்பை அதிகரி.</value>
<value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value>
</data>
<data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve">
<value>Bitwarden வலைச்செயலியில் உமது பிரதான கடவுச்சொல்லை மாற்றலாம்.</value>
<value>You can change your master password on the Bitwarden web app.</value>
</data>
<data name="YouCanImportDataToYourVaultOnX" xml:space="preserve">
<value>{0}-இல் உமது பெட்டகத்திற்குத் தரவை இறக்குமதி செய்யலாம்.</value>
<value>You can import data to your vault on {0}.</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">

View File

@@ -553,7 +553,7 @@
<value>Дія після часу очікування сховища</value>
</data>
<data name="VaultTimeoutLogOutConfirmation" xml:space="preserve">
<value>Вихід скасує всі права доступу до вашого сховища і вимагатиме автентифікацію після завершення часу очікування. Ви дійсно хочете використати цей параметр?</value>
<value>Вихід скасує всі права доступу до вашого сховища і вимагатиме авторизації після завершення часу очікування. Ви дійсно хочете використати цей параметр?</value>
</data>
<data name="LoggingIn" xml:space="preserve">
<value>Вхід...</value>
@@ -721,7 +721,7 @@
<value>Веб сховище Bitwarden</value>
</data>
<data name="Lost2FAApp" xml:space="preserve">
<value>Втратили доступ до програми автентифікації?</value>
<value>Втратили доступ до програми перевірки?</value>
</data>
<data name="Items" xml:space="preserve">
<value>Записи</value>
@@ -806,11 +806,11 @@
<comment>Message shown when trying to launch an app that does not exist on the user's device.</comment>
</data>
<data name="AuthenticatorAppTitle" xml:space="preserve">
<value>Програма автентифікації</value>
<value>Програма авторизації</value>
<comment>For 2FA</comment>
</data>
<data name="EnterVerificationCodeApp" xml:space="preserve">
<value>Введіть 6-значний код підтвердження з програми автентифікації.</value>
<value>Введіть 6-значний код підтвердження з програми авторизації.</value>
<comment>For 2FA</comment>
</data>
<data name="EnterVerificationCodeEmail" xml:space="preserve">
@@ -822,7 +822,7 @@
<comment>For 2FA whenever there are no available providers on this device.</comment>
</data>
<data name="NoTwoStepAvailable" xml:space="preserve">
<value>Цей обліковий запис має увімкнену двоетапну перевірку, однак жоден із налаштованих провайдерів не підтримується на цьому пристрої. Будь ласка, скористайтеся підтримуваним пристроєм або додайте інших провайдерів, які мають кращу підтримку різних пристроїв (наприклад, програму автентифікації).</value>
<value>Цей обліковий запис має увімкнену двоетапну перевірку, однак, жоден із налаштованих провайдерів не підтримується на цьому пристрої. Будь ласка, скористайтеся підтримуваним пристроєм або додайте інших провайдерів, які мають кращу підтримку різних пристроїв (наприклад, програму авторизації).</value>
</data>
<data name="RecoveryCodeTitle" xml:space="preserve">
<value>Код відновлення</value>
@@ -878,17 +878,17 @@
<comment>The placeholder will show the file size of the attachment. Ex "25 MB"</comment>
</data>
<data name="AuthenticatorKey" xml:space="preserve">
<value>Ключ автентифікації (TOTP)</value>
<value>Ключ авторизації (TOTP)</value>
</data>
<data name="VerificationCodeTotp" xml:space="preserve">
<value>Код підтвердження (TOTP)</value>
<comment>Totp code label</comment>
</data>
<data name="AuthenticatorKeyAdded" xml:space="preserve">
<value>Ключ автентифікації додано.</value>
<value>Ключ авторизації додано.</value>
</data>
<data name="AuthenticatorKeyReadError" xml:space="preserve">
<value>Не вдається прочитати ключ автентифікації.</value>
<value>Не вдається прочитати ключ авторизації.</value>
</data>
<data name="PointYourCameraAtTheQRCode" xml:space="preserve">
<value>Наведіть свою камеру на QR-код.
@@ -907,7 +907,7 @@
<value>Копіювати TOTP</value>
</data>
<data name="CopyTotpAutomaticallyDescription" xml:space="preserve">
<value>Якщо запис має ключ автентифікації, копіювати код підтвердження TOTP до буфера обміну під час автозаповнення.</value>
<value>Якщо запис має ключ авторизації, копіювати код підтвердження TOTP до буфера обміну під час автозаповнення.</value>
</data>
<data name="CopyTotpAutomatically" xml:space="preserve">
<value>Автоматично копіювати коди TOTP</value>
@@ -2110,13 +2110,13 @@
<value>FIDO2 WebAuthn</value>
</data>
<data name="Fido2Instruction" xml:space="preserve">
<value>Щоб продовжити, приготуйте свій ключ безпеки FIDO2 WebAuthn, потім дотримуйтесь настанов після натискання "Автентифікація WebAuthn" на наступному екрані.</value>
<value>Щоб продовжити, приготуйте свій увімкнений ключ безпеки FIDO2 WebAuthn, потім дотримуйтесь настанов після натискання "Авторизація WebAuthn" на наступному екрані.</value>
</data>
<data name="Fido2Desc" xml:space="preserve">
<value>Автентифікація з використанням FIDO2 WebAuthn. Ви можете пройти автентифікацію за допомогою зовнішнього ключа безпеки.</value>
<value>Авторизація з використанням FIDO2 WebAuthn. Ви можете авторизуватися за допомогою зовнішнього ключа безпеки.</value>
</data>
<data name="Fido2AuthenticateWebAuthn" xml:space="preserve">
<value>Автентифікація WebAuthn</value>
<value>Авторизація WebAuthn</value>
</data>
<data name="Fido2ReturnToApp" xml:space="preserve">
<value>Повернутися до програми</value>
@@ -2272,7 +2272,7 @@
<value>Необхідна передплата преміум</value>
</data>
<data name="CannotAddAuthenticatorKey" xml:space="preserve">
<value>Не вдається додати ключ автентифікації? </value>
<value>Не вдається додати ключ авторизації? </value>
</data>
<data name="ScanQRCode" xml:space="preserve">
<value>Сканувати QR-код</value>
@@ -2281,7 +2281,7 @@
<value>Не вдається сканувати QR-код? </value>
</data>
<data name="AuthenticatorKeyScanner" xml:space="preserve">
<value>Ключ автентифікації</value>
<value>Ключ авторизації</value>
</data>
<data name="EnterKeyManually" xml:space="preserve">
<value>Введіть ключ вручну</value>

View File

@@ -885,17 +885,17 @@
<comment>Totp code label</comment>
</data>
<data name="AuthenticatorKeyAdded" xml:space="preserve">
<value>已添加验证器密钥。</value>
<value>验证器密钥已添加。</value>
</data>
<data name="AuthenticatorKeyReadError" xml:space="preserve">
<value>无法读取验证器密钥。</value>
</data>
<data name="PointYourCameraAtTheQRCode" xml:space="preserve">
<value>将您的摄像头对准二维码。
<value>将您的摄像头对准 QR 码。
扫描将自动完成。</value>
</data>
<data name="ScanQrTitle" xml:space="preserve">
<value>扫描二维码</value>
<value>扫描 QR 码</value>
</data>
<data name="Camera" xml:space="preserve">
<value>相机</value>
@@ -2275,10 +2275,10 @@
<value>无法添加验证器密钥?</value>
</data>
<data name="ScanQRCode" xml:space="preserve">
<value>扫描二维码</value>
<value>扫描 QR 码</value>
</data>
<data name="CannotScanQRCode" xml:space="preserve">
<value>无法扫描二维码吗? </value>
<value>无法扫描 QR 码吗? </value>
</data>
<data name="AuthenticatorKeyScanner" xml:space="preserve">
<value>验证器密钥</value>

View File

@@ -2862,12 +2862,12 @@
<value>帳戶已登出。</value>
</data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>您的組織權限已更新,需要您設定主密碼。</value>
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>您的組織要求您設定主密碼。</value>
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>設定一個解鎖方式來變更您的密碼庫逾時動作。</value>
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root>

View File

@@ -63,7 +63,5 @@ namespace Bit.Core.Abstractions
Task<UserKey> DecryptAndMigrateOldPinKeyAsync(bool masterPasswordOnRestart, string pin, string email, KdfConfig kdfConfig, EncString oldPinKey);
Task<MasterKey> GetOrDeriveMasterKeyAsync(string password, string userId = null);
Task UpdateMasterKeyAndUserKeyAsync(MasterKey masterKey);
Task<string> HashAsync(string value, CryptoHashAlgorithm hashAlgorithm);
Task<bool> ValidateUriChecksumAsync(EncString remoteUriChecksum, string rawUri, string orgId, SymmetricCryptoKey key);
}
}

View File

@@ -70,7 +70,7 @@ namespace Bit.Core
public const int Argon2Parallelism = 4;
public const int MasterPasswordMinimumChars = 12;
public const int CipherKeyRandomBytesLength = 64;
public const string CipherKeyEncryptionMinServerVersion = "2023.12.0";
public const string CipherKeyEncryptionMinServerVersion = "2024.1.0";
public const string DefaultFido2CredentialType = "public-key";
public const string DefaultFido2CredentialAlgorithm = "ECDSA";
public const string DefaultFido2CredentialCurve = "P-256";

View File

@@ -13,11 +13,6 @@
/// </summary>
public const string WEB_VAULT_SETTINGS_FORMAT = "{0}/#/settings";
/// <summary>
/// Link to go to individual vault import page. Requires to pass vault URL as parameter.
/// </summary>
public const string WEB_VAULT_TOOLS_IMPORT_FORMAT = "{0}/#/tools/import";
/// <summary>
/// General website, not in the full format of a URL given that this is used as parameter of string resources to be shown to the user.
/// </summary>

View File

@@ -6,6 +6,5 @@ namespace Bit.Core.Models.Api
{
public string Uri { get; set; }
public UriMatchType? Match { get; set; }
public string UriChecksum { get; set; }
}
}

View File

@@ -11,11 +11,9 @@ namespace Bit.Core.Models.Data
{
Uri = data.Uri;
Match = data.Match;
UriChecksum = data.UriChecksum;
}
public string Uri { get; set; }
public UriMatchType? Match { get; set; }
public string UriChecksum { get; set; }
}
}

View File

@@ -115,7 +115,7 @@ namespace Bit.Core.Models.Domain
switch (Type)
{
case Enums.CipherType.Login:
model.Login = await Login.DecryptAsync(OrganizationId, Key == null, model.Key);
model.Login = await Login.DecryptAsync(OrganizationId, model.Key);
break;
case Enums.CipherType.SecureNote:
model.SecureNote = await SecureNote.DecryptAsync(OrganizationId, model.Key);

View File

@@ -2,10 +2,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Bit.Core.Abstractions;
using Bit.Core.Models.Data;
using Bit.Core.Models.View;
using Bit.Core.Utilities;
namespace Bit.Core.Models.Domain
{
@@ -33,7 +31,7 @@ namespace Bit.Core.Models.Domain
public EncString Totp { get; set; }
public List<Fido2Credential> Fido2Credentials { get; set; }
public async Task<LoginView> DecryptAsync(string orgId, bool bypassUriChecksumValidation, SymmetricCryptoKey key = null)
public async Task<LoginView> DecryptAsync(string orgId, SymmetricCryptoKey key = null)
{
var view = await DecryptObjAsync(new LoginView(this), this, new HashSet<string>
{
@@ -43,15 +41,10 @@ namespace Bit.Core.Models.Domain
}, orgId, key);
if (Uris != null)
{
var cryptoService = ServiceContainer.Resolve<ICryptoService>();
view.Uris = new List<LoginUriView>();
foreach (var uri in Uris)
{
var loginUriView = await uri.DecryptAsync(orgId, key);
if (bypassUriChecksumValidation || await cryptoService.ValidateUriChecksumAsync(uri.UriChecksum, loginUriView.Uri, orgId, key))
{
view.Uris.Add(loginUriView);
}
view.Uris.Add(await uri.DecryptAsync(orgId, key));
}
}
if (Fido2Credentials != null)

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
@@ -11,8 +10,7 @@ namespace Bit.Core.Models.Domain
{
private HashSet<string> _map = new HashSet<string>
{
nameof(Uri),
nameof(UriChecksum)
"Uri"
};
public LoginUri() { }
@@ -25,11 +23,10 @@ namespace Bit.Core.Models.Domain
public EncString Uri { get; set; }
public UriMatchType? Match { get; set; }
public EncString UriChecksum { get; set; }
public Task<LoginUriView> DecryptAsync(string orgId, SymmetricCryptoKey key = null)
{
return DecryptObjAsync(new LoginUriView(this), this, _map.Where(m => m != nameof(UriChecksum)).ToHashSet<string>(), orgId, key);
return DecryptObjAsync(new LoginUriView(this), this, _map, orgId, key);
}
public LoginUriData ToLoginUriData()

View File

@@ -17,12 +17,10 @@ namespace Bit.Core.Models.Export
{
Match = obj.Match;
Uri = obj.Uri?.EncryptedString;
UriChecksum = obj.UriChecksum?.EncryptedString;
}
public UriMatchType? Match { get; set; }
public string Uri { get; set; }
public string UriChecksum { get; set; }
public static LoginUriView ToView(LoginUri req, LoginUriView view = null)
{

View File

@@ -27,7 +27,7 @@ namespace Bit.Core.Models.Request
Login = new LoginApi
{
Uris = cipher.Login.Uris?.Select(
u => new LoginUriApi { Match = u.Match, Uri = u.Uri?.EncryptedString, UriChecksum = u.UriChecksum?.EncryptedString }).ToList(),
u => new LoginUriApi { Match = u.Match, Uri = u.Uri?.EncryptedString }).ToList(),
Username = cipher.Login.Username?.EncryptedString,
Password = cipher.Login.Password?.EncryptedString,
PasswordRevisionDate = cipher.Login.PasswordRevisionDate,

View File

@@ -593,8 +593,7 @@ namespace Bit.Core.Services
public Task<PasswordlessLoginResponse> PostCreateRequestAsync(PasswordlessCreateLoginRequest passwordlessCreateLoginRequest, AuthRequestType authRequestType)
{
return SendAsync<object, PasswordlessLoginResponse>(HttpMethod.Post, authRequestType == AuthRequestType.AdminApproval ? "/auth-requests/admin-request" : "/auth-requests", passwordlessCreateLoginRequest, authRequestType == AuthRequestType.AdminApproval, true,
(message) => message.Headers.Add("Device-Identifier", passwordlessCreateLoginRequest.DeviceIdentifier));
return SendAsync<object, PasswordlessLoginResponse>(HttpMethod.Post, authRequestType == AuthRequestType.AdminApproval ? "/auth-requests/admin-request" : "/auth-requests", passwordlessCreateLoginRequest, authRequestType == AuthRequestType.AdminApproval, true);
}
public Task<PasswordlessLoginResponse> PutAuthRequestAsync(string id, string encKey, string encMasterPasswordHash, string deviceIdentifier, bool requestApproved)
@@ -630,7 +629,7 @@ namespace Bit.Core.Services
public async Task<SsoPrevalidateResponse> PreValidateSsoAsync(string identifier)
{
var path = "/sso/prevalidate?domainHint=" + WebUtility.UrlEncode(identifier);
var path = "/account/prevalidate?domainHint=" + WebUtility.UrlEncode(identifier);
using (var requestMessage = new HttpRequestMessage())
{
requestMessage.Version = new Version(1, 0);

View File

@@ -1,4 +1,4 @@
#define ENABLE_NEW_CIPHER_KEY_ENCRYPTION_ON_CREATION
//#define ENABLE_NEW_CIPHER_KEY_ENCRYPTION_ON_CREATION
using System;
using System.Collections.Generic;
@@ -1146,15 +1146,13 @@ namespace Bit.Core.Services
if (model.Login.Uris != null)
{
cipher.Login.Uris = new List<LoginUri>();
foreach (var uri in model.Login.Uris.Where(u => u.Uri != null))
foreach (var uri in model.Login.Uris)
{
var loginUri = new LoginUri
{
Match = uri.Match
};
await EncryptObjPropertyAsync(uri, loginUri, new HashSet<string> { "Uri" }, key);
var uriHash = await _cryptoService.HashAsync(uri.Uri, CryptoHashAlgorithm.Sha256);
loginUri.UriChecksum = await _cryptoService.EncryptAsync(uriHash, key);
cipher.Login.Uris.Add(loginUri);
}
}

View File

@@ -19,7 +19,6 @@ namespace Bit.Core.Services
private readonly IStateService _stateService;
private readonly ICryptoFunctionService _cryptoFunctionService;
private readonly ILogger _logger;
private SymmetricCryptoKey _legacyEtmKey;
private string _masterKeyHash;
@@ -30,12 +29,10 @@ namespace Bit.Core.Services
public CryptoService(
IStateService stateService,
ICryptoFunctionService cryptoFunctionService,
ILogger logger)
ICryptoFunctionService cryptoFunctionService)
{
_stateService = stateService;
_cryptoFunctionService = cryptoFunctionService;
_logger = logger;
}
public void ClearCache()
@@ -733,33 +730,6 @@ namespace Bit.Core.Services
}
}
public async Task<string> HashAsync(string value, CryptoHashAlgorithm hashAlgorithm)
{
var hashArray = await _cryptoFunctionService.HashAsync(value, hashAlgorithm);
return Convert.ToBase64String(hashArray);
}
public async Task<bool> ValidateUriChecksumAsync(EncString remoteUriChecksum, string rawUri, string orgId, SymmetricCryptoKey key)
{
try
{
if (remoteUriChecksum == null)
{
return false;
}
var localChecksum = await HashAsync(rawUri, CryptoHashAlgorithm.Sha256);
var remoteChecksum = await remoteUriChecksum.DecryptAsync(orgId, key);
return remoteChecksum == localChecksum;
}
catch (Exception ex)
{
_logger.Exception(ex);
return false;
}
}
// --HELPER METHODS--
private async Task StoreAdditionalKeysAsync(UserKey userKey, string userId = null)

View File

@@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>com.8bit.bitwarden.autofill</string>
<key>CFBundleShortVersionString</key>
<string>2024.1.1</string>
<string>2023.12.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleLocalizations</key>

View File

@@ -38,11 +38,10 @@ namespace Bit.iOS.Core.Renderers.CollectionView
// Do nothing in here, this is temporary to get more info about the crash, if the logger fails, we want to get the info
// by crashing with the original exception and not the logger one
}
if (ex is IndexOutOfRangeException || ex is ArgumentOutOfRangeException)
if (ex is IndexOutOfRangeException)
{
return;
}
throw colEx;
}
}

View File

@@ -113,7 +113,7 @@ namespace Bit.iOS.Core.Utilities
var platformUtilsService = new MobilePlatformUtilsService(deviceActionService, clipboardService,
messagingService, broadcasterService);
var cryptoFunctionService = new PclCryptoFunctionService(cryptoPrimitiveService);
var cryptoService = new CryptoService(stateService, cryptoFunctionService, logger);
var cryptoService = new CryptoService(stateService, cryptoFunctionService);
var biometricService = new BiometricService(stateService, cryptoService);
var userPinService = new UserPinService(stateService, cryptoService);
var passwordRepromptService = new MobilePasswordRepromptService(platformUtilsService, cryptoService, stateService);

View File

@@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>com.8bit.bitwarden.find-login-action-extension</string>
<key>CFBundleShortVersionString</key>
<string>2024.1.1</string>
<string>2023.12.1</string>
<key>CFBundleLocalizations</key>
<array>
<string>en</string>

View File

@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>2024.1.1</string>
<string>2023.12.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>MinimumOSVersion</key>

View File

@@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>com.8bit.bitwarden</string>
<key>CFBundleShortVersionString</key>
<string>2024.1.1</string>
<string>2023.12.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleIconName</key>

View File

@@ -5,6 +5,6 @@
"SyncingItemsContainingVerificationCodes" = "Syncing items containing verification codes";
"UnlockBitwardenOnYourIPhoneToViewVerificationCodes" = "Unlock Bitwarden on your iPhone to view verification codes";
"SetUpBitwardenToViewItemsContainingVerificationCodes" = "Set up Bitwarden to view items containing verification codes";
"Search" = "Chwilio";
"Search" = "Search";
"NoItemsFound" = "No items found";
"SetUpAppleWatchPasscodeInOrderToUseBitwarden" = "Set up Apple Watch passcode in order to use Bitwarden";

View File

@@ -1,10 +1,10 @@
"ThereAreNoItemsToList" = "Δεν υπάρχουν στοιχεία στη λίστα";
"ToViewVerificationCodesUpgradeToPremium" = "Για να δείτε τους κωδικούς επαλήθευσης, αναβαθμίστε σε premium";
"Add2FactorAutenticationToAnItemToViewVerificationCodes" = "Προσθέστε έλεγχο ταυτότητας 2 παραγόντων σε ένα στοιχείο για να δείτε τους κωδικούς επαλήθευσης";
"LogInToBitwardenOnYourIPhoneToViewVerificationCodes" = "Συνδεθείτε στο Bitwarden στο iPhone σας για να δείτε τους κωδικούς επαλήθευσης";
"SyncingItemsContainingVerificationCodes" = "Συγχρονισμός στοιχείων που περιέχουν κωδικούς επαλήθευσης";
"UnlockBitwardenOnYourIPhoneToViewVerificationCodes" = "Ξεκλειδώστε το Bitwarden στο iPhone σας για να δείτε τους κωδικούς επαλήθευσης";
"SetUpBitwardenToViewItemsContainingVerificationCodes" = "Ρυθμίστε το Bitwarden για να δείτε τα στοιχεία που περιέχουν κωδικούς επαλήθευσης";
"Search" = "Αναζήτηση";
"NoItemsFound" = "Δεν βρέθηκαν στοιχεία";
"SetUpAppleWatchPasscodeInOrderToUseBitwarden" = "Ρυθμίστε κωδικό πρόσβασης στο Apple Watch για να χρησιμοποιήσετε Bitwarden";
"ThereAreNoItemsToList" = "There are no items to list";
"ToViewVerificationCodesUpgradeToPremium" = "To view verification codes, upgrade to premium";
"Add2FactorAutenticationToAnItemToViewVerificationCodes" = "Add 2 factor authentication to an item to view the verification codes";
"LogInToBitwardenOnYourIPhoneToViewVerificationCodes" = "Log in to Bitwarden on your iPhone to view verification codes";
"SyncingItemsContainingVerificationCodes" = "Syncing items containing verification codes";
"UnlockBitwardenOnYourIPhoneToViewVerificationCodes" = "Unlock Bitwarden on your iPhone to view verification codes";
"SetUpBitwardenToViewItemsContainingVerificationCodes" = "Set up Bitwarden to view items containing verification codes";
"Search" = "Search";
"NoItemsFound" = "No items found";
"SetUpAppleWatchPasscodeInOrderToUseBitwarden" = "Set up Apple Watch passcode in order to use Bitwarden";

View File

@@ -5,6 +5,6 @@
"SyncingItemsContainingVerificationCodes" = "वेरीफिकेशन कोड वाले चीज़ें सिंक कर रहे";
"UnlockBitwardenOnYourIPhoneToViewVerificationCodes" = "वेरीफिकेशन कोड देखने के लिए अपने आईफोन पे बिटवार्डन खोलें";
"SetUpBitwardenToViewItemsContainingVerificationCodes" = "वेरीफिकेशन कोड वाले चीज़ें देखने के लिए बिटवार्डन सेट करें";
"Search" = "सर्च करें";
"NoItemsFound" = "कोई आइटम नहीं मिला";
"Search" = "खोजें";
"NoItemsFound" = "कोई चीज़ नहीं मिला";
"SetUpAppleWatchPasscodeInOrderToUseBitwarden" = "बिटवार्डन इस्तेमाल करने के लिए एप्पल वॉच पासकोड सेट करें";

View File

@@ -132,7 +132,7 @@ Luo usein käyttämillesi sivustoille automaattisesti vahvoja, yksilöllisiä ja
Bitwarden Send -ominaisuudella lähetät tietoa nopeasti salattuna — tiedostoja ja tekstiä — suoraan kenelle tahansa.
Yritystoimintaan Bitwarden tarjoaa yrityksille Teams- ja Enterprise-tilaukset, jotta salasanojen jakaminen kollegoiden kesken on turvallista.
Yritystoimintaan Bitwarden tarjoaa tilaukset Tiimeille ja Yrityksille, jotta salasanojen jakaminen kollegoiden kesken on turvallista.
Miksi Bitwarden?:
@@ -164,7 +164,7 @@ Suojaa, käytä ja jaa Bitwarden-holvisi arkaluontoisia tietoja kaikilla selaimi
<value>Suojaa holvisi Touch ID:llä, PIN-koodilla tai pääsalasanalla</value>
</data>
<data name="Screenshot4" xml:space="preserve">
<value>Täytä kirjautumistietoja Safariin, Chromeen ja moniin muihin sovelluksiin</value>
<value>Automaattitäytä kirjautumistiedot Safarissa, Chromessa sekä lukuisissa muissa sovelluksissa</value>
</data>
<data name="Screenshot5" xml:space="preserve">
<value>Synkronoi ja hallitse holviasi useilla laitteilla</value>

View File

@@ -136,7 +136,7 @@ Luo usein käyttämillesi sivustoille automaattisesti vahvoja, yksilöllisiä ja
Bitwarden Send -ominaisuudella lähetät tietoa nopeasti salattuna — tiedostoja ja tekstiä — suoraan kenelle tahansa.
Yritystoimintaan Bitwarden tarjoaa yrityksille Teams- ja Enterprise-tilaukset, jotta salasanojen jakaminen kollegoiden kesken on turvallista.
Yritystoimintaan Bitwarden tarjoaa tilaukset Tiimeille ja Yrityksille, jotta salasanojen jakaminen kollegoiden kesken on turvallista.
Miksi Bitwarden?:
@@ -167,7 +167,7 @@ Suojaa, käytä ja jaa Bitwarden-holvisi arkaluontoisia tietoja kaikilla selaimi
<value>Suojaa holvisi sormenjäljellä, PIN-koodilla tai pääsalasanalla</value>
</data>
<data name="Screenshot4" xml:space="preserve">
<value>Täytä kirjautumistietoja nopeasti selaimeen ja muihin sovelluksiin</value>
<value>Automaattitäytä kirjautumistiedot ja nopeasti selaimessasi sekä muissa sovelluksissa</value>
</data>
<data name="Screenshot5" xml:space="preserve">
<value>Synkronoi ja hallitse holviasi useilla laitteilla