| // Copyright 2021 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 LIBHWSEC_FOUNDATION_TPM_ERROR_HANDLE_AUTH_FAILURE_H_ |
| #define LIBHWSEC_FOUNDATION_TPM_ERROR_HANDLE_AUTH_FAILURE_H_ |
| |
| #include <stddef.h> |
| |
| #include "libhwsec-foundation/hwsec-foundation_export.h" |
| #include "libhwsec-foundation/tpm_error/tpm_error_data.h" |
| |
| #if defined(__cplusplus) |
| extern "C" { |
| #endif |
| |
| // Iff there was an error while processing the AuthFailure functions |
| // store the error messages into |out| and return 1. |
| HWSEC_FOUNDATION_EXPORT int FetchAuthFailureError(char* out, size_t size); |
| |
| // Set the log path for the auth failure logging. |
| // |log_path| is only for current life cycle, and |permanent_log_path| is for |
| // all life cycle. |
| HWSEC_FOUNDATION_EXPORT void InitializeAuthFailureLogging( |
| const char* log_path, const char* permanent_log_path); |
| |
| // Iff there is any entry in |current_path| of the previous life cycle, |
| // move the entries to |previous_path| and return 1. |
| HWSEC_FOUNDATION_EXPORT int CheckAuthFailureHistory(const char* current_path, |
| const char* previous_path, |
| size_t* auth_failure_hash); |
| |
| // Handles the auth failure if necessary accordring to `data`, including |
| // resetting DA mitigation and error reporting. |
| HWSEC_FOUNDATION_EXPORT int HandleAuthFailure(const struct TpmErrorData* data); |
| |
| #if defined(__cplusplus) |
| } |
| #endif |
| |
| #endif // LIBHWSEC_FOUNDATION_TPM_ERROR_HANDLE_AUTH_FAILURE_H_ |