| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "ios/chrome/credential_provider_extension/password_util.h" |
| |
| #import "base/logging.h" |
| #import "ios/chrome/common/app_group/app_group_metrics.h" |
| #import "ios/chrome/credential_provider_extension/metrics_util.h" |
| #import "ios/components/credential_provider_extension/password_util.h" |
| |
| NSString* PasswordWithKeychainIdentifier(NSString* identifier) { |
| if (!identifier) { |
| UpdateUMACountForKey( |
| app_group::kCredentialExtensionFetchPasswordNilArgumentCount); |
| return @""; |
| } |
| |
| NSString* password = |
| credential_provider_extension::PasswordWithKeychainIdentifier(identifier); |
| if (password) { |
| return password; |
| } |
| |
| UpdateUMACountForKey( |
| app_group::kCredentialExtensionFetchPasswordFailureCount); |
| return @""; |
| } |
| |
| BOOL StorePasswordInKeychain(NSString* password, NSString* identifier) { |
| if (!identifier || identifier.length == 0) { |
| return NO; |
| } |
| |
| BOOL stored_successfully = |
| credential_provider_extension::StorePasswordInKeychain(password, |
| identifier); |
| |
| if (!stored_successfully) { |
| UpdateUMACountForKey( |
| app_group::kCredentialExtensionKeychainSavePasswordFailureCount); |
| } |
| |
| return stored_successfully; |
| } |