1/*
2 * Copyright (C) 2022 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19package com.android.remoteprovisioner;
20
21// The status of an attempt to remotely provision keys and certs.
22enum RemoteKeyProvisioningStatus {
23    REMOTE_KEY_PROVISIONING_STATUS_UNKNOWN = 0;
24    KEYS_SUCCESSFULLY_PROVISIONED = 1;  // Success: got keys and certs
25    NO_PROVISIONING_NEEDED = 2;         // Success: Noop
26    PROVISIONING_DISABLED = 3;          // Success: provisioning turned off
27    INTERNAL_ERROR = 4;                 // Indicates a code bug
28    NO_NETWORK_CONNECTIVITY = 5;        // Not connected to the internet
29    OUT_OF_ERROR_BUDGET = 6;            // Too much data has been used on
30                                        // previous errors, operation aborted
31    INTERRUPTED = 7;                    // Local processing received an
32                                        // interrupted exception
33
34    // Various local binder failures
35    GENERATE_KEYPAIR_FAILED = 10;
36    GENERATE_CSR_FAILED = 11;
37    GET_POOL_STATUS_FAILED = 12;
38    INSERT_CHAIN_INTO_POOL_FAILED = 13;  // The local provisioning of the cert
39                                         // chain into the key pool failed
40
41    // Failures to get the GEEK from the RKP service
42    FETCH_GEEK_TIMED_OUT = 20;
43    FETCH_GEEK_IO_EXCEPTION = 21;
44    FETCH_GEEK_HTTP_ERROR = 22;
45
46    // Failures to get certs from the RKP service
47    SIGN_CERTS_TIMED_OUT = 30;
48    SIGN_CERTS_IO_EXCEPTION = 31;
49    SIGN_CERTS_HTTP_ERROR = 32;
50    SIGN_CERTS_DEVICE_NOT_REGISTERED = 33;
51}
52