| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.security.codelabsmartdoor; |
| |
| const uint8 TOKEN_ID_SIZE = 32; |
| |
| table Token { |
| 1: string:TOKEN_ID_SIZE id; |
| }; |
| |
| [Discoverable] |
| protocol Memory { |
| // Generate a random token that could be used to initialize a reader/writer. |
| GenerateToken() -> (Token token) error Error; |
| // Get a reader to read from smart door memory. The memory must have been |
| // previously written to using a writer obtained with the same token. |
| GetReader(Token token, request<Reader> request) -> () error Error; |
| // Get a writer to write to smart door memory. The token would be used to |
| // identify the storage that could be written to. |
| GetWriter(Token token, request<Writer> request) -> () error Error; |
| }; |
| |
| [Discoverable] |
| protocol MemoryReset { |
| // Reset all the smart door memory state. For test purposes. |
| Reset() -> (); |
| }; |
| |
| [Discoverable] |
| protocol Reader { |
| // Read all content in the smart door memory. |
| Read() -> (bytes:MAX bytes) error Error; |
| }; |
| |
| [Discoverable] |
| protocol Writer { |
| // Write the bytes into the smart door memory. |
| // If success, following reads should read the same bytes out. |
| Write(bytes:MAX bytes) -> (uint32 bytes_written) error Error; |
| }; |