1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "hardware_interfaces_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["hardware_interfaces_license"],
8}
9
10cc_library_static {
11    name: "android.hardware.identity-libeic-hal-common",
12    vendor_available: true,
13    defaults: [
14        "identity_use_latest_hal_aidl_ndk_static",
15        "keymint_use_latest_hal_aidl_ndk_static",
16    ],
17    srcs: [
18        "common/IdentityCredential.cpp",
19        "common/IdentityCredentialStore.cpp",
20        "common/PresentationSession.cpp",
21        "common/WritableIdentityCredential.cpp",
22    ],
23    export_include_dirs: [
24        "common",
25    ],
26    cflags: [
27        "-Wall",
28        "-Wextra",
29        "-Wno-deprecated-declarations",
30    ],
31    shared_libs: [
32        "liblog",
33        "libcrypto",
34        "libbinder_ndk",
35        "libkeymaster_messages",
36    ],
37    static_libs: [
38        "libbase",
39        "libcppbor",
40        "libcppcose_rkp",
41        "libutils",
42        "libsoft_attestation_cert",
43        "libkeymaster_portable",
44        "libsoft_attestation_cert",
45        "libpuresoftkeymasterdevice",
46        "android.hardware.identity-support-lib",
47        "android.hardware.keymaster-V3-ndk",
48        "android.hardware.security.rkp-V3-ndk",
49    ],
50}
51
52cc_library_static {
53    name: "android.hardware.identity-libeic-library",
54    vendor_available: true,
55    srcs: [
56        "libeic/EicCbor.c",
57        "libeic/EicSession.c",
58        "libeic/EicPresentation.c",
59        "libeic/EicProvisioning.c",
60        "EicOpsImpl.cc",
61    ],
62    export_include_dirs: [
63        "libeic",
64    ],
65    cflags: [
66        "-DEIC_COMPILATION",
67        "-Wall",
68        "-Wextra",
69        "-DEIC_DEBUG",
70        // Allow using C2x extensions such as omitting parameter names
71        "-Wno-c2x-extensions",
72    ],
73    shared_libs: [
74        "libbase",
75        "libcrypto",
76    ],
77    static_libs: [
78        "android.hardware.identity-support-lib",
79    ],
80}
81
82cc_binary {
83    name: "android.hardware.identity-service.example",
84    relative_install_path: "hw",
85    init_rc: ["identity-default.rc"],
86    vintf_fragments: ["identity-default.xml"],
87    vendor: true,
88    defaults: [
89        "identity_use_latest_hal_aidl_ndk_static",
90        "keymint_use_latest_hal_aidl_ndk_static",
91    ],
92    cflags: [
93        "-Wall",
94        "-Wextra",
95        "-g",
96    ],
97    shared_libs: [
98        "liblog",
99        "libcrypto",
100        "libbinder_ndk",
101        "libkeymaster_messages",
102    ],
103    static_libs: [
104        "libbase",
105        "libcppbor",
106        "libcppcose_rkp",
107        "libutils",
108        "libsoft_attestation_cert",
109        "libkeymaster_portable",
110        "libsoft_attestation_cert",
111        "libpuresoftkeymasterdevice",
112        "android.hardware.identity-support-lib",
113        "android.hardware.keymaster-V3-ndk",
114        "android.hardware.identity-libeic-hal-common",
115        "android.hardware.identity-libeic-library",
116        "android.hardware.security.rkp-V3-ndk",
117    ],
118    srcs: [
119        "service.cpp",
120        "FakeSecureHardwareProxy.cpp",
121    ],
122    required: [
123        "android.hardware.identity_credential.xml",
124    ],
125}
126
127cc_test {
128    name: "libeic_test",
129    srcs: [
130        "EicTests.cpp",
131        "FakeSecureHardwareProxy.cpp",
132    ],
133    cflags: [
134        "-Wall",
135        "-Wextra",
136        "-g",
137        "-DEIC_DEBUG",
138    ],
139    local_include_dirs: [
140        "common",
141    ],
142    shared_libs: [
143        "liblog",
144        "libcrypto",
145        "libkeymaster_messages",
146    ],
147    static_libs: [
148        "libbase",
149        "libcppbor",
150        "libcppcose_rkp",
151        "libutils",
152        "libsoft_attestation_cert",
153        "libkeymaster_portable",
154        "libsoft_attestation_cert",
155        "libpuresoftkeymasterdevice",
156        "android.hardware.identity-support-lib",
157        "android.hardware.identity-libeic-library",
158    ],
159    test_suites: [
160        "general-tests",
161    ],
162}
163
164prebuilt_etc {
165    name: "android.hardware.identity_credential.xml",
166    sub_dir: "permissions",
167    vendor: true,
168    src: "android.hardware.identity_credential.xml",
169}
170