55#include "mcelcommon.h"
66#define MCEL_ANCHOR_HASH_SIZE 32U
72#define MCEL_ANCHOR_REFERENCE_VERSION 0x01U
81#define MCEL_ANCHOR_REFERENCE_HEADER_SIZE 8U
117MCEL_EXPORT_API
bool mcel_anchor_commit(uint8_t* output,
const uint8_t* chkcommit,
const uint8_t* anchref,
size_t reflen);
159 const uint8_t** reference, uint16_t* reflen,
const uint8_t* input,
size_t inlen);
MCEL_EXPORT_API size_t mcel_anchor_reference_encoded_size(size_t cidlen, size_t reflen)
Get the required buffer size for an encoded MCEL anchor reference.
Definition anchor.c:94
MCEL_EXPORT_API bool mcel_anchor_commit(uint8_t *output, const uint8_t *chkcommit, const uint8_t *anchref, size_t reflen)
Compute a MCEL anchor commitment.
Definition anchor.c:7
MCEL_EXPORT_API bool mcel_anchor_reference_verify(uint8_t *flags, uint8_t *type, const uint8_t **chainid, uint16_t *chainidlen, const uint8_t **reference, uint16_t *reflen, const uint8_t *input, size_t inlen)
Verify a serialized MCEL anchor reference encoding.
Definition anchor.c:108
MCEL_EXPORT_API bool mcel_anchor_reference_encode(uint8_t *output, size_t outlen, const mcel_anchor_reference *anchor)
Serialize an anchor reference into a canonical byte string.
Definition anchor.c:39
The MCEL anchor reference container.
Definition anchor.h:92
uint16_t chain_id_len
Definition anchor.h:97
const uint8_t * chain_id
Definition anchor.h:99
uint8_t type
Definition anchor.h:95
uint16_t reference_len
Definition anchor.h:98
uint8_t flags
Definition anchor.h:94
uint8_t version
Definition anchor.h:93
uint8_t reserved
Definition anchor.h:96
const uint8_t * reference
Definition anchor.h:100