除了使用DAS自带的安全度量服务以外, 您还可以根据设备的特点和需要在DAS服务框架内构建自己的度量服务。

实现服务

src/service下创建service_skeleton.c文件,并实现inc/das/service.h中的服务接口定义。

das_result_t skt_info (char *buffer, size_t size,
             das_service_state_t *state);
das_result_t skt_attest (char *path, size_t size, das_sum_context_t *sum_context,                  das_service_state_t *state);
das_result_t skt_measure (das_sum_context_t *sum_context,
              das_mac_context_t *mac_context,
              das_service_state_t *state);

das_service_t skt_service = {
          .name = "skeleton", 
          .info = skt_info,
          .attest = skt_attest,
          .measure = skt_measure,
        };

添加服务

src/service/service.c文件中添加服务。

#if DPS_SERVICE_SKELETON_ENABLED
extern das_service_t skt_service;
#endif

das_service_t * das_service_table[DAS_MAX_SRV_NUM] = {
#ifdef DPS_SERVICE_SKELETON_ENABLED
     &skt_service,
#endif
  &sys_srv,
  NULL,
};

配置服务

配置Makefile使能服务。

CFLAGS += -DDPS_SERVICE_SKELETON_ENABLED
SRCS   += service/service_skeleton.c