blob: af57c54b428b122f43c21d2a8a06c364f12f5048 [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;
};