| // Copyright 2022 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "libhwsec/backend/tpm1/pinweaver.h" | |
| #include <cstdint> | |
| #include <optional> | |
| #include <vector> | |
| #include <brillo/secure_blob.h> | |
| #include "libhwsec/status.h" | |
| using hwsec_foundation::status::MakeStatus; | |
| namespace hwsec { | |
| StatusOr<bool> PinWeaverTpm1::IsEnabled() { | |
| return false; | |
| } | |
| StatusOr<uint8_t> PinWeaverTpm1::GetVersion() { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> PinWeaverTpm1::Reset( | |
| uint32_t bits_per_level, uint32_t length_labels) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> PinWeaverTpm1::InsertCredential( | |
| const std::vector<OperationPolicySetting>& policies, | |
| const uint64_t label, | |
| const std::vector<brillo::Blob>& h_aux, | |
| const brillo::SecureBlob& le_secret, | |
| const brillo::SecureBlob& he_secret, | |
| const brillo::SecureBlob& reset_secret, | |
| const DelaySchedule& delay_schedule, | |
| std::optional<uint32_t> expiration_delay) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> PinWeaverTpm1::CheckCredential( | |
| const uint64_t label, | |
| const std::vector<brillo::Blob>& h_aux, | |
| const brillo::Blob& orig_cred_metadata, | |
| const brillo::SecureBlob& le_secret) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> PinWeaverTpm1::RemoveCredential( | |
| const uint64_t label, | |
| const std::vector<std::vector<uint8_t>>& h_aux, | |
| const std::vector<uint8_t>& mac) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> PinWeaverTpm1::ResetCredential( | |
| const uint64_t label, | |
| const std::vector<std::vector<uint8_t>>& h_aux, | |
| const std::vector<uint8_t>& orig_cred_metadata, | |
| const brillo::SecureBlob& reset_secret, | |
| bool strong_reset) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::GetLogResult> PinWeaverTpm1::GetLog( | |
| const brillo::Blob& cur_disk_root_hash) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::ReplayLogOperationResult> | |
| PinWeaverTpm1::ReplayLogOperation(const brillo::Blob& log_entry_root, | |
| const std::vector<brillo::Blob>& h_aux, | |
| const brillo::Blob& orig_cred_metadata) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<uint32_t> PinWeaverTpm1::GetWrongAuthAttempts( | |
| const brillo::Blob& cred_metadata) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::DelaySchedule> PinWeaverTpm1::GetDelaySchedule( | |
| const brillo::Blob& cred_metadata) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<uint32_t> PinWeaverTpm1::GetDelayInSeconds( | |
| const brillo::Blob& cred_metadata) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<std::optional<uint32_t>> PinWeaverTpm1::GetExpirationInSeconds( | |
| const brillo::Blob& cred_metadata) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::PinWeaverEccPoint> PinWeaverTpm1::GeneratePk( | |
| AuthChannel auth_channel, | |
| const PinWeaverTpm1::PinWeaverEccPoint& client_public_key) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> PinWeaverTpm1::InsertRateLimiter( | |
| AuthChannel auth_channel, | |
| const std::vector<OperationPolicySetting>& policies, | |
| const uint64_t label, | |
| const std::vector<brillo::Blob>& h_aux, | |
| const brillo::SecureBlob& reset_secret, | |
| const DelaySchedule& delay_schedule, | |
| std::optional<uint32_t> expiration_delay) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| StatusOr<PinWeaverTpm1::CredentialTreeResult> | |
| PinWeaverTpm1::StartBiometricsAuth(AuthChannel auth_channel, | |
| const uint64_t label, | |
| const std::vector<brillo::Blob>& h_aux, | |
| const brillo::Blob& orig_cred_metadata, | |
| const brillo::Blob& client_nonce) { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| Status PinWeaverTpm1::BlockGeneratePk() { | |
| return MakeStatus<TPMError>("Unsupported", TPMRetryAction::kNoRetry); | |
| } | |
| } // namespace hwsec |