chromium/ios/chrome/credential_provider_extension/password_util.mm

// 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;
}