You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.3 KiB
70 lines
1.3 KiB
/* SPDX-License-Identifier: BSD-2-Clause */
|
|
/***********************************************************************
|
|
* Copyright (c) 2017-2018, Intel Corporation
|
|
*
|
|
* All rights reserved.
|
|
***********************************************************************/
|
|
#ifdef HAVE_CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
#include "tss2_tpm2_types.h"
|
|
#include "sapi-util.h"
|
|
#include "session-util.h"
|
|
|
|
static ENTITY *entities = NULL;
|
|
|
|
int
|
|
AddEntity(TPM2_HANDLE handle, TPM2B_AUTH *auth)
|
|
{
|
|
ENTITY *e;
|
|
|
|
HASH_FIND_INT(entities, &handle, e);
|
|
|
|
if (!e) {
|
|
e = calloc(1, sizeof(*e));
|
|
if (!e)
|
|
return -1;
|
|
|
|
e->entityHandle = handle;
|
|
HASH_ADD_INT(entities, entityHandle, e);
|
|
}
|
|
CopySizedByteBuffer((TPM2B *)&e->entityAuth, (TPM2B *)auth);
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
DeleteEntity(TPM2_HANDLE handle)
|
|
{
|
|
ENTITY *e;
|
|
|
|
HASH_FIND_INT(entities, &handle, e);
|
|
if (!e)
|
|
return;
|
|
|
|
HASH_DEL(entities, e);
|
|
free(e);
|
|
}
|
|
|
|
int
|
|
GetEntityAuth(TPM2_HANDLE handle, TPM2B_AUTH *auth)
|
|
{
|
|
ENTITY *e;
|
|
|
|
HASH_FIND_INT(entities, &handle, e);
|
|
if (!e)
|
|
return -1;
|
|
|
|
CopySizedByteBuffer((TPM2B *)auth, (TPM2B *)&e->entityAuth);
|
|
return 0;
|
|
}
|
|
|
|
ENTITY *
|
|
GetEntity(TPM2_HANDLE handle)
|
|
{
|
|
ENTITY *e;
|
|
|
|
HASH_FIND_INT(entities, &handle, e);
|
|
return e;
|
|
}
|