blob: 8fc203df9ebd852f5aaec9b8c64ddae3dd18289b [file] [log] [blame]
// 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
) -> (vector<uint8>:MAX_HARDWARE_DERIVED_KEY_SIZE derived_key) error Error;
};