| /* |
| * Copyright (C) 2020 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.service.displayhash; |
| |
| import android.graphics.Rect; |
| import android.hardware.HardwareBuffer; |
| import android.os.RemoteCallback; |
| import android.view.displayhash.DisplayHash; |
| |
| /** |
| * Service used to handle DisplayHash requests. |
| * |
| * @hide |
| */ |
| oneway interface IDisplayHasherService { |
| /** |
| * Generates the DisplayHash that can be used to validate that the system generated the token. |
| * |
| * @param salt The salt to use when generating the hmac. This should be unique to the caller so |
| * the token cannot be verified by any other process. |
| * @param buffer The buffer to generate the hash for. |
| * @param bounds The size and position of the content being hashed in window space. |
| * @param hashAlgorithm The String for the hash algorithm to use based on values in |
| * {@link #SERVICE_META_DATA_KEY_AVAILABLE_ALGORITHMS}. |
| * @param Callback The callback invoked to send back the DisplayHash. |
| */ |
| void generateDisplayHash(in byte[] salt, in HardwareBuffer buffer, in Rect bounds, |
| in String hashAlgorithm, in RemoteCallback callback); |
| |
| /** |
| * Call to verify that the DisplayHash passed in was generated by the system. The result |
| * will be sent in the callback as a boolean with the key {@link #EXTRA_VERIFIED_DISPLAY_HASH}. |
| * |
| * @param salt The salt value to use when verifying the hmac. This should be the same value that |
| * was passed to {@link generateDisplayHash()} to generate the DisplayHash. |
| * @param displayHash The hash to verify that it was generated by the system. |
| * @param callback The callback invoked to send back the VerifiedDisplayHash. |
| */ |
| void verifyDisplayHash(in byte[] salt, in DisplayHash displayHash, in RemoteCallback callback); |
| |
| /** |
| * Call to get a map of supported algorithms and their {@link DisplayHashParams} |
| * |
| * @param callback The callback invoked to send back the map of algorithms to DisplayHashParams. |
| */ |
| void getDisplayHashAlgorithms(in RemoteCallback callback); |
| } |