45#define UDIF_REGISTRY_DEFAULT_CAPACITY 1024U
51#define UDIF_REGISTRY_MAX_CAPACITY 1048576U
UDIF_EXPORT_API udif_errors udif_registry_initialize(udif_registry_state *reg, const uint8_t *ownerser, size_t capacity)
Initialize a registry.
Definition registry.c:362
UDIF_EXPORT_API udif_errors udif_registry_update_object(udif_registry_state *reg, const udif_object *obj)
Update an object in the registry.
Definition registry.c:528
UDIF_EXPORT_API void udif_registry_clear(udif_registry_state *reg)
Clear registry.
Definition registry.c:67
UDIF_EXPORT_API udif_errors udif_registry_resize(udif_registry_state *reg, size_t newcapacity)
Resize registry.
Definition registry.c:471
UDIF_EXPORT_API udif_errors udif_registry_remove_object(udif_registry_state *reg, const uint8_t *serial)
Remove an object from the registry.
Definition registry.c:427
UDIF_EXPORT_API udif_errors udif_registry_compute_root(uint8_t *root, const udif_registry_state *reg)
Compute registry Merkle root.
Definition registry.c:77
UDIF_EXPORT_API bool udif_registry_is_full(const udif_registry_state *reg)
Check if registry is full.
Definition registry.c:411
UDIF_EXPORT_API size_t udif_registry_get_count(const udif_registry_state *reg)
Get object count.
Definition registry.c:328
UDIF_EXPORT_API bool udif_registry_find_object(const udif_registry_state *reg, const uint8_t *serial, size_t *index)
Find object in registry.
Definition registry.c:182
UDIF_EXPORT_API void udif_registry_dispose(udif_registry_state *reg)
Dispose registry.
Definition registry.c:157
UDIF_EXPORT_API udif_errors udif_registry_generate_proof(uint8_t *proof, size_t *prooflen, const udif_registry_state *reg, const uint8_t *serial)
Generate membership proof.
Definition registry.c:211
UDIF_EXPORT_API size_t udif_registry_get_capacity(const udif_registry_state *reg)
Get registry capacity.
Definition registry.c:312
UDIF_EXPORT_API udif_errors udif_registry_add_object(udif_registry_state *reg, const udif_object *obj)
Add an object to the registry.
Definition registry.c:22
UDIF_EXPORT_API udif_errors udif_registry_get_digest_at(uint8_t *digest, const udif_registry_state *reg, size_t index)
Get object digest at index.
Definition registry.c:344
UDIF_EXPORT_API bool udif_registry_verify_proof(const uint8_t *proof, size_t prooflen, const uint8_t *root, const uint8_t *objdigest)
Verify membership proof.
Definition registry.c:564
Merkle proof node structure.
Definition registry.h:58
uint8_t hash[UDIF_CRYPTO_HASH_SIZE]
Definition registry.h:59
bool isleft
Definition registry.h:60
UDIF object container.
Definition object.h:148
User Agent object registry.
Definition registry.h:71
uint8_t * objdigests
Definition registry.h:74
uint8_t ownerser[UDIF_SERIAL_NUMBER_SIZE]
Definition registry.h:72
qsc_keccak_state mstate
Definition registry.h:73
size_t objcount
Definition registry.h:76
uint8_t * objserials
Definition registry.h:75
size_t capacity
Definition registry.h:77
bool initialized
Definition registry.h:78
UDIF Common Definitions and Protocol Configuration.
#define UDIF_SERIAL_NUMBER_SIZE
The serial number field length.
Definition udif.h:519
#define UDIF_CRYPTO_HASH_SIZE
The size of the certificate hash in bytes.
Definition udif.h:439
udif_errors
UDIF error codes.
Definition udif.h:628
#define UDIF_EXPORT_API
The api export prefix.
Definition udifcommon.h:103