mirror of
https://github.com/bitwarden/mobile
synced 2025-12-05 23:53:33 +00:00
Compare commits
3 Commits
vault/pm-4
...
v2024.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcba6384a7 | ||
|
|
8cc227715f | ||
|
|
d20384ec31 |
12
.github/CODEOWNERS
vendored
12
.github/CODEOWNERS
vendored
@@ -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
16
.github/renovate.json
vendored
@@ -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
2
package-lock.json
generated
@@ -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": {
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
"clean:l10n": "git push origin --delete l10n_master"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gh-pages": "3.2.3"
|
||||
"gh-pages": "^3.2.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
<BoxView StyleClass="box-row-separator" />
|
||||
|
||||
<controls:ExternalLinkItemView
|
||||
Title="{u:I18n ContactBitwardenSupport}"
|
||||
GoToLinkCommand="{Binding ContactBitwardenSupportCommand}"
|
||||
Title="{u:I18n PrivacyPolicy}"
|
||||
GoToLinkCommand="{Binding GoToPrivacyPolicyCommand}"
|
||||
StyleClass="settings-external-link-item"
|
||||
HorizontalOptions="FillAndExpand" />
|
||||
<BoxView StyleClass="box-row-separator" />
|
||||
|
||||
@@ -36,10 +36,10 @@ namespace Bit.App.Pages
|
||||
AppResources.ContinueToHelpCenter,
|
||||
ExternalLinksConstants.HELP_CENTER));
|
||||
|
||||
ContactBitwardenSupportCommand = CreateDefaultAsyncCommnad(
|
||||
() => LaunchUriAsync(AppResources.ContactSupportDescriptionLong,
|
||||
AppResources.ContinueToContactSupport,
|
||||
ExternalLinksConstants.CONTACT_SUPPORT));
|
||||
GoToPrivacyPolicyCommand = CreateDefaultAsyncCommnad(
|
||||
() => LaunchUriAsync(AppResources.PrivacyPolicyDescriptionLong,
|
||||
AppResources.ContinueToPrivacyPolicy,
|
||||
ExternalLinksConstants.PRIVACY_POLICY));
|
||||
|
||||
GoToWebVaultCommand = CreateDefaultAsyncCommnad(
|
||||
() => LaunchUriAsync(AppResources.ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp,
|
||||
@@ -82,7 +82,7 @@ namespace Bit.App.Pages
|
||||
|
||||
public AsyncCommand ToggleSubmitCrashLogsCommand { get; }
|
||||
public ICommand GoToHelpCenterCommand { get; }
|
||||
public ICommand ContactBitwardenSupportCommand { get; }
|
||||
public ICommand GoToPrivacyPolicyCommand { get; }
|
||||
public ICommand GoToWebVaultCommand { get; }
|
||||
public ICommand GoToLearnAboutOrgsCommand { get; }
|
||||
public ICommand RateTheAppCommand { get; }
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
18
src/App/Resources/AppResources.Designer.cs
generated
18
src/App/Resources/AppResources.Designer.cs
generated
@@ -1714,6 +1714,15 @@ namespace Bit.App.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Continue to privacy policy?.
|
||||
/// </summary>
|
||||
public static string ContinueToPrivacyPolicy {
|
||||
get {
|
||||
return ResourceManager.GetString("ContinueToPrivacyPolicy", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Continue to web app?.
|
||||
/// </summary>
|
||||
@@ -5516,6 +5525,15 @@ namespace Bit.App.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Check out our privacy policy on bitwarden.com..
|
||||
/// </summary>
|
||||
public static string PrivacyPolicyDescriptionLong {
|
||||
get {
|
||||
return ResourceManager.GetString("PrivacyPolicyDescriptionLong", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications..
|
||||
/// </summary>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 automaattisesti leikepöydälle automaattisen täytön yhteydessä.</value>
|
||||
</data>
|
||||
<data name="CopyTotpAutomatically" xml:space="preserve">
|
||||
<value>TOTP-koodin kopiointi</value>
|
||||
@@ -1853,7 +1853,7 @@ Koodi skannataan automaattisesti.</value>
|
||||
<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>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
|
||||
@@ -2821,6 +2821,9 @@ Do you want to switch to this account?</value>
|
||||
<data name="ContinueToContactSupport" xml:space="preserve">
|
||||
<value>Continue to contact support?</value>
|
||||
</data>
|
||||
<data name="ContinueToPrivacyPolicy" xml:space="preserve">
|
||||
<value>Continue to privacy policy?</value>
|
||||
</data>
|
||||
<data name="ContinueToAppStore" xml:space="preserve">
|
||||
<value>Continue to app store?</value>
|
||||
</data>
|
||||
@@ -2840,6 +2843,9 @@ Do you want to switch to this account?</value>
|
||||
<data name="ContactSupportDescriptionLong" xml:space="preserve">
|
||||
<value>Can’t find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value>
|
||||
</data>
|
||||
<data name="PrivacyPolicyDescriptionLong" xml:space="preserve">
|
||||
<value>Check out our privacy policy on bitwarden.com.</value>
|
||||
</data>
|
||||
<data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve">
|
||||
<value>Explore more features of your Bitwarden account on the web app.</value>
|
||||
</data>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = "2023.9.1";
|
||||
public const string DefaultFido2CredentialType = "public-key";
|
||||
public const string DefaultFido2CredentialAlgorithm = "ECDSA";
|
||||
public const string DefaultFido2CredentialCurve = "P-256";
|
||||
|
||||
@@ -6,18 +6,13 @@
|
||||
public const string HELP_ABOUT_ORGANIZATIONS = "https://bitwarden.com/help/about-organizations/";
|
||||
public const string HELP_FINGERPRINT_PHRASE = "https://bitwarden.com/help/fingerprint-phrase/";
|
||||
|
||||
public const string CONTACT_SUPPORT = "https://bitwarden.com/contact/";
|
||||
public const string PRIVACY_POLICY = "https://bitwarden.com/privacy/";
|
||||
|
||||
/// <summary>
|
||||
/// Link to go to settings website. Requires to pass website URL as parameter.
|
||||
/// </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>
|
||||
|
||||
@@ -6,6 +6,5 @@ namespace Bit.Core.Models.Api
|
||||
{
|
||||
public string Uri { get; set; }
|
||||
public UriMatchType? Match { get; set; }
|
||||
public string UriChecksum { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -630,7 +630,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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
"SyncingItemsContainingVerificationCodes" = "वेरीफिकेशन कोड वाले चीज़ें सिंक कर रहे";
|
||||
"UnlockBitwardenOnYourIPhoneToViewVerificationCodes" = "वेरीफिकेशन कोड देखने के लिए अपने आईफोन पे बिटवार्डन खोलें";
|
||||
"SetUpBitwardenToViewItemsContainingVerificationCodes" = "वेरीफिकेशन कोड वाले चीज़ें देखने के लिए बिटवार्डन सेट करें";
|
||||
"Search" = "सर्च करें";
|
||||
"NoItemsFound" = "कोई आइटम नहीं मिला";
|
||||
"Search" = "खोजें";
|
||||
"NoItemsFound" = "कोई चीज़ नहीं मिला";
|
||||
"SetUpAppleWatchPasscodeInOrderToUseBitwarden" = "बिटवार्डन इस्तेमाल करने के लिए एप्पल वॉच पासकोड सेट करें";
|
||||
|
||||
@@ -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?:
|
||||
|
||||
|
||||
@@ -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?:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user