| // Copyright 2019 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.kms; |
| |
| const MAX_HARDWARE_DERIVE_KEY_INFO_SIZE uint8 = 32; |
| const MAX_HARDWARE_DERIVED_KEY_SIZE uint8 = 32; |
| |
| @discoverable |
| protocol StatelessKeyManager { |
| /// Get a hardware key derived key. |
| /// |
| /// Get a key derived from hardware root key using `key_info` as info and the trusted app ID |
| /// as salt. This call is deterministic and always returns the same result if given the same |
| /// `key_info` on the same device and would be different across different devices if they have |
| /// different hardware keys. |
| GetHardwareDerivedKey(struct { |
| key_info vector<uint8>:MAX_HARDWARE_DERIVE_KEY_INFO_SIZE; |
| }) -> (struct { |
| derived_key vector<uint8>:MAX_HARDWARE_DERIVED_KEY_SIZE; |
| }) error Error; |
| }; |