| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.confirmationui@1.0; |
| |
| /** |
| * UI modification options. |
| */ |
| enum UIOption : uint32_t { |
| /** Accessibility: Requests color inverted style. */ |
| AccessibilityInverted = 0, |
| /** Accessibility: Requests magnified style. */ |
| AccessibilityMagnified = 1, |
| }; |
| |
| /** |
| * Codes returned by ConfirmationUI API calls. |
| */ |
| enum ResponseCode : uint32_t { |
| /** API call succeeded or the user gave approval (result callback). */ |
| OK = 0, |
| /** The user canceled the TUI (result callback). */ |
| Canceled = 1, |
| /** IConfirmationUI::abort() was called. (result callback). */ |
| Aborted = 2, |
| /** Cannot start another prompt. */ |
| OperationPending = 3, |
| /** IConfirmationUI::deliverSecureInputEvent call was ingored. */ |
| Ignored = 4, |
| /** An unexpected system error occured. */ |
| SystemError = 5, |
| /** Returned by an unimplemented API call. */ |
| Unimplemented = 6, |
| /** |
| * This is returned when an error is diagnosed that should have been |
| * caught by earlier input sanitization. Should never be seen in production. |
| */ |
| Unexpected = 7, |
| /** General UI error. */ |
| UIError = 0x10000, |
| UIErrorMissingGlyph, |
| /** |
| * The implementation must return this error code on promptUserConfirmation if the |
| * resulting formatted message does not fit into MessageSize::MAX bytes. It is |
| * advised that the implementation formats the message upon receiving this API call to |
| * be able to diagnose this syndrome. |
| */ |
| UIErrorMessageTooLong, |
| UIErrorMalformedUTF8Encoding, |
| }; |
| |
| /** |
| * This defines the maximum message size. This indirectly limits the size of the prompt text |
| * and the extra data that can be passed to the confirmation UI. The prompt text and extra data |
| * must fit in to this size including CBOR header information. |
| */ |
| enum MessageSize : uint32_t { MAX = 0x1800 }; |
| |
| /** |
| * The test key is 32byte word with all bytes set to TestKeyBits::BYTE. |
| */ |
| enum TestKeyBits: uint8_t { BYTE = 0xA5 }; |
| |
| /** |
| * Test mode commands. |
| * |
| * IConfirmationUI::deliverSecureInputEvent can be used to test certain code paths. |
| * To that end, the caller passes an auth token that has an HMAC keyed with the test key |
| * (see TestKeyBits in types.hal). Implementations first check the HMAC against test key. |
| * If the test key produces a matching HMAC, the implementation evaluates the challenge field |
| * of the auth token against the values defined in TestModeCommand. |
| * If the command indicates that a confirmation token is to be generated the test key MUST be used |
| * to generate this confirmation token. |
| * |
| * See command code for individual test command descriptions. |
| */ |
| enum TestModeCommands: uint64_t { |
| /** |
| * Simulates the user pressing the OK button on the UI. If no operation is pending |
| * ResponseCode::Ignored must be returned. A pending operation is finalized successfully |
| * see IConfirmationResultCallback::result, however, the test key (see TestKeyBits) MUST be |
| * used to generate the confirmation token. |
| */ |
| OK_EVENT = 0, |
| /** |
| * Simulates the user pressing the CANCEL button on the UI. If no operation is pending |
| * Result::Ignored must be returned. A pending operation is finalized as specified in |
| * IConfirmationResultCallback.hal. |
| */ |
| CANCEL_EVENT = 1, |
| }; |