1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
|
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// The messages in this file comprise the DBus/Proto interface for
// the new set of device_management daemon after the refactor, and the
// associated messages that's used by those interfaces.
// All input parameter to a call is named with a "Request" suffix,
// and all output parameter to a call is named with a "Reply" suffix.
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
package device_management;
option go_package = "go.chromium.org/chromiumos/system_api/device_management_proto";
///////////////////////////////////////////////////////////////////////////////
// Messages that's used by the actual request/reply goes below
///////////////////////////////////////////////////////////////////////////////
// Error codes do not need to be sequential per-call.
// Prefixes by Request/Reply type should be used to help
// callers know if specialized errors apply.
enum DeviceManagementErrorCode {
// No error: the operation succeeded.
DEVICE_MANAGEMENT_ERROR_NOT_SET = 0;
DEVICE_MANAGEMENT_ERROR_FIRMWARE_MANAGEMENT_PARAMETERS_INVALID = 1;
DEVICE_MANAGEMENT_ERROR_FIRMWARE_MANAGEMENT_PARAMETERS_CANNOT_STORE = 2;
DEVICE_MANAGEMENT_ERROR_FIRMWARE_MANAGEMENT_PARAMETERS_CANNOT_REMOVE = 3;
DEVICE_MANAGEMENT_ERROR_INSTALL_ATTRIBUTES_GET_FAILED = 4;
DEVICE_MANAGEMENT_ERROR_INSTALL_ATTRIBUTES_SET_FAILED = 5;
DEVICE_MANAGEMENT_ERROR_INSTALL_ATTRIBUTES_FINALIZE_FAILED = 6;
DEVICE_MANAGEMENT_ERROR_NOT_ENTERPRISED_OWNED = 7;
DEVICE_MANAGEMENT_ERROR_TPM_DEFEND_LOCK = 8;
}
// ----------------- Install Attributes Interface -----------------
// The possible states of Install Attributes module, this is used by
// InstallAttributesGetStatus().
enum InstallAttributesState {
// See InstallAttributes::Status in install_attributes.h for definition
// of these states.
UNKNOWN = 0;
TPM_NOT_OWNED = 1;
FIRST_INSTALL = 2;
VALID = 3;
INVALID = 4;
}
// Input parameters to InstallAttributesGet()
message InstallAttributesGetRequest {
// Name of the install attributes to retrieve.
// There's no explicit requirement about the name, so generally it can be
// any valid string.
string name = 1;
}
// Output parameters for InstallAttributesGet()
message InstallAttributesGetReply {
// Will be set if an error occurred.
DeviceManagementErrorCode error = 1;
// The value associated with the install attributes.
bytes value = 2;
}
// Input parameters to InstallAttributesSet()
message InstallAttributesSetRequest {
// Name of the install attributes to set.
// There's no explicit requirement about the name, so generally it can be
// any valid string.
string name = 1;
// Value to set for the install attributes.
bytes value = 2;
}
// Output parameters for InstallAttributesSet()
message InstallAttributesSetReply {
// Will be set if an error occurred.
DeviceManagementErrorCode error = 1;
}
// Input parameters to InstallAttributesFinalize()
message InstallAttributesFinalizeRequest {
// There's no parameters to InstallAttributesFinalize() right now.
}
// Output parameters for InstallAttributesFinalize()
message InstallAttributesFinalizeReply {
// If the install attributes are not finalized successfully, then this
// error code would be set. Otherwise, the install attribute is correctly
// finalized.
DeviceManagementErrorCode error = 1;
}
// Input parameters to InstallAttributesGetStatus()
message InstallAttributesGetStatusRequest {}
// Output parameters for InstallAttributesGetStatus()
message InstallAttributesGetStatusReply {
// If there's a problem retrieving the status, this will be set.
DeviceManagementErrorCode error = 1;
// How many install attributes are there?
int32 count = 2;
// Returns true if the attribute storage is securely stored. It does not
// indicate if the store has been finalized, just if the system TPM/Lockbox
// is being used.
bool is_secure = 3;
// The state the install attributes are in.
InstallAttributesState state = 4;
}
// Input parameters of EnterpriseOwnedGetStatus()
message EnterpriseOwnedGetStatusRequest {}
// Output parameters of EnterpriseOwnedGetStatus()
message EnterpriseOwnedGetStatusReply {
// If there's anything goes wrong while retrieving enterprise_owned status,
// then this will be set.
DeviceManagementErrorCode error = 1;
}
// ----------------- Firmware Management Parameters Interface -----------------
// This represents the content of Firmware Management Parameters
message FirmwareManagementParameters {
// The Developer Flags, this is part of the FWMP.
uint32 flags = 1;
// Developer Key Hash, this is part of the FWMP.
// For current version of the FWMP (V1.0), this is the size of SHA256.
bytes developer_key_hash = 2;
}
// Input parameters to GetFirmwareManagementParameters()
message GetFirmwareManagementParametersRequest {}
// Output parameters for GetFirmwareManagementParameters()
message GetFirmwareManagementParametersReply {
// If there's a problem retrieving the FWMP, then this will be set.
DeviceManagementErrorCode error = 1;
// The firmware management parameters that is retrieved.
FirmwareManagementParameters fwmp = 2;
}
// Input parameters to RemoveFirmwareManagementParameters()
message RemoveFirmwareManagementParametersRequest {
// Note that calling this function will destroy the NVRAM space that
// stores the FWMP (if defined).
}
// Output parameters for RemoveFirmwareManagementParameters()
message RemoveFirmwareManagementParametersReply {
// If there's a problem removing the FWMP, then this will be set.
DeviceManagementErrorCode error = 1;
}
// Input parameters to SetFirmwareManagementParameters()
message SetFirmwareManagementParametersRequest {
// The firmware management parameters to set.
FirmwareManagementParameters fwmp = 1;
}
// Output parameters for SetFirmwareManagementParameters()
message SetFirmwareManagementParametersReply {
// If there's a problem setting the FWMP, then this will be set.
DeviceManagementErrorCode error = 1;
}
|