blob: 8c727e2d2b0ae300c4b9012cf55051df10cc29e6 [file] [log] [blame]
// SPDX-License-Identifier: BSD-2-Clause
/*
* Copyright (c) 2020, Vaisala Oyj.
*/
#include <teeacl.h>
#include <stdio.h>
#include <string.h>
#include <uuid.h>
int teeacl_group_acl_uuid(char uuid_buf[TEEACL_L_UUID], gid_t group)
{
uuid_t g_uuid = { 0 };
uuid_t k_uuid = { 0 };
char gid_buf[TEEACL_L_UUID] = { 0 };
size_t gid_buf_len = 0;
uint gstr_len = 6;
int rv = snprintf(gid_buf, TEEACL_L_UUID, "gid=%x", group);
if (rv < 0)
return rv;
if (rv >= TEEACL_L_UUID)
return -1;
rv = uuid_parse(KERNEL_NAMESPACE, k_uuid);
if (rv < 0)
return rv;
gid_buf_len = strnlen(gid_buf, TEEACL_L_UUID);
uuid_generate_sha1(g_uuid, k_uuid, gid_buf, gid_buf_len);
memcpy(uuid_buf, "group:", gstr_len);
uuid_unparse(g_uuid, uuid_buf + gstr_len);
return 0;
}