| // Copyright 2023 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BIOD_PAIRING_KEY_STORAGE_H_ |
| #define BIOD_PAIRING_KEY_STORAGE_H_ |
| |
| #include <optional> |
| |
| #include <brillo/secure_blob.h> |
| |
| namespace biod { |
| |
| // This class handles the persistent storage of the pairing key (Pk). It is |
| // only established once per powerwash cycle, and on every boot we need to load |
| // the Pk back to the AuthStack. Aside from the Pk itself, the AuthStack might |
| // need other key materials/metadata to load the Pk, and we put those in a |
| // PkInfo blob. |
| class PairingKeyStorage { |
| public: |
| virtual ~PairingKeyStorage() = default; |
| |
| virtual bool PairingKeyExists() = 0; |
| virtual std::optional<brillo::Blob> ReadWrappedPairingKey() = 0; |
| virtual bool WriteWrappedPairingKey( |
| const brillo::Blob& wrapped_pairing_key) = 0; |
| }; |
| |
| } // namespace biod |
| |
| #endif // BIOD_PAIRING_KEY_STORAGE_H_ |