blob: e6b16d2d432d59265e59e43e7d1105b83b4c9c29 [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
) -> (Status status, vector<uint8>:MAX_HARDWARE_DERIVED_KEY_SIZE derived_key);
};