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

Commit 22a3b1f7 authored by Roberto Pereira's avatar Roberto Pereira
Browse files

Update the Trusty Keymaster directory structure

Added three new directories:
  - include: contains ipc and legacy header files
  - ipc: contains common keymaster IPC code that can be shared between HALS
  - legacy: contains the old style HAL implementation

Test: trusty_keymaster_tipc & keystore.trusty compile
Bug:110153632
Change-Id: I2fdaa9d3d0421a0e359c05807ab5f0a12c5d3996
parent 4f9599e4
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -27,14 +27,17 @@ cc_binary {
    name: "trusty_keymaster_tipc",
    vendor: true,
    srcs: [
        "trusty_keymaster_device.cpp",
        "trusty_keymaster_ipc.cpp",
        "trusty_keymaster_main.cpp",
        "ipc/trusty_keymaster_ipc.cpp",
        "legacy/trusty_keymaster_device.cpp",
        "legacy/trusty_keymaster_main.cpp",
    ],
    cflags: [
        "-Wall",
        "-Werror",
    ],

    local_include_dirs: ["include"],

    shared_libs: [
        "libcrypto",
        "libcutils",
@@ -52,9 +55,9 @@ cc_library_shared {
    vendor: true,
    relative_install_path: "hw",
    srcs: [
        "module.cpp",
        "trusty_keymaster_ipc.cpp",
        "trusty_keymaster_device.cpp",
        "ipc/trusty_keymaster_ipc.cpp",
        "legacy/module.cpp",
        "legacy/trusty_keymaster_device.cpp",
    ],

    cflags: [
@@ -63,6 +66,8 @@ cc_library_shared {
        "-Werror",
    ],

    local_include_dirs: ["include"],

    shared_libs: [
        "libcrypto",
        "libkeymaster_messages",
+8 −4
Original line number Diff line number Diff line
@@ -36,7 +36,8 @@ class TrustyKeymasterDevice {
     * These are the only symbols that will be exported by libtrustykeymaster.  All functionality
     * can be reached via the function pointers in device_.
     */
    __attribute__((visibility("default"))) explicit TrustyKeymasterDevice(const hw_module_t* module);
    __attribute__((visibility("default"))) explicit TrustyKeymasterDevice(
            const hw_module_t* module);
    __attribute__((visibility("default"))) hw_device_t* hw_device();

    ~TrustyKeymasterDevice();
@@ -134,12 +135,15 @@ class TrustyKeymasterDevice {
                                    keymaster_operation_handle_t operation_handle,
                                    const keymaster_key_param_set_t* in_params,
                                    const keymaster_blob_t* input, size_t* input_consumed,
                                    keymaster_key_param_set_t* out_params, keymaster_blob_t* output);
                                    keymaster_key_param_set_t* out_params,
                                    keymaster_blob_t* output);
    static keymaster_error_t finish(const keymaster2_device_t* dev,
                                    keymaster_operation_handle_t operation_handle,
                                    const keymaster_key_param_set_t* in_params,
                                    const keymaster_blob_t* input, const keymaster_blob_t* signature,
                                    keymaster_key_param_set_t* out_params, keymaster_blob_t* output);
                                    const keymaster_blob_t* input,
                                    const keymaster_blob_t* signature,
                                    keymaster_key_param_set_t* out_params,
                                    keymaster_blob_t* output);
    static keymaster_error_t abort(const keymaster2_device_t* dev,
                                   keymaster_operation_handle_t operation_handle);

+5 −5
Original line number Diff line number Diff line
@@ -29,8 +29,8 @@
#include <log/log.h>
#include <trusty/tipc.h>

#include "keymaster_ipc.h"
#include "trusty_keymaster_ipc.h"
#include <trusty_keymaster/ipc/keymaster_ipc.h>
#include <trusty_keymaster/ipc/trusty_keymaster_ipc.h>

#define TRUSTY_DEVICE_NAME "/dev/trusty-ipc-dev0"

@@ -76,9 +76,9 @@ int trusty_keymaster_call(uint32_t cmd, void* in, uint32_t in_size, uint8_t* out
    struct keymaster_message header;
    iov[0] = {.iov_base = &header, .iov_len = sizeof(struct keymaster_message)};
    while (true) {
        iov[1] = {
            .iov_base = out + *out_size,
            .iov_len = std::min<uint32_t>(KEYMASTER_MAX_BUFFER_LENGTH, out_max_size - *out_size)};
        iov[1] = {.iov_base = out + *out_size,
                  .iov_len = std::min<uint32_t>(KEYMASTER_MAX_BUFFER_LENGTH,
                                                out_max_size - *out_size)};
        rc = readv(handle_, iov, 2);
        if (rc < 0) {
            ALOGE("failed to retrieve response for cmd (%d) to %s: %s\n", cmd, KEYMASTER_PORT,
Loading