| // 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 uint8 MAX_HARDWARE_DERIVE_KEY_INFO_SIZE = 32; |
| const uint8 MAX_HARDWARE_DERIVED_KEY_SIZE = 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( |
| vector<uint8>:MAX_HARDWARE_DERIVE_KEY_INFO_SIZE key_info |
| ) -> (Status status, vector<uint8>:MAX_HARDWARE_DERIVED_KEY_SIZE derived_key); |
| }; |