chromium/chromeos/ash/components/osauth/impl/auth_engine_api_impl.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ash/components/osauth/public/auth_engine_api.h"

#include <string>

#include "base/check_op.h"
#include "chromeos/ash/components/osauth/impl/auth_hub_common.h"
#include "chromeos/ash/components/osauth/impl/engines/cryptohome_password_engine.h"
#include "chromeos/ash/components/osauth/impl/engines/cryptohome_pin_engine.h"
#include "chromeos/ash/components/osauth/public/common_types.h"

namespace ash {

// static
void AuthEngineApi::AuthenticateWithPassword(AuthHubConnector* connector,
                                             AshAuthFactor factor,
                                             const std::string& raw_password) {
  CHECK_EQ(factor, AshAuthFactor::kGaiaPassword);
  CryptohomePasswordEngine* engine =
      static_cast<CryptohomePasswordEngine*>(connector->GetEngine(factor));
  engine->PerformPasswordAttempt(raw_password);
}

void AuthEngineApi::AuthenticateWithPin(AuthHubConnector* connector,
                                        AshAuthFactor factor,
                                        const std::string& raw_pin) {
  CHECK_EQ(factor, AshAuthFactor::kCryptohomePin);
  CryptohomePinEngine* engine =
      static_cast<CryptohomePinEngine*>(connector->GetEngine(factor));
  engine->PerformPinAttempt(raw_pin);
}

}  // namespace ash