Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2225b45 authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Android (Google) Code Review
Browse files

Merge "[ImpressionAttestation] Updated Impression Attestation APIs"

parents 174d83e3 a522a514
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -9373,8 +9373,8 @@ package android.service.attestation {
  public abstract class ImpressionAttestationService extends android.app.Service {
    ctor public ImpressionAttestationService();
    method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
    method @Nullable public abstract android.service.attestation.ImpressionToken onGenerateImpressionToken(@NonNull String, @NonNull android.hardware.HardwareBuffer, @NonNull android.graphics.Rect, @NonNull String);
    method public abstract boolean onVerifyImpressionToken(@NonNull String, @NonNull android.service.attestation.ImpressionToken);
    method @Nullable public abstract android.service.attestation.ImpressionToken onGenerateImpressionToken(@NonNull byte[], @NonNull android.hardware.HardwareBuffer, @NonNull android.graphics.Rect, @NonNull String);
    method public abstract boolean onVerifyImpressionToken(@NonNull byte[], @NonNull android.service.attestation.ImpressionToken);
  }
  public final class ImpressionToken implements android.os.Parcelable {
+2 −2
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ oneway interface IImpressionAttestationService {
     *        {@link #SERVICE_META_DATA_KEY_AVAILABLE_ALGORITHMS}.
     * @param Callback The callback invoked to send back the impression token.
     */
    void generateImpressionToken(in String salt, in HardwareBuffer screenshot, in Rect bounds,
    void generateImpressionToken(in byte[] salt, in HardwareBuffer screenshot, in Rect bounds,
                                 in String hashAlgorithm, in RemoteCallback callback);

    /**
@@ -51,6 +51,6 @@ oneway interface IImpressionAttestationService {
     * @param impressionToken The token to verify that it was generated by the system.
     * @param callback The callback invoked to send back the verification status.
     */
    void verifyImpressionToken(in String salt, in ImpressionToken impressionToken,
    void verifyImpressionToken(in byte[] salt, in ImpressionToken impressionToken,
                               in RemoteCallback callback);
}
+7 −7
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ public abstract class ImpressionAttestationService extends Service {
     * Returns null when the arguments sent are invalid.
     */
    @Nullable
    public abstract ImpressionToken onGenerateImpressionToken(@NonNull String salt,
    public abstract ImpressionToken onGenerateImpressionToken(@NonNull byte[] salt,
            @NonNull HardwareBuffer screenshot, @NonNull Rect bounds,
            @NonNull String hashAlgorithm);

@@ -109,16 +109,16 @@ public abstract class ImpressionAttestationService extends Service {
     *
     * @param salt            The salt value to use when verifying the hmac. This should be the
     *                        same value that was passed to
     *                        {@link #onGenerateImpressionToken(String,
     *                        {@link #onGenerateImpressionToken(byte[],
     *                        HardwareBuffer, Rect, String)} to
     *                        generate the token.
     * @param impressionToken The token to verify that it was generated by the system.
     * @return true if the token can be verified that it was generated by the system.
     */
    public abstract boolean onVerifyImpressionToken(@NonNull String salt,
    public abstract boolean onVerifyImpressionToken(@NonNull byte[] salt,
            @NonNull ImpressionToken impressionToken);

    private void generateImpressionToken(String salt, HardwareBuffer screenshot, Rect bounds,
    private void generateImpressionToken(byte[] salt, HardwareBuffer screenshot, Rect bounds,
            String hashAlgorithm, RemoteCallback callback) {
        ImpressionToken impressionToken = onGenerateImpressionToken(salt, screenshot, bounds,
                hashAlgorithm);
@@ -127,7 +127,7 @@ public abstract class ImpressionAttestationService extends Service {
        callback.sendResult(data);
    }

    private void verifyImpressionToken(String salt, ImpressionToken impressionToken,
    private void verifyImpressionToken(byte[] salt, ImpressionToken impressionToken,
            RemoteCallback callback) {
        boolean verificationStatus = onVerifyImpressionToken(salt, impressionToken);
        final Bundle data = new Bundle();
@@ -138,7 +138,7 @@ public abstract class ImpressionAttestationService extends Service {
    private final class ImpressionAttestationServiceWrapper extends
            IImpressionAttestationService.Stub {
        @Override
        public void generateImpressionToken(String salt, HardwareBuffer screenshot, Rect bounds,
        public void generateImpressionToken(byte[] salt, HardwareBuffer screenshot, Rect bounds,
                String hashAlgorithm, RemoteCallback callback) {
            mHandler.sendMessage(
                    obtainMessage(ImpressionAttestationService::generateImpressionToken,
@@ -147,7 +147,7 @@ public abstract class ImpressionAttestationService extends Service {
        }

        @Override
        public void verifyImpressionToken(String salt, ImpressionToken impressionToken,
        public void verifyImpressionToken(byte[] salt, ImpressionToken impressionToken,
                RemoteCallback callback) {
            mHandler.sendMessage(obtainMessage(ImpressionAttestationService::verifyImpressionToken,
                    ImpressionAttestationService.this, salt, impressionToken, callback));
+2 −2
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ public class ImpressionAttestationController {

    private final Handler mHandler;

    private final String mSalt;
    private final byte[] mSalt;

    private final float[] mTmpFloat9 = new float[9];
    private final Matrix mTmpMatrix = new Matrix();
@@ -99,7 +99,7 @@ public class ImpressionAttestationController {
    ImpressionAttestationController(Context context) {
        mContext = context;
        mHandler = new Handler(Looper.getMainLooper());
        mSalt = UUID.randomUUID().toString();
        mSalt = UUID.randomUUID().toString().getBytes();
    }

    String[] getSupportedImpressionAlgorithms() {