| /* |
| * Copyright 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef SECURE_STORAGE_H_ |
| #define SECURE_STORAGE_H_ |
| |
| #include <stddef.h> |
| #include <stdint.h> |
| |
| namespace avb { |
| |
| // Abstract interface for secure storage. |
| class SecureStorageInterface { |
| public: |
| SecureStorageInterface() = default; |
| virtual ~SecureStorageInterface() = default; |
| |
| // SecureStorageInterface is neither copyable nor moveable |
| SecureStorageInterface(const SecureStorageInterface&) = delete; |
| SecureStorageInterface& operator=(const SecureStorageInterface&) = delete; |
| |
| // Opens a file in secure storage named |filename|. |
| // |
| // Returns NO_ERROR on success, negative error code on failure. |
| virtual int open(const char* filename) = 0; |
| |
| // Deletes a file in secure storage named |filename|. |
| // |
| // Returns NO_ERROR on success, negative error code on failure. |
| virtual int delete_file(const char* filename) = 0; |
| |
| // Reads |size| bytes into |buf| from the file starting at offset |off|. The |
| // file must have been previously opened by open(). |
| // |
| // Returns number of bytes read on success, negative error code on failure. |
| virtual int read(uint64_t off, void* buf, size_t size) const = 0; |
| |
| // Gets the size of the file in secure storage previously opened with open() |
| // and stores it in |size|. |
| // |
| // Returns NO_ERROR on success, negative error code on failure. |
| virtual int get_file_size(uint64_t* size) const = 0; |
| |
| // Writes |size| bytes from |buf| into the file starting at offset |off|. |
| // The file must have been previously opened by open(). |
| // |
| // Returns number of bytes written on succes, negative error code on |
| // failure. |
| virtual int write(uint64_t off, const void* buf, size_t size) const = 0; |
| }; |
| |
| } // namespace avb |
| |
| #endif // SECURE_STORAGE_H_ |