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

Commit 93439a21 authored by Hasini Gunasinghe's avatar Hasini Gunasinghe Committed by Gerrit Code Review
Browse files

Merge changes from topic "authgraph-hal" into main

* changes:
  Add (nonsecure) default AuthGraph impl
  authgraph: add parallel session VTS tests
  authgraph: add placeholder VTS test
  Define the AIDL interface for AuthGraph key exchange.
parents 0804e9f8 7fd838c0
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -508,6 +508,14 @@
            <regex-instance>SIM[1-9][0-9]*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true" updatable-via-apex="true">
        <name>android.hardware.security.authgraph</name>
        <version>1</version>
        <interface>
            <name>IAuthGraphKeyExchange</name>
            <instance>nonsecure</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true" updatable-via-apex="true">
        <name>android.hardware.security.secureclock</name>
        <version>1</version>
+88 −0
Original line number Diff line number Diff line
// Copyright (C) 2023 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 {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "hardware_interfaces_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["hardware_interfaces_license"],
}

aidl_interface {
    name: "android.hardware.security.authgraph",
    vendor_available: true,
    srcs: [
        "android/hardware/security/authgraph/*.aidl",
    ],
    stability: "vintf",
    frozen: false,
    backend: {
        java: {
            platform_apis: true,
        },
        ndk: {
            apps_enabled: false,
        },
        rust: {
            enabled: true,
            apex_available: [
                "//apex_available:platform",
                "com.android.virt",
            ],
        },
    },
}

// cc_defaults that includes the latest Authgraph AIDL library.
// Modules that depend on Authgraph directly can include this cc_defaults to avoid
// managing dependency versions explicitly.
cc_defaults {
    name: "authgraph_use_latest_hal_aidl_ndk_static",
    static_libs: [
        "android.hardware.security.authgraph-V1-ndk",
    ],
}

cc_defaults {
    name: "authgraph_use_latest_hal_aidl_ndk_shared",
    shared_libs: [
        "android.hardware.security.authgraph-V1-ndk",
    ],
}

cc_defaults {
    name: "authgraph_use_latest_hal_aidl_cpp_static",
    static_libs: [
        "android.hardware.security.authgraph-V1-cpp",
    ],
}

cc_defaults {
    name: "authgraph_use_latest_hal_aidl_cpp_shared",
    shared_libs: [
        "android.hardware.security.authgraph-V1-cpp",
    ],
}

// A rust_defaults that includes the latest Authgraph AIDL library.
// Modules that depend on Authgraph directly can include this rust_defaults to avoid
// managing dependency versions explicitly.
rust_defaults {
    name: "authgraph_use_latest_hal_aidl_rust",
    rustlibs: [
        "android.hardware.security.authgraph-V1-rust",
    ],
}
+39 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.security.authgraph;
/* @hide */
@RustDerive(Clone=true, Eq=true, PartialEq=true) @VintfStability
parcelable Arc {
  byte[] arc;
}
+50 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.security.authgraph;
/* @hide */
@Backing(type="int") @VintfStability
enum Error {
  OK = 0,
  INVALID_PEER_NONCE = (-1) /* -1 */,
  INVALID_PEER_KE_KEY = (-2) /* -2 */,
  INVALID_IDENTITY = (-3) /* -3 */,
  INVALID_CERT_CHAIN = (-4) /* -4 */,
  INVALID_SIGNATURE = (-5) /* -5 */,
  INVALID_KE_KEY = (-6) /* -6 */,
  INVALID_PUB_KEY_IN_KEY = (-7) /* -7 */,
  INVALID_PRIV_KEY_ARC_IN_KEY = (-8) /* -8 */,
  INVALID_SHARED_KEY_ARCS = (-9) /* -9 */,
  MEMORY_ALLOCATION_FAILED = (-10) /* -10 */,
  INCOMPATIBLE_PROTOCOL_VERSION = (-11) /* -11 */,
}
+42 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.security.authgraph;
/* @hide */
@VintfStability
interface IAuthGraphKeyExchange {
  android.hardware.security.authgraph.SessionInitiationInfo create();
  android.hardware.security.authgraph.KeInitResult init(in android.hardware.security.authgraph.PubKey peerPubKey, in android.hardware.security.authgraph.Identity peerId, in byte[] peerNonce, in int peerVersion);
  android.hardware.security.authgraph.SessionInfo finish(in android.hardware.security.authgraph.PubKey peerPubKey, in android.hardware.security.authgraph.Identity peerId, in android.hardware.security.authgraph.SessionIdSignature peerSignature, in byte[] peerNonce, in int peerVersion, in android.hardware.security.authgraph.Key ownKey);
  android.hardware.security.authgraph.Arc[2] authenticationComplete(in android.hardware.security.authgraph.SessionIdSignature peerSignature, in android.hardware.security.authgraph.Arc[2] sharedKeys);
}
Loading