| // Copyright 2022 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CRYPTOHOME_ERROR_CONVERTER_H_ |
| #define CRYPTOHOME_ERROR_CONVERTER_H_ |
| |
| #include <vector> |
| |
| #include <base/callback.h> |
| #include <cryptohome/proto_bindings/UserDataAuth.pb.h> |
| |
| #include "cryptohome/crypto_error.h" |
| #include "cryptohome/error/cryptohome_crypto_error.h" |
| #include "cryptohome/error/cryptohome_error.h" |
| |
| namespace cryptohome { |
| |
| namespace error { |
| |
| // This file hosts utilities that converts the CryptohomeError class into the |
| // error format on the dbus. |
| |
| // Retrieves the legacy CryptohomeErrorCode from the stack of errors. |
| user_data_auth::CryptohomeErrorCode LegacyErrorCodeFromStack( |
| const hwsec_foundation::status::StatusChain<CryptohomeError>& stack); |
| |
| // CryptohomeErrorToUserDataAuthError converts the CryptohomeError class into |
| // the error protobuf that is used by the dbus API (userdataauth). |
| user_data_auth::CryptohomeErrorInfo CryptohomeErrorToUserDataAuthError( |
| const hwsec_foundation::status::StatusChain<CryptohomeError>& err, |
| user_data_auth::CryptohomeErrorCode* legacy_ec); |
| |
| // ReplyWithError() is a helper utility that takes the information in |
| // CryptohomeError and populates the relevant fields in the reply then call the |
| // on_done helper function. |
| template <typename ReplyType> |
| void ReplyWithError( |
| base::OnceCallback<void(const ReplyType&)> on_done, |
| const ReplyType& reply, |
| const hwsec_foundation::status::StatusChain<CryptohomeError>& err); |
| |
| } // namespace error |
| |
| } // namespace cryptohome |
| |
| #endif // CRYPTOHOME_ERROR_CONVERTER_H_ |