aboutsummaryrefslogtreecommitdiff
path: root/trunnel/stfe.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunnel/stfe.h')
-rw-r--r--trunnel/stfe.h930
1 files changed, 590 insertions, 340 deletions
diff --git a/trunnel/stfe.h b/trunnel/stfe.h
index c92d1e4..26ffb09 100644
--- a/trunnel/stfe.h
+++ b/trunnel/stfe.h
@@ -8,22 +8,21 @@
#include <stdint.h>
#include "trunnel.h"
+#define MAGIC_V1 6004501466958485041
#define T_GET_ENTRIES_V1 1
#define T_GET_PROOF_BY_HASH_V1 2
#define T_GET_CONSISTENCY_PROOF_V1 3
-#define T_INCLUSION_PROOF_V1 4
-#define T_CONSISTENCY_PROOF_V1 5
-#define T_SIGNED_TREE_HEAD_V1 6
-#define T_SIGNED_CHECKSUM32_ED25519_V1 7
-#define T_ED25519_V1 8
-#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_ED25519_V1)
-struct ed25519_v1_st {
- uint64_t format;
- uint8_t pubkey[32];
+#define T_ENTRIES_V1 4
+#define T_INCLUSION_PROOF_V1 5
+#define T_CONSISTENCY_PROOF_V1 6
+#define T_SIGNED_TREE_HEAD_V1 7
+#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_HASH)
+struct hash_st {
+ uint8_t hash[32];
uint8_t trunnel_error_code_;
};
#endif
-typedef struct ed25519_v1_st ed25519_v1_t;
+typedef struct hash_st hash_t;
#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_REQ_GET_CONSISTENCY_PROOF_V1)
struct req_get_consistency_proof_v1_st {
uint64_t old_size;
@@ -48,44 +47,64 @@ struct req_get_proof_by_hash_v1_st {
};
#endif
typedef struct req_get_proof_by_hash_v1_st req_get_proof_by_hash_v1_t;
-#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_SIGNED_TREE_HEAD_V1)
-struct signed_tree_head_v1_st {
- uint64_t format;
- uint64_t timestamp;
- uint64_t tree_size;
- uint8_t root_hash[32];
+#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_SIGIDENT_ED25519)
+struct sigident_ed25519_st {
+ uint8_t signature[64];
+ uint8_t identifier[32];
+ uint8_t trunnel_error_code_;
+};
+#endif
+typedef struct sigident_ed25519_st sigident_ed25519_t;
+#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_SIGNED_CHECKSUM32_ED25519)
+struct signed_checksum32_ed25519_st {
+ uint8_t checksum[32];
uint64_t length;
- TRUNNEL_DYNARRAY_HEAD(, uint8_t) sigident;
+ TRUNNEL_DYNARRAY_HEAD(, uint8_t) identifier;
+ uint8_t signature[64];
+ uint8_t namespace[32];
uint8_t trunnel_error_code_;
};
#endif
-typedef struct signed_tree_head_v1_st signed_tree_head_v1_t;
+typedef struct signed_checksum32_ed25519_st signed_checksum32_ed25519_t;
#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_CONSISTENCY_PROOF_V1)
struct consistency_proof_v1_st {
+ uint64_t magic;
uint64_t format;
- struct ed25519_v1_st *identifier;
+ uint8_t identifier[32];
uint64_t old_size;
uint64_t new_size;
- uint64_t length;
- TRUNNEL_DYNARRAY_HEAD(, uint8_t) hashes;
+ uint64_t n_items;
+ TRUNNEL_DYNARRAY_HEAD(, struct hash_st *) hashes;
uint8_t trunnel_error_code_;
};
#endif
typedef struct consistency_proof_v1_st consistency_proof_v1_t;
+#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_ENTRIES_V1)
+struct entries_v1_st {
+ uint64_t magic;
+ uint64_t format;
+ uint64_t n_items;
+ TRUNNEL_DYNARRAY_HEAD(, struct signed_checksum32_ed25519_st *) checksums;
+ uint8_t trunnel_error_code_;
+};
+#endif
+typedef struct entries_v1_st entries_v1_t;
#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_INCLUSION_PROOF_V1)
struct inclusion_proof_v1_st {
+ uint64_t magic;
uint64_t format;
- struct ed25519_v1_st *identifier;
+ uint8_t identifier[32];
uint64_t tree_size;
uint64_t leaf_index;
- uint64_t length;
- TRUNNEL_DYNARRAY_HEAD(, uint8_t) hashes;
+ uint64_t n_items;
+ TRUNNEL_DYNARRAY_HEAD(, struct hash_st *) hashes;
uint8_t trunnel_error_code_;
};
#endif
typedef struct inclusion_proof_v1_st inclusion_proof_v1_t;
#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_REQUEST_V1)
struct request_v1_st {
+ uint64_t magic;
uint64_t format;
struct req_get_entries_v1_st *request_get_entries;
struct req_get_proof_by_hash_v1_st *request_get_proof_by_hash;
@@ -94,82 +113,74 @@ struct request_v1_st {
};
#endif
typedef struct request_v1_st request_v1_t;
-#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_SIGNED_CHECKSUM32_ED25519_V1)
-struct signed_checksum32_ed25519_v1_st {
+#if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_SIGNED_TREE_HEAD_V1)
+struct signed_tree_head_v1_st {
+ uint64_t magic;
uint64_t format;
- uint8_t checksum[32];
- uint64_t length;
- TRUNNEL_DYNARRAY_HEAD(, uint8_t) identifier;
- uint8_t signature[64];
- struct ed25519_v1_st *namespace;
+ uint64_t timestamp;
+ uint64_t tree_size;
+ uint8_t root_hash[32];
+ uint64_t n_items;
+ TRUNNEL_DYNARRAY_HEAD(, struct sigident_ed25519_st *) signatures;
uint8_t trunnel_error_code_;
};
#endif
-typedef struct signed_checksum32_ed25519_v1_st signed_checksum32_ed25519_v1_t;
-/** Return a newly allocated ed25519_v1 with all elements set to zero.
+typedef struct signed_tree_head_v1_st signed_tree_head_v1_t;
+/** Return a newly allocated hash with all elements set to zero.
*/
-ed25519_v1_t *ed25519_v1_new(void);
-/** Release all storage held by the ed25519_v1 in 'victim'. (Do
- * nothing if 'victim' is NULL.)
+hash_t *hash_new(void);
+/** Release all storage held by the hash in 'victim'. (Do nothing if
+ * 'victim' is NULL.)
*/
-void ed25519_v1_free(ed25519_v1_t *victim);
-/** Try to parse a ed25519_v1 from the buffer in 'input', using up to
+void hash_free(hash_t *victim);
+/** Try to parse a hash from the buffer in 'input', using up to
* 'len_in' bytes from the input buffer. On success, return the number
- * of bytes consumed and set *output to the newly allocated
- * ed25519_v1_t. On failure, return -2 if the input appears truncated,
- * and -1 if the input is otherwise invalid.
- */
-ssize_t ed25519_v1_parse(ed25519_v1_t **output, const uint8_t *input, const size_t len_in);
-/** Return the number of bytes we expect to need to encode the
- * ed25519_v1 in 'obj'. On failure, return a negative value. Note that
- * this value may be an overestimate, and can even be an underestimate
- * for certain unencodeable objects.
- */
-ssize_t ed25519_v1_encoded_len(const ed25519_v1_t *obj);
-/** Try to encode the ed25519_v1 from 'input' into the buffer at
- * 'output', using up to 'avail' bytes of the output buffer. On
- * success, return the number of bytes used. On failure, return -2 if
- * the buffer was not long enough, and -1 if the input was invalid.
- */
-ssize_t ed25519_v1_encode(uint8_t *output, size_t avail, const ed25519_v1_t *input);
-/** Check whether the internal state of the ed25519_v1 in 'obj' is
+ * of bytes consumed and set *output to the newly allocated hash_t. On
+ * failure, return -2 if the input appears truncated, and -1 if the
+ * input is otherwise invalid.
+ */
+ssize_t hash_parse(hash_t **output, const uint8_t *input, const size_t len_in);
+/** Return the number of bytes we expect to need to encode the hash in
+ * 'obj'. On failure, return a negative value. Note that this value
+ * may be an overestimate, and can even be an underestimate for
+ * certain unencodeable objects.
+ */
+ssize_t hash_encoded_len(const hash_t *obj);
+/** Try to encode the hash from 'input' into the buffer at 'output',
+ * using up to 'avail' bytes of the output buffer. On success, return
+ * the number of bytes used. On failure, return -2 if the buffer was
+ * not long enough, and -1 if the input was invalid.
+ */
+ssize_t hash_encode(uint8_t *output, size_t avail, const hash_t *input);
+/** Check whether the internal state of the hash in 'obj' is
* consistent. Return NULL if it is, and a short message if it is not.
*/
-const char *ed25519_v1_check(const ed25519_v1_t *obj);
+const char *hash_check(const hash_t *obj);
/** Clear any errors that were set on the object 'obj' by its setter
* functions. Return true iff errors were cleared.
*/
-int ed25519_v1_clear_errors(ed25519_v1_t *obj);
-/** Return the value of the format field of the ed25519_v1_t in 'inp'
+int hash_clear_errors(hash_t *obj);
+/** Return the (constant) length of the array holding the hash field
+ * of the hash_t in 'inp'.
*/
-uint64_t ed25519_v1_get_format(const ed25519_v1_t *inp);
-/** Set the value of the format field of the ed25519_v1_t in 'inp' to
- * 'val'. Return 0 on success; return -1 and set the error code on
- * 'inp' on failure.
+size_t hash_getlen_hash(const hash_t *inp);
+/** Return the element at position 'idx' of the fixed array field hash
+ * of the hash_t in 'inp'.
*/
-int ed25519_v1_set_format(ed25519_v1_t *inp, uint64_t val);
-/** Return the (constant) length of the array holding the pubkey field
- * of the ed25519_v1_t in 'inp'.
+uint8_t hash_get_hash(hash_t *inp, size_t idx);
+/** As hash_get_hash, but take and return a const pointer
*/
-size_t ed25519_v1_getlen_pubkey(const ed25519_v1_t *inp);
-/** Return the element at position 'idx' of the fixed array field
- * pubkey of the ed25519_v1_t in 'inp'.
+uint8_t hash_getconst_hash(const hash_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field hash
+ * of the hash_t in 'inp', so that it will hold the value 'elt'.
*/
-uint8_t ed25519_v1_get_pubkey(ed25519_v1_t *inp, size_t idx);
-/** As ed25519_v1_get_pubkey, but take and return a const pointer
+int hash_set_hash(hash_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field hash of 'inp'.
*/
-uint8_t ed25519_v1_getconst_pubkey(const ed25519_v1_t *inp, size_t idx);
-/** Change the element at position 'idx' of the fixed array field
- * pubkey of the ed25519_v1_t in 'inp', so that it will hold the value
- * 'elt'.
- */
-int ed25519_v1_set_pubkey(ed25519_v1_t *inp, size_t idx, uint8_t elt);
-/** Return a pointer to the 32-element array field pubkey of 'inp'.
- */
-uint8_t * ed25519_v1_getarray_pubkey(ed25519_v1_t *inp);
-/** As ed25519_v1_get_pubkey, but take and return a const pointer
+uint8_t * hash_getarray_hash(hash_t *inp);
+/** As hash_get_hash, but take and return a const pointer
*/
-const uint8_t * ed25519_v1_getconstarray_pubkey(const ed25519_v1_t *inp);
+const uint8_t * hash_getconstarray_hash(const hash_t *inp);
/** Return a newly allocated req_get_consistency_proof_v1 with all
* elements set to zero.
*/
@@ -350,136 +361,243 @@ uint8_t * req_get_proof_by_hash_v1_getarray_leaf_hash(req_get_proof_by_hash_v1_t
* const pointer
*/
const uint8_t * req_get_proof_by_hash_v1_getconstarray_leaf_hash(const req_get_proof_by_hash_v1_t *inp);
-/** Return a newly allocated signed_tree_head_v1 with all elements set
- * to zero.
+/** Return a newly allocated sigident_ed25519 with all elements set to
+ * zero.
*/
-signed_tree_head_v1_t *signed_tree_head_v1_new(void);
-/** Release all storage held by the signed_tree_head_v1 in 'victim'.
- * (Do nothing if 'victim' is NULL.)
+sigident_ed25519_t *sigident_ed25519_new(void);
+/** Release all storage held by the sigident_ed25519 in 'victim'. (Do
+ * nothing if 'victim' is NULL.)
*/
-void signed_tree_head_v1_free(signed_tree_head_v1_t *victim);
-/** Try to parse a signed_tree_head_v1 from the buffer in 'input',
- * using up to 'len_in' bytes from the input buffer. On success,
- * return the number of bytes consumed and set *output to the newly
- * allocated signed_tree_head_v1_t. On failure, return -2 if the input
- * appears truncated, and -1 if the input is otherwise invalid.
+void sigident_ed25519_free(sigident_ed25519_t *victim);
+/** Try to parse a sigident_ed25519 from the buffer in 'input', using
+ * up to 'len_in' bytes from the input buffer. On success, return the
+ * number of bytes consumed and set *output to the newly allocated
+ * sigident_ed25519_t. On failure, return -2 if the input appears
+ * truncated, and -1 if the input is otherwise invalid.
*/
-ssize_t signed_tree_head_v1_parse(signed_tree_head_v1_t **output, const uint8_t *input, const size_t len_in);
+ssize_t sigident_ed25519_parse(sigident_ed25519_t **output, const uint8_t *input, const size_t len_in);
/** Return the number of bytes we expect to need to encode the
- * signed_tree_head_v1 in 'obj'. On failure, return a negative value.
+ * sigident_ed25519 in 'obj'. On failure, return a negative value.
* Note that this value may be an overestimate, and can even be an
* underestimate for certain unencodeable objects.
*/
-ssize_t signed_tree_head_v1_encoded_len(const signed_tree_head_v1_t *obj);
-/** Try to encode the signed_tree_head_v1 from 'input' into the buffer
- * at 'output', using up to 'avail' bytes of the output buffer. On
+ssize_t sigident_ed25519_encoded_len(const sigident_ed25519_t *obj);
+/** Try to encode the sigident_ed25519 from 'input' into the buffer at
+ * 'output', using up to 'avail' bytes of the output buffer. On
* success, return the number of bytes used. On failure, return -2 if
* the buffer was not long enough, and -1 if the input was invalid.
*/
-ssize_t signed_tree_head_v1_encode(uint8_t *output, size_t avail, const signed_tree_head_v1_t *input);
-/** Check whether the internal state of the signed_tree_head_v1 in
- * 'obj' is consistent. Return NULL if it is, and a short message if
- * it is not.
+ssize_t sigident_ed25519_encode(uint8_t *output, size_t avail, const sigident_ed25519_t *input);
+/** Check whether the internal state of the sigident_ed25519 in 'obj'
+ * is consistent. Return NULL if it is, and a short message if it is
+ * not.
*/
-const char *signed_tree_head_v1_check(const signed_tree_head_v1_t *obj);
+const char *sigident_ed25519_check(const sigident_ed25519_t *obj);
/** Clear any errors that were set on the object 'obj' by its setter
* functions. Return true iff errors were cleared.
*/
-int signed_tree_head_v1_clear_errors(signed_tree_head_v1_t *obj);
-/** Return the value of the format field of the signed_tree_head_v1_t
- * in 'inp'
+int sigident_ed25519_clear_errors(sigident_ed25519_t *obj);
+/** Return the (constant) length of the array holding the signature
+ * field of the sigident_ed25519_t in 'inp'.
*/
-uint64_t signed_tree_head_v1_get_format(const signed_tree_head_v1_t *inp);
-/** Set the value of the format field of the signed_tree_head_v1_t in
- * 'inp' to 'val'. Return 0 on success; return -1 and set the error
- * code on 'inp' on failure.
+size_t sigident_ed25519_getlen_signature(const sigident_ed25519_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * signature of the sigident_ed25519_t in 'inp'.
*/
-int signed_tree_head_v1_set_format(signed_tree_head_v1_t *inp, uint64_t val);
-/** Return the value of the timestamp field of the
- * signed_tree_head_v1_t in 'inp'
+uint8_t sigident_ed25519_get_signature(sigident_ed25519_t *inp, size_t idx);
+/** As sigident_ed25519_get_signature, but take and return a const
+ * pointer
*/
-uint64_t signed_tree_head_v1_get_timestamp(const signed_tree_head_v1_t *inp);
-/** Set the value of the timestamp field of the signed_tree_head_v1_t
- * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
- * code on 'inp' on failure.
+uint8_t sigident_ed25519_getconst_signature(const sigident_ed25519_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * signature of the sigident_ed25519_t in 'inp', so that it will hold
+ * the value 'elt'.
*/
-int signed_tree_head_v1_set_timestamp(signed_tree_head_v1_t *inp, uint64_t val);
-/** Return the value of the tree_size field of the
- * signed_tree_head_v1_t in 'inp'
+int sigident_ed25519_set_signature(sigident_ed25519_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 64-element array field signature of 'inp'.
*/
-uint64_t signed_tree_head_v1_get_tree_size(const signed_tree_head_v1_t *inp);
-/** Set the value of the tree_size field of the signed_tree_head_v1_t
- * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
- * code on 'inp' on failure.
+uint8_t * sigident_ed25519_getarray_signature(sigident_ed25519_t *inp);
+/** As sigident_ed25519_get_signature, but take and return a const
+ * pointer
*/
-int signed_tree_head_v1_set_tree_size(signed_tree_head_v1_t *inp, uint64_t val);
-/** Return the (constant) length of the array holding the root_hash
- * field of the signed_tree_head_v1_t in 'inp'.
+const uint8_t * sigident_ed25519_getconstarray_signature(const sigident_ed25519_t *inp);
+/** Return the (constant) length of the array holding the identifier
+ * field of the sigident_ed25519_t in 'inp'.
*/
-size_t signed_tree_head_v1_getlen_root_hash(const signed_tree_head_v1_t *inp);
+size_t sigident_ed25519_getlen_identifier(const sigident_ed25519_t *inp);
/** Return the element at position 'idx' of the fixed array field
- * root_hash of the signed_tree_head_v1_t in 'inp'.
+ * identifier of the sigident_ed25519_t in 'inp'.
*/
-uint8_t signed_tree_head_v1_get_root_hash(signed_tree_head_v1_t *inp, size_t idx);
-/** As signed_tree_head_v1_get_root_hash, but take and return a const
+uint8_t sigident_ed25519_get_identifier(sigident_ed25519_t *inp, size_t idx);
+/** As sigident_ed25519_get_identifier, but take and return a const
* pointer
*/
-uint8_t signed_tree_head_v1_getconst_root_hash(const signed_tree_head_v1_t *inp, size_t idx);
+uint8_t sigident_ed25519_getconst_identifier(const sigident_ed25519_t *inp, size_t idx);
/** Change the element at position 'idx' of the fixed array field
- * root_hash of the signed_tree_head_v1_t in 'inp', so that it will
- * hold the value 'elt'.
+ * identifier of the sigident_ed25519_t in 'inp', so that it will hold
+ * the value 'elt'.
*/
-int signed_tree_head_v1_set_root_hash(signed_tree_head_v1_t *inp, size_t idx, uint8_t elt);
-/** Return a pointer to the 32-element array field root_hash of 'inp'.
+int sigident_ed25519_set_identifier(sigident_ed25519_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field identifier of
+ * 'inp'.
*/
-uint8_t * signed_tree_head_v1_getarray_root_hash(signed_tree_head_v1_t *inp);
-/** As signed_tree_head_v1_get_root_hash, but take and return a const
+uint8_t * sigident_ed25519_getarray_identifier(sigident_ed25519_t *inp);
+/** As sigident_ed25519_get_identifier, but take and return a const
* pointer
*/
-const uint8_t * signed_tree_head_v1_getconstarray_root_hash(const signed_tree_head_v1_t *inp);
-/** Return the value of the length field of the signed_tree_head_v1_t
- * in 'inp'
+const uint8_t * sigident_ed25519_getconstarray_identifier(const sigident_ed25519_t *inp);
+/** Return a newly allocated signed_checksum32_ed25519 with all
+ * elements set to zero.
*/
-uint64_t signed_tree_head_v1_get_length(const signed_tree_head_v1_t *inp);
-/** Set the value of the length field of the signed_tree_head_v1_t in
- * 'inp' to 'val'. Return 0 on success; return -1 and set the error
- * code on 'inp' on failure.
+signed_checksum32_ed25519_t *signed_checksum32_ed25519_new(void);
+/** Release all storage held by the signed_checksum32_ed25519 in
+ * 'victim'. (Do nothing if 'victim' is NULL.)
*/
-int signed_tree_head_v1_set_length(signed_tree_head_v1_t *inp, uint64_t val);
-/** Return the length of the dynamic array holding the sigident field
- * of the signed_tree_head_v1_t in 'inp'.
+void signed_checksum32_ed25519_free(signed_checksum32_ed25519_t *victim);
+/** Try to parse a signed_checksum32_ed25519 from the buffer in
+ * 'input', using up to 'len_in' bytes from the input buffer. On
+ * success, return the number of bytes consumed and set *output to the
+ * newly allocated signed_checksum32_ed25519_t. On failure, return -2
+ * if the input appears truncated, and -1 if the input is otherwise
+ * invalid.
+ */
+ssize_t signed_checksum32_ed25519_parse(signed_checksum32_ed25519_t **output, const uint8_t *input, const size_t len_in);
+/** Return the number of bytes we expect to need to encode the
+ * signed_checksum32_ed25519 in 'obj'. On failure, return a negative
+ * value. Note that this value may be an overestimate, and can even be
+ * an underestimate for certain unencodeable objects.
+ */
+ssize_t signed_checksum32_ed25519_encoded_len(const signed_checksum32_ed25519_t *obj);
+/** Try to encode the signed_checksum32_ed25519 from 'input' into the
+ * buffer at 'output', using up to 'avail' bytes of the output buffer.
+ * On success, return the number of bytes used. On failure, return -2
+ * if the buffer was not long enough, and -1 if the input was invalid.
+ */
+ssize_t signed_checksum32_ed25519_encode(uint8_t *output, size_t avail, const signed_checksum32_ed25519_t *input);
+/** Check whether the internal state of the signed_checksum32_ed25519
+ * in 'obj' is consistent. Return NULL if it is, and a short message
+ * if it is not.
+ */
+const char *signed_checksum32_ed25519_check(const signed_checksum32_ed25519_t *obj);
+/** Clear any errors that were set on the object 'obj' by its setter
+ * functions. Return true iff errors were cleared.
+ */
+int signed_checksum32_ed25519_clear_errors(signed_checksum32_ed25519_t *obj);
+/** Return the (constant) length of the array holding the checksum
+ * field of the signed_checksum32_ed25519_t in 'inp'.
+ */
+size_t signed_checksum32_ed25519_getlen_checksum(const signed_checksum32_ed25519_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * checksum of the signed_checksum32_ed25519_t in 'inp'.
*/
-size_t signed_tree_head_v1_getlen_sigident(const signed_tree_head_v1_t *inp);
+uint8_t signed_checksum32_ed25519_get_checksum(signed_checksum32_ed25519_t *inp, size_t idx);
+/** As signed_checksum32_ed25519_get_checksum, but take and return a
+ * const pointer
+ */
+uint8_t signed_checksum32_ed25519_getconst_checksum(const signed_checksum32_ed25519_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * checksum of the signed_checksum32_ed25519_t in 'inp', so that it
+ * will hold the value 'elt'.
+ */
+int signed_checksum32_ed25519_set_checksum(signed_checksum32_ed25519_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field checksum of 'inp'.
+ */
+uint8_t * signed_checksum32_ed25519_getarray_checksum(signed_checksum32_ed25519_t *inp);
+/** As signed_checksum32_ed25519_get_checksum, but take and return a
+ * const pointer
+ */
+const uint8_t * signed_checksum32_ed25519_getconstarray_checksum(const signed_checksum32_ed25519_t *inp);
+/** Return the value of the length field of the
+ * signed_checksum32_ed25519_t in 'inp'
+ */
+uint64_t signed_checksum32_ed25519_get_length(const signed_checksum32_ed25519_t *inp);
+/** Set the value of the length field of the
+ * signed_checksum32_ed25519_t in 'inp' to 'val'. Return 0 on success;
+ * return -1 and set the error code on 'inp' on failure.
+ */
+int signed_checksum32_ed25519_set_length(signed_checksum32_ed25519_t *inp, uint64_t val);
+/** Return the length of the dynamic array holding the identifier
+ * field of the signed_checksum32_ed25519_t in 'inp'.
+ */
+size_t signed_checksum32_ed25519_getlen_identifier(const signed_checksum32_ed25519_t *inp);
/** Return the element at position 'idx' of the dynamic array field
- * sigident of the signed_tree_head_v1_t in 'inp'.
+ * identifier of the signed_checksum32_ed25519_t in 'inp'.
*/
-uint8_t signed_tree_head_v1_get_sigident(signed_tree_head_v1_t *inp, size_t idx);
-/** As signed_tree_head_v1_get_sigident, but take and return a const
- * pointer
+uint8_t signed_checksum32_ed25519_get_identifier(signed_checksum32_ed25519_t *inp, size_t idx);
+/** As signed_checksum32_ed25519_get_identifier, but take and return a
+ * const pointer
*/
-uint8_t signed_tree_head_v1_getconst_sigident(const signed_tree_head_v1_t *inp, size_t idx);
+uint8_t signed_checksum32_ed25519_getconst_identifier(const signed_checksum32_ed25519_t *inp, size_t idx);
/** Change the element at position 'idx' of the dynamic array field
- * sigident of the signed_tree_head_v1_t in 'inp', so that it will
- * hold the value 'elt'.
+ * identifier of the signed_checksum32_ed25519_t in 'inp', so that it
+ * will hold the value 'elt'.
*/
-int signed_tree_head_v1_set_sigident(signed_tree_head_v1_t *inp, size_t idx, uint8_t elt);
-/** Append a new element 'elt' to the dynamic array field sigident of
- * the signed_tree_head_v1_t in 'inp'.
+int signed_checksum32_ed25519_set_identifier(signed_checksum32_ed25519_t *inp, size_t idx, uint8_t elt);
+/** Append a new element 'elt' to the dynamic array field identifier
+ * of the signed_checksum32_ed25519_t in 'inp'.
*/
-int signed_tree_head_v1_add_sigident(signed_tree_head_v1_t *inp, uint8_t elt);
-/** Return a pointer to the variable-length array field sigident of
+int signed_checksum32_ed25519_add_identifier(signed_checksum32_ed25519_t *inp, uint8_t elt);
+/** Return a pointer to the variable-length array field identifier of
* 'inp'.
*/
-uint8_t * signed_tree_head_v1_getarray_sigident(signed_tree_head_v1_t *inp);
-/** As signed_tree_head_v1_get_sigident, but take and return a const
- * pointer
+uint8_t * signed_checksum32_ed25519_getarray_identifier(signed_checksum32_ed25519_t *inp);
+/** As signed_checksum32_ed25519_get_identifier, but take and return a
+ * const pointer
*/
-const uint8_t * signed_tree_head_v1_getconstarray_sigident(const signed_tree_head_v1_t *inp);
-/** Change the length of the variable-length array field sigident of
+const uint8_t * signed_checksum32_ed25519_getconstarray_identifier(const signed_checksum32_ed25519_t *inp);
+/** Change the length of the variable-length array field identifier of
* 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
* return -1 and set the error code on 'inp' on failure.
*/
-int signed_tree_head_v1_setlen_sigident(signed_tree_head_v1_t *inp, size_t newlen);
+int signed_checksum32_ed25519_setlen_identifier(signed_checksum32_ed25519_t *inp, size_t newlen);
+/** Return the (constant) length of the array holding the signature
+ * field of the signed_checksum32_ed25519_t in 'inp'.
+ */
+size_t signed_checksum32_ed25519_getlen_signature(const signed_checksum32_ed25519_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * signature of the signed_checksum32_ed25519_t in 'inp'.
+ */
+uint8_t signed_checksum32_ed25519_get_signature(signed_checksum32_ed25519_t *inp, size_t idx);
+/** As signed_checksum32_ed25519_get_signature, but take and return a
+ * const pointer
+ */
+uint8_t signed_checksum32_ed25519_getconst_signature(const signed_checksum32_ed25519_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * signature of the signed_checksum32_ed25519_t in 'inp', so that it
+ * will hold the value 'elt'.
+ */
+int signed_checksum32_ed25519_set_signature(signed_checksum32_ed25519_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 64-element array field signature of 'inp'.
+ */
+uint8_t * signed_checksum32_ed25519_getarray_signature(signed_checksum32_ed25519_t *inp);
+/** As signed_checksum32_ed25519_get_signature, but take and return a
+ * const pointer
+ */
+const uint8_t * signed_checksum32_ed25519_getconstarray_signature(const signed_checksum32_ed25519_t *inp);
+/** Return the (constant) length of the array holding the namespace
+ * field of the signed_checksum32_ed25519_t in 'inp'.
+ */
+size_t signed_checksum32_ed25519_getlen_namespace(const signed_checksum32_ed25519_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * namespace of the signed_checksum32_ed25519_t in 'inp'.
+ */
+uint8_t signed_checksum32_ed25519_get_namespace(signed_checksum32_ed25519_t *inp, size_t idx);
+/** As signed_checksum32_ed25519_get_namespace, but take and return a
+ * const pointer
+ */
+uint8_t signed_checksum32_ed25519_getconst_namespace(const signed_checksum32_ed25519_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * namespace of the signed_checksum32_ed25519_t in 'inp', so that it
+ * will hold the value 'elt'.
+ */
+int signed_checksum32_ed25519_set_namespace(signed_checksum32_ed25519_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field namespace of 'inp'.
+ */
+uint8_t * signed_checksum32_ed25519_getarray_namespace(signed_checksum32_ed25519_t *inp);
+/** As signed_checksum32_ed25519_get_namespace, but take and return a
+ * const pointer
+ */
+const uint8_t * signed_checksum32_ed25519_getconstarray_namespace(const signed_checksum32_ed25519_t *inp);
/** Return a newly allocated consistency_proof_v1 with all elements
* set to zero.
*/
@@ -516,6 +634,15 @@ const char *consistency_proof_v1_check(const consistency_proof_v1_t *obj);
* functions. Return true iff errors were cleared.
*/
int consistency_proof_v1_clear_errors(consistency_proof_v1_t *obj);
+/** Return the value of the magic field of the consistency_proof_v1_t
+ * in 'inp'
+ */
+uint64_t consistency_proof_v1_get_magic(const consistency_proof_v1_t *inp);
+/** Set the value of the magic field of the consistency_proof_v1_t in
+ * 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
+ */
+int consistency_proof_v1_set_magic(consistency_proof_v1_t *inp, uint64_t val);
/** Return the value of the format field of the consistency_proof_v1_t
* in 'inp'
*/
@@ -525,24 +652,31 @@ uint64_t consistency_proof_v1_get_format(const consistency_proof_v1_t *inp);
* code on 'inp' on failure.
*/
int consistency_proof_v1_set_format(consistency_proof_v1_t *inp, uint64_t val);
-/** Return the value of the identifier field of the
- * consistency_proof_v1_t in 'inp'
+/** Return the (constant) length of the array holding the identifier
+ * field of the consistency_proof_v1_t in 'inp'.
*/
-struct ed25519_v1_st * consistency_proof_v1_get_identifier(consistency_proof_v1_t *inp);
+size_t consistency_proof_v1_getlen_identifier(const consistency_proof_v1_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * identifier of the consistency_proof_v1_t in 'inp'.
+ */
+uint8_t consistency_proof_v1_get_identifier(consistency_proof_v1_t *inp, size_t idx);
/** As consistency_proof_v1_get_identifier, but take and return a
* const pointer
*/
-const struct ed25519_v1_st * consistency_proof_v1_getconst_identifier(const consistency_proof_v1_t *inp);
-/** Set the value of the identifier field of the
- * consistency_proof_v1_t in 'inp' to 'val'. Free the old value if
- * any. Steals the referenceto 'val'.Return 0 on success; return -1
- * and set the error code on 'inp' on failure.
+uint8_t consistency_proof_v1_getconst_identifier(const consistency_proof_v1_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * identifier of the consistency_proof_v1_t in 'inp', so that it will
+ * hold the value 'elt'.
*/
-int consistency_proof_v1_set_identifier(consistency_proof_v1_t *inp, struct ed25519_v1_st *val);
-/** As consistency_proof_v1_set_identifier, but does not free the
- * previous value.
+int consistency_proof_v1_set_identifier(consistency_proof_v1_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field identifier of
+ * 'inp'.
*/
-int consistency_proof_v1_set0_identifier(consistency_proof_v1_t *inp, struct ed25519_v1_st *val);
+uint8_t * consistency_proof_v1_getarray_identifier(consistency_proof_v1_t *inp);
+/** As consistency_proof_v1_get_identifier, but take and return a
+ * const pointer
+ */
+const uint8_t * consistency_proof_v1_getconstarray_identifier(const consistency_proof_v1_t *inp);
/** Return the value of the old_size field of the
* consistency_proof_v1_t in 'inp'
*/
@@ -561,15 +695,15 @@ uint64_t consistency_proof_v1_get_new_size(const consistency_proof_v1_t *inp);
* code on 'inp' on failure.
*/
int consistency_proof_v1_set_new_size(consistency_proof_v1_t *inp, uint64_t val);
-/** Return the value of the length field of the consistency_proof_v1_t
- * in 'inp'
+/** Return the value of the n_items field of the
+ * consistency_proof_v1_t in 'inp'
*/
-uint64_t consistency_proof_v1_get_length(const consistency_proof_v1_t *inp);
-/** Set the value of the length field of the consistency_proof_v1_t in
- * 'inp' to 'val'. Return 0 on success; return -1 and set the error
+uint64_t consistency_proof_v1_get_n_items(const consistency_proof_v1_t *inp);
+/** Set the value of the n_items field of the consistency_proof_v1_t
+ * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
* code on 'inp' on failure.
*/
-int consistency_proof_v1_set_length(consistency_proof_v1_t *inp, uint64_t val);
+int consistency_proof_v1_set_n_items(consistency_proof_v1_t *inp, uint64_t val);
/** Return the length of the dynamic array holding the hashes field of
* the consistency_proof_v1_t in 'inp'.
*/
@@ -577,33 +711,132 @@ size_t consistency_proof_v1_getlen_hashes(const consistency_proof_v1_t *inp);
/** Return the element at position 'idx' of the dynamic array field
* hashes of the consistency_proof_v1_t in 'inp'.
*/
-uint8_t consistency_proof_v1_get_hashes(consistency_proof_v1_t *inp, size_t idx);
+struct hash_st * consistency_proof_v1_get_hashes(consistency_proof_v1_t *inp, size_t idx);
/** As consistency_proof_v1_get_hashes, but take and return a const
* pointer
*/
-uint8_t consistency_proof_v1_getconst_hashes(const consistency_proof_v1_t *inp, size_t idx);
+ const struct hash_st * consistency_proof_v1_getconst_hashes(const consistency_proof_v1_t *inp, size_t idx);
/** Change the element at position 'idx' of the dynamic array field
* hashes of the consistency_proof_v1_t in 'inp', so that it will hold
- * the value 'elt'.
+ * the value 'elt'. Free the previous value, if any.
+ */
+int consistency_proof_v1_set_hashes(consistency_proof_v1_t *inp, size_t idx, struct hash_st * elt);
+/** As consistency_proof_v1_set_hashes, but does not free the previous
+ * value.
*/
-int consistency_proof_v1_set_hashes(consistency_proof_v1_t *inp, size_t idx, uint8_t elt);
+int consistency_proof_v1_set0_hashes(consistency_proof_v1_t *inp, size_t idx, struct hash_st * elt);
/** Append a new element 'elt' to the dynamic array field hashes of
* the consistency_proof_v1_t in 'inp'.
*/
-int consistency_proof_v1_add_hashes(consistency_proof_v1_t *inp, uint8_t elt);
+int consistency_proof_v1_add_hashes(consistency_proof_v1_t *inp, struct hash_st * elt);
/** Return a pointer to the variable-length array field hashes of
* 'inp'.
*/
-uint8_t * consistency_proof_v1_getarray_hashes(consistency_proof_v1_t *inp);
+struct hash_st * * consistency_proof_v1_getarray_hashes(consistency_proof_v1_t *inp);
/** As consistency_proof_v1_get_hashes, but take and return a const
* pointer
*/
-const uint8_t * consistency_proof_v1_getconstarray_hashes(const consistency_proof_v1_t *inp);
+const struct hash_st * const * consistency_proof_v1_getconstarray_hashes(const consistency_proof_v1_t *inp);
/** Change the length of the variable-length array field hashes of
- * 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
- * return -1 and set the error code on 'inp' on failure.
+ * 'inp' to 'newlen'.Fill extra elements with NULL; free removed
+ * elements. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
*/
int consistency_proof_v1_setlen_hashes(consistency_proof_v1_t *inp, size_t newlen);
+/** Return a newly allocated entries_v1 with all elements set to zero.
+ */
+entries_v1_t *entries_v1_new(void);
+/** Release all storage held by the entries_v1 in 'victim'. (Do
+ * nothing if 'victim' is NULL.)
+ */
+void entries_v1_free(entries_v1_t *victim);
+/** Try to parse a entries_v1 from the buffer in 'input', using up to
+ * 'len_in' bytes from the input buffer. On success, return the number
+ * of bytes consumed and set *output to the newly allocated
+ * entries_v1_t. On failure, return -2 if the input appears truncated,
+ * and -1 if the input is otherwise invalid.
+ */
+ssize_t entries_v1_parse(entries_v1_t **output, const uint8_t *input, const size_t len_in);
+/** Return the number of bytes we expect to need to encode the
+ * entries_v1 in 'obj'. On failure, return a negative value. Note that
+ * this value may be an overestimate, and can even be an underestimate
+ * for certain unencodeable objects.
+ */
+ssize_t entries_v1_encoded_len(const entries_v1_t *obj);
+/** Try to encode the entries_v1 from 'input' into the buffer at
+ * 'output', using up to 'avail' bytes of the output buffer. On
+ * success, return the number of bytes used. On failure, return -2 if
+ * the buffer was not long enough, and -1 if the input was invalid.
+ */
+ssize_t entries_v1_encode(uint8_t *output, size_t avail, const entries_v1_t *input);
+/** Check whether the internal state of the entries_v1 in 'obj' is
+ * consistent. Return NULL if it is, and a short message if it is not.
+ */
+const char *entries_v1_check(const entries_v1_t *obj);
+/** Clear any errors that were set on the object 'obj' by its setter
+ * functions. Return true iff errors were cleared.
+ */
+int entries_v1_clear_errors(entries_v1_t *obj);
+/** Return the value of the magic field of the entries_v1_t in 'inp'
+ */
+uint64_t entries_v1_get_magic(const entries_v1_t *inp);
+/** Set the value of the magic field of the entries_v1_t in 'inp' to
+ * 'val'. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
+ */
+int entries_v1_set_magic(entries_v1_t *inp, uint64_t val);
+/** Return the value of the format field of the entries_v1_t in 'inp'
+ */
+uint64_t entries_v1_get_format(const entries_v1_t *inp);
+/** Set the value of the format field of the entries_v1_t in 'inp' to
+ * 'val'. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
+ */
+int entries_v1_set_format(entries_v1_t *inp, uint64_t val);
+/** Return the value of the n_items field of the entries_v1_t in 'inp'
+ */
+uint64_t entries_v1_get_n_items(const entries_v1_t *inp);
+/** Set the value of the n_items field of the entries_v1_t in 'inp' to
+ * 'val'. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
+ */
+int entries_v1_set_n_items(entries_v1_t *inp, uint64_t val);
+/** Return the length of the dynamic array holding the checksums field
+ * of the entries_v1_t in 'inp'.
+ */
+size_t entries_v1_getlen_checksums(const entries_v1_t *inp);
+/** Return the element at position 'idx' of the dynamic array field
+ * checksums of the entries_v1_t in 'inp'.
+ */
+struct signed_checksum32_ed25519_st * entries_v1_get_checksums(entries_v1_t *inp, size_t idx);
+/** As entries_v1_get_checksums, but take and return a const pointer
+ */
+ const struct signed_checksum32_ed25519_st * entries_v1_getconst_checksums(const entries_v1_t *inp, size_t idx);
+/** Change the element at position 'idx' of the dynamic array field
+ * checksums of the entries_v1_t in 'inp', so that it will hold the
+ * value 'elt'. Free the previous value, if any.
+ */
+int entries_v1_set_checksums(entries_v1_t *inp, size_t idx, struct signed_checksum32_ed25519_st * elt);
+/** As entries_v1_set_checksums, but does not free the previous value.
+ */
+int entries_v1_set0_checksums(entries_v1_t *inp, size_t idx, struct signed_checksum32_ed25519_st * elt);
+/** Append a new element 'elt' to the dynamic array field checksums of
+ * the entries_v1_t in 'inp'.
+ */
+int entries_v1_add_checksums(entries_v1_t *inp, struct signed_checksum32_ed25519_st * elt);
+/** Return a pointer to the variable-length array field checksums of
+ * 'inp'.
+ */
+struct signed_checksum32_ed25519_st * * entries_v1_getarray_checksums(entries_v1_t *inp);
+/** As entries_v1_get_checksums, but take and return a const pointer
+ */
+const struct signed_checksum32_ed25519_st * const * entries_v1_getconstarray_checksums(const entries_v1_t *inp);
+/** Change the length of the variable-length array field checksums of
+ * 'inp' to 'newlen'.Fill extra elements with NULL; free removed
+ * elements. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
+ */
+int entries_v1_setlen_checksums(entries_v1_t *inp, size_t newlen);
/** Return a newly allocated inclusion_proof_v1 with all elements set
* to zero.
*/
@@ -640,6 +873,15 @@ const char *inclusion_proof_v1_check(const inclusion_proof_v1_t *obj);
* functions. Return true iff errors were cleared.
*/
int inclusion_proof_v1_clear_errors(inclusion_proof_v1_t *obj);
+/** Return the value of the magic field of the inclusion_proof_v1_t in
+ * 'inp'
+ */
+uint64_t inclusion_proof_v1_get_magic(const inclusion_proof_v1_t *inp);
+/** Set the value of the magic field of the inclusion_proof_v1_t in
+ * 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
+ */
+int inclusion_proof_v1_set_magic(inclusion_proof_v1_t *inp, uint64_t val);
/** Return the value of the format field of the inclusion_proof_v1_t
* in 'inp'
*/
@@ -649,24 +891,31 @@ uint64_t inclusion_proof_v1_get_format(const inclusion_proof_v1_t *inp);
* code on 'inp' on failure.
*/
int inclusion_proof_v1_set_format(inclusion_proof_v1_t *inp, uint64_t val);
-/** Return the value of the identifier field of the
- * inclusion_proof_v1_t in 'inp'
+/** Return the (constant) length of the array holding the identifier
+ * field of the inclusion_proof_v1_t in 'inp'.
*/
-struct ed25519_v1_st * inclusion_proof_v1_get_identifier(inclusion_proof_v1_t *inp);
+size_t inclusion_proof_v1_getlen_identifier(const inclusion_proof_v1_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * identifier of the inclusion_proof_v1_t in 'inp'.
+ */
+uint8_t inclusion_proof_v1_get_identifier(inclusion_proof_v1_t *inp, size_t idx);
/** As inclusion_proof_v1_get_identifier, but take and return a const
* pointer
*/
-const struct ed25519_v1_st * inclusion_proof_v1_getconst_identifier(const inclusion_proof_v1_t *inp);
-/** Set the value of the identifier field of the inclusion_proof_v1_t
- * in 'inp' to 'val'. Free the old value if any. Steals the
- * referenceto 'val'.Return 0 on success; return -1 and set the error
- * code on 'inp' on failure.
+uint8_t inclusion_proof_v1_getconst_identifier(const inclusion_proof_v1_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * identifier of the inclusion_proof_v1_t in 'inp', so that it will
+ * hold the value 'elt'.
*/
-int inclusion_proof_v1_set_identifier(inclusion_proof_v1_t *inp, struct ed25519_v1_st *val);
-/** As inclusion_proof_v1_set_identifier, but does not free the
- * previous value.
+int inclusion_proof_v1_set_identifier(inclusion_proof_v1_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field identifier of
+ * 'inp'.
*/
-int inclusion_proof_v1_set0_identifier(inclusion_proof_v1_t *inp, struct ed25519_v1_st *val);
+uint8_t * inclusion_proof_v1_getarray_identifier(inclusion_proof_v1_t *inp);
+/** As inclusion_proof_v1_get_identifier, but take and return a const
+ * pointer
+ */
+const uint8_t * inclusion_proof_v1_getconstarray_identifier(const inclusion_proof_v1_t *inp);
/** Return the value of the tree_size field of the
* inclusion_proof_v1_t in 'inp'
*/
@@ -685,15 +934,15 @@ uint64_t inclusion_proof_v1_get_leaf_index(const inclusion_proof_v1_t *inp);
* code on 'inp' on failure.
*/
int inclusion_proof_v1_set_leaf_index(inclusion_proof_v1_t *inp, uint64_t val);
-/** Return the value of the length field of the inclusion_proof_v1_t
+/** Return the value of the n_items field of the inclusion_proof_v1_t
* in 'inp'
*/
-uint64_t inclusion_proof_v1_get_length(const inclusion_proof_v1_t *inp);
-/** Set the value of the length field of the inclusion_proof_v1_t in
+uint64_t inclusion_proof_v1_get_n_items(const inclusion_proof_v1_t *inp);
+/** Set the value of the n_items field of the inclusion_proof_v1_t in
* 'inp' to 'val'. Return 0 on success; return -1 and set the error
* code on 'inp' on failure.
*/
-int inclusion_proof_v1_set_length(inclusion_proof_v1_t *inp, uint64_t val);
+int inclusion_proof_v1_set_n_items(inclusion_proof_v1_t *inp, uint64_t val);
/** Return the length of the dynamic array holding the hashes field of
* the inclusion_proof_v1_t in 'inp'.
*/
@@ -701,31 +950,36 @@ size_t inclusion_proof_v1_getlen_hashes(const inclusion_proof_v1_t *inp);
/** Return the element at position 'idx' of the dynamic array field
* hashes of the inclusion_proof_v1_t in 'inp'.
*/
-uint8_t inclusion_proof_v1_get_hashes(inclusion_proof_v1_t *inp, size_t idx);
+struct hash_st * inclusion_proof_v1_get_hashes(inclusion_proof_v1_t *inp, size_t idx);
/** As inclusion_proof_v1_get_hashes, but take and return a const
* pointer
*/
-uint8_t inclusion_proof_v1_getconst_hashes(const inclusion_proof_v1_t *inp, size_t idx);
+ const struct hash_st * inclusion_proof_v1_getconst_hashes(const inclusion_proof_v1_t *inp, size_t idx);
/** Change the element at position 'idx' of the dynamic array field
* hashes of the inclusion_proof_v1_t in 'inp', so that it will hold
- * the value 'elt'.
+ * the value 'elt'. Free the previous value, if any.
*/
-int inclusion_proof_v1_set_hashes(inclusion_proof_v1_t *inp, size_t idx, uint8_t elt);
+int inclusion_proof_v1_set_hashes(inclusion_proof_v1_t *inp, size_t idx, struct hash_st * elt);
+/** As inclusion_proof_v1_set_hashes, but does not free the previous
+ * value.
+ */
+int inclusion_proof_v1_set0_hashes(inclusion_proof_v1_t *inp, size_t idx, struct hash_st * elt);
/** Append a new element 'elt' to the dynamic array field hashes of
* the inclusion_proof_v1_t in 'inp'.
*/
-int inclusion_proof_v1_add_hashes(inclusion_proof_v1_t *inp, uint8_t elt);
+int inclusion_proof_v1_add_hashes(inclusion_proof_v1_t *inp, struct hash_st * elt);
/** Return a pointer to the variable-length array field hashes of
* 'inp'.
*/
-uint8_t * inclusion_proof_v1_getarray_hashes(inclusion_proof_v1_t *inp);
+struct hash_st * * inclusion_proof_v1_getarray_hashes(inclusion_proof_v1_t *inp);
/** As inclusion_proof_v1_get_hashes, but take and return a const
* pointer
*/
-const uint8_t * inclusion_proof_v1_getconstarray_hashes(const inclusion_proof_v1_t *inp);
+const struct hash_st * const * inclusion_proof_v1_getconstarray_hashes(const inclusion_proof_v1_t *inp);
/** Change the length of the variable-length array field hashes of
- * 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
- * return -1 and set the error code on 'inp' on failure.
+ * 'inp' to 'newlen'.Fill extra elements with NULL; free removed
+ * elements. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
*/
int inclusion_proof_v1_setlen_hashes(inclusion_proof_v1_t *inp, size_t newlen);
/** Return a newly allocated request_v1 with all elements set to zero.
@@ -762,6 +1016,14 @@ const char *request_v1_check(const request_v1_t *obj);
* functions. Return true iff errors were cleared.
*/
int request_v1_clear_errors(request_v1_t *obj);
+/** Return the value of the magic field of the request_v1_t in 'inp'
+ */
+uint64_t request_v1_get_magic(const request_v1_t *inp);
+/** Set the value of the magic field of the request_v1_t in 'inp' to
+ * 'val'. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
+ */
+int request_v1_set_magic(request_v1_t *inp, uint64_t val);
/** Return the value of the format field of the request_v1_t in 'inp'
*/
uint64_t request_v1_get_format(const request_v1_t *inp);
@@ -824,162 +1086,150 @@ int request_v1_set_request_get_consistency_proof(request_v1_t *inp, struct req_g
* the previous value.
*/
int request_v1_set0_request_get_consistency_proof(request_v1_t *inp, struct req_get_consistency_proof_v1_st *val);
-/** Return a newly allocated signed_checksum32_ed25519_v1 with all
- * elements set to zero.
+/** Return a newly allocated signed_tree_head_v1 with all elements set
+ * to zero.
*/
-signed_checksum32_ed25519_v1_t *signed_checksum32_ed25519_v1_new(void);
-/** Release all storage held by the signed_checksum32_ed25519_v1 in
- * 'victim'. (Do nothing if 'victim' is NULL.)
+signed_tree_head_v1_t *signed_tree_head_v1_new(void);
+/** Release all storage held by the signed_tree_head_v1 in 'victim'.
+ * (Do nothing if 'victim' is NULL.)
*/
-void signed_checksum32_ed25519_v1_free(signed_checksum32_ed25519_v1_t *victim);
-/** Try to parse a signed_checksum32_ed25519_v1 from the buffer in
- * 'input', using up to 'len_in' bytes from the input buffer. On
- * success, return the number of bytes consumed and set *output to the
- * newly allocated signed_checksum32_ed25519_v1_t. On failure, return
- * -2 if the input appears truncated, and -1 if the input is otherwise
- * invalid.
+void signed_tree_head_v1_free(signed_tree_head_v1_t *victim);
+/** Try to parse a signed_tree_head_v1 from the buffer in 'input',
+ * using up to 'len_in' bytes from the input buffer. On success,
+ * return the number of bytes consumed and set *output to the newly
+ * allocated signed_tree_head_v1_t. On failure, return -2 if the input
+ * appears truncated, and -1 if the input is otherwise invalid.
*/
-ssize_t signed_checksum32_ed25519_v1_parse(signed_checksum32_ed25519_v1_t **output, const uint8_t *input, const size_t len_in);
+ssize_t signed_tree_head_v1_parse(signed_tree_head_v1_t **output, const uint8_t *input, const size_t len_in);
/** Return the number of bytes we expect to need to encode the
- * signed_checksum32_ed25519_v1 in 'obj'. On failure, return a
- * negative value. Note that this value may be an overestimate, and
- * can even be an underestimate for certain unencodeable objects.
+ * signed_tree_head_v1 in 'obj'. On failure, return a negative value.
+ * Note that this value may be an overestimate, and can even be an
+ * underestimate for certain unencodeable objects.
*/
-ssize_t signed_checksum32_ed25519_v1_encoded_len(const signed_checksum32_ed25519_v1_t *obj);
-/** Try to encode the signed_checksum32_ed25519_v1 from 'input' into
- * the buffer at 'output', using up to 'avail' bytes of the output
- * buffer. On success, return the number of bytes used. On failure,
- * return -2 if the buffer was not long enough, and -1 if the input
- * was invalid.
+ssize_t signed_tree_head_v1_encoded_len(const signed_tree_head_v1_t *obj);
+/** Try to encode the signed_tree_head_v1 from 'input' into the buffer
+ * at 'output', using up to 'avail' bytes of the output buffer. On
+ * success, return the number of bytes used. On failure, return -2 if
+ * the buffer was not long enough, and -1 if the input was invalid.
*/
-ssize_t signed_checksum32_ed25519_v1_encode(uint8_t *output, size_t avail, const signed_checksum32_ed25519_v1_t *input);
-/** Check whether the internal state of the
- * signed_checksum32_ed25519_v1 in 'obj' is consistent. Return NULL if
- * it is, and a short message if it is not.
+ssize_t signed_tree_head_v1_encode(uint8_t *output, size_t avail, const signed_tree_head_v1_t *input);
+/** Check whether the internal state of the signed_tree_head_v1 in
+ * 'obj' is consistent. Return NULL if it is, and a short message if
+ * it is not.
*/
-const char *signed_checksum32_ed25519_v1_check(const signed_checksum32_ed25519_v1_t *obj);
+const char *signed_tree_head_v1_check(const signed_tree_head_v1_t *obj);
/** Clear any errors that were set on the object 'obj' by its setter
* functions. Return true iff errors were cleared.
*/
-int signed_checksum32_ed25519_v1_clear_errors(signed_checksum32_ed25519_v1_t *obj);
-/** Return the value of the format field of the
- * signed_checksum32_ed25519_v1_t in 'inp'
- */
-uint64_t signed_checksum32_ed25519_v1_get_format(const signed_checksum32_ed25519_v1_t *inp);
-/** Set the value of the format field of the
- * signed_checksum32_ed25519_v1_t in 'inp' to 'val'. Return 0 on
- * success; return -1 and set the error code on 'inp' on failure.
- */
-int signed_checksum32_ed25519_v1_set_format(signed_checksum32_ed25519_v1_t *inp, uint64_t val);
-/** Return the (constant) length of the array holding the checksum
- * field of the signed_checksum32_ed25519_v1_t in 'inp'.
- */
-size_t signed_checksum32_ed25519_v1_getlen_checksum(const signed_checksum32_ed25519_v1_t *inp);
-/** Return the element at position 'idx' of the fixed array field
- * checksum of the signed_checksum32_ed25519_v1_t in 'inp'.
+int signed_tree_head_v1_clear_errors(signed_tree_head_v1_t *obj);
+/** Return the value of the magic field of the signed_tree_head_v1_t
+ * in 'inp'
*/
-uint8_t signed_checksum32_ed25519_v1_get_checksum(signed_checksum32_ed25519_v1_t *inp, size_t idx);
-/** As signed_checksum32_ed25519_v1_get_checksum, but take and return
- * a const pointer
+uint64_t signed_tree_head_v1_get_magic(const signed_tree_head_v1_t *inp);
+/** Set the value of the magic field of the signed_tree_head_v1_t in
+ * 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
*/
-uint8_t signed_checksum32_ed25519_v1_getconst_checksum(const signed_checksum32_ed25519_v1_t *inp, size_t idx);
-/** Change the element at position 'idx' of the fixed array field
- * checksum of the signed_checksum32_ed25519_v1_t in 'inp', so that it
- * will hold the value 'elt'.
+int signed_tree_head_v1_set_magic(signed_tree_head_v1_t *inp, uint64_t val);
+/** Return the value of the format field of the signed_tree_head_v1_t
+ * in 'inp'
*/
-int signed_checksum32_ed25519_v1_set_checksum(signed_checksum32_ed25519_v1_t *inp, size_t idx, uint8_t elt);
-/** Return a pointer to the 32-element array field checksum of 'inp'.
+uint64_t signed_tree_head_v1_get_format(const signed_tree_head_v1_t *inp);
+/** Set the value of the format field of the signed_tree_head_v1_t in
+ * 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
*/
-uint8_t * signed_checksum32_ed25519_v1_getarray_checksum(signed_checksum32_ed25519_v1_t *inp);
-/** As signed_checksum32_ed25519_v1_get_checksum, but take and return
- * a const pointer
+int signed_tree_head_v1_set_format(signed_tree_head_v1_t *inp, uint64_t val);
+/** Return the value of the timestamp field of the
+ * signed_tree_head_v1_t in 'inp'
*/
-const uint8_t * signed_checksum32_ed25519_v1_getconstarray_checksum(const signed_checksum32_ed25519_v1_t *inp);
-/** Return the value of the length field of the
- * signed_checksum32_ed25519_v1_t in 'inp'
+uint64_t signed_tree_head_v1_get_timestamp(const signed_tree_head_v1_t *inp);
+/** Set the value of the timestamp field of the signed_tree_head_v1_t
+ * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
*/
-uint64_t signed_checksum32_ed25519_v1_get_length(const signed_checksum32_ed25519_v1_t *inp);
-/** Set the value of the length field of the
- * signed_checksum32_ed25519_v1_t in 'inp' to 'val'. Return 0 on
- * success; return -1 and set the error code on 'inp' on failure.
+int signed_tree_head_v1_set_timestamp(signed_tree_head_v1_t *inp, uint64_t val);
+/** Return the value of the tree_size field of the
+ * signed_tree_head_v1_t in 'inp'
*/
-int signed_checksum32_ed25519_v1_set_length(signed_checksum32_ed25519_v1_t *inp, uint64_t val);
-/** Return the length of the dynamic array holding the identifier
- * field of the signed_checksum32_ed25519_v1_t in 'inp'.
+uint64_t signed_tree_head_v1_get_tree_size(const signed_tree_head_v1_t *inp);
+/** Set the value of the tree_size field of the signed_tree_head_v1_t
+ * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
*/
-size_t signed_checksum32_ed25519_v1_getlen_identifier(const signed_checksum32_ed25519_v1_t *inp);
-/** Return the element at position 'idx' of the dynamic array field
- * identifier of the signed_checksum32_ed25519_v1_t in 'inp'.
+int signed_tree_head_v1_set_tree_size(signed_tree_head_v1_t *inp, uint64_t val);
+/** Return the (constant) length of the array holding the root_hash
+ * field of the signed_tree_head_v1_t in 'inp'.
*/
-uint8_t signed_checksum32_ed25519_v1_get_identifier(signed_checksum32_ed25519_v1_t *inp, size_t idx);
-/** As signed_checksum32_ed25519_v1_get_identifier, but take and
- * return a const pointer
+size_t signed_tree_head_v1_getlen_root_hash(const signed_tree_head_v1_t *inp);
+/** Return the element at position 'idx' of the fixed array field
+ * root_hash of the signed_tree_head_v1_t in 'inp'.
*/
-uint8_t signed_checksum32_ed25519_v1_getconst_identifier(const signed_checksum32_ed25519_v1_t *inp, size_t idx);
-/** Change the element at position 'idx' of the dynamic array field
- * identifier of the signed_checksum32_ed25519_v1_t in 'inp', so that
- * it will hold the value 'elt'.
+uint8_t signed_tree_head_v1_get_root_hash(signed_tree_head_v1_t *inp, size_t idx);
+/** As signed_tree_head_v1_get_root_hash, but take and return a const
+ * pointer
*/
-int signed_checksum32_ed25519_v1_set_identifier(signed_checksum32_ed25519_v1_t *inp, size_t idx, uint8_t elt);
-/** Append a new element 'elt' to the dynamic array field identifier
- * of the signed_checksum32_ed25519_v1_t in 'inp'.
+uint8_t signed_tree_head_v1_getconst_root_hash(const signed_tree_head_v1_t *inp, size_t idx);
+/** Change the element at position 'idx' of the fixed array field
+ * root_hash of the signed_tree_head_v1_t in 'inp', so that it will
+ * hold the value 'elt'.
*/
-int signed_checksum32_ed25519_v1_add_identifier(signed_checksum32_ed25519_v1_t *inp, uint8_t elt);
-/** Return a pointer to the variable-length array field identifier of
- * 'inp'.
+int signed_tree_head_v1_set_root_hash(signed_tree_head_v1_t *inp, size_t idx, uint8_t elt);
+/** Return a pointer to the 32-element array field root_hash of 'inp'.
*/
-uint8_t * signed_checksum32_ed25519_v1_getarray_identifier(signed_checksum32_ed25519_v1_t *inp);
-/** As signed_checksum32_ed25519_v1_get_identifier, but take and
- * return a const pointer
+uint8_t * signed_tree_head_v1_getarray_root_hash(signed_tree_head_v1_t *inp);
+/** As signed_tree_head_v1_get_root_hash, but take and return a const
+ * pointer
*/
-const uint8_t * signed_checksum32_ed25519_v1_getconstarray_identifier(const signed_checksum32_ed25519_v1_t *inp);
-/** Change the length of the variable-length array field identifier of
- * 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
- * return -1 and set the error code on 'inp' on failure.
+const uint8_t * signed_tree_head_v1_getconstarray_root_hash(const signed_tree_head_v1_t *inp);
+/** Return the value of the n_items field of the signed_tree_head_v1_t
+ * in 'inp'
*/
-int signed_checksum32_ed25519_v1_setlen_identifier(signed_checksum32_ed25519_v1_t *inp, size_t newlen);
-/** Return the (constant) length of the array holding the signature
- * field of the signed_checksum32_ed25519_v1_t in 'inp'.
+uint64_t signed_tree_head_v1_get_n_items(const signed_tree_head_v1_t *inp);
+/** Set the value of the n_items field of the signed_tree_head_v1_t in
+ * 'inp' to 'val'. Return 0 on success; return -1 and set the error
+ * code on 'inp' on failure.
*/
-size_t signed_checksum32_ed25519_v1_getlen_signature(const signed_checksum32_ed25519_v1_t *inp);
-/** Return the element at position 'idx' of the fixed array field
- * signature of the signed_checksum32_ed25519_v1_t in 'inp'.
+int signed_tree_head_v1_set_n_items(signed_tree_head_v1_t *inp, uint64_t val);
+/** Return the length of the dynamic array holding the signatures
+ * field of the signed_tree_head_v1_t in 'inp'.
*/
-uint8_t signed_checksum32_ed25519_v1_get_signature(signed_checksum32_ed25519_v1_t *inp, size_t idx);
-/** As signed_checksum32_ed25519_v1_get_signature, but take and return
- * a const pointer
+size_t signed_tree_head_v1_getlen_signatures(const signed_tree_head_v1_t *inp);
+/** Return the element at position 'idx' of the dynamic array field
+ * signatures of the signed_tree_head_v1_t in 'inp'.
*/
-uint8_t signed_checksum32_ed25519_v1_getconst_signature(const signed_checksum32_ed25519_v1_t *inp, size_t idx);
-/** Change the element at position 'idx' of the fixed array field
- * signature of the signed_checksum32_ed25519_v1_t in 'inp', so that
- * it will hold the value 'elt'.
+struct sigident_ed25519_st * signed_tree_head_v1_get_signatures(signed_tree_head_v1_t *inp, size_t idx);
+/** As signed_tree_head_v1_get_signatures, but take and return a const
+ * pointer
*/
-int signed_checksum32_ed25519_v1_set_signature(signed_checksum32_ed25519_v1_t *inp, size_t idx, uint8_t elt);
-/** Return a pointer to the 64-element array field signature of 'inp'.
+ const struct sigident_ed25519_st * signed_tree_head_v1_getconst_signatures(const signed_tree_head_v1_t *inp, size_t idx);
+/** Change the element at position 'idx' of the dynamic array field
+ * signatures of the signed_tree_head_v1_t in 'inp', so that it will
+ * hold the value 'elt'. Free the previous value, if any.
*/
-uint8_t * signed_checksum32_ed25519_v1_getarray_signature(signed_checksum32_ed25519_v1_t *inp);
-/** As signed_checksum32_ed25519_v1_get_signature, but take and return
- * a const pointer
+int signed_tree_head_v1_set_signatures(signed_tree_head_v1_t *inp, size_t idx, struct sigident_ed25519_st * elt);
+/** As signed_tree_head_v1_set_signatures, but does not free the
+ * previous value.
*/
-const uint8_t * signed_checksum32_ed25519_v1_getconstarray_signature(const signed_checksum32_ed25519_v1_t *inp);
-/** Return the value of the namespace field of the
- * signed_checksum32_ed25519_v1_t in 'inp'
+int signed_tree_head_v1_set0_signatures(signed_tree_head_v1_t *inp, size_t idx, struct sigident_ed25519_st * elt);
+/** Append a new element 'elt' to the dynamic array field signatures
+ * of the signed_tree_head_v1_t in 'inp'.
*/
-struct ed25519_v1_st * signed_checksum32_ed25519_v1_get_namespace(signed_checksum32_ed25519_v1_t *inp);
-/** As signed_checksum32_ed25519_v1_get_namespace, but take and return
- * a const pointer
+int signed_tree_head_v1_add_signatures(signed_tree_head_v1_t *inp, struct sigident_ed25519_st * elt);
+/** Return a pointer to the variable-length array field signatures of
+ * 'inp'.
*/
-const struct ed25519_v1_st * signed_checksum32_ed25519_v1_getconst_namespace(const signed_checksum32_ed25519_v1_t *inp);
-/** Set the value of the namespace field of the
- * signed_checksum32_ed25519_v1_t in 'inp' to 'val'. Free the old
- * value if any. Steals the referenceto 'val'.Return 0 on success;
- * return -1 and set the error code on 'inp' on failure.
+struct sigident_ed25519_st * * signed_tree_head_v1_getarray_signatures(signed_tree_head_v1_t *inp);
+/** As signed_tree_head_v1_get_signatures, but take and return a const
+ * pointer
*/
-int signed_checksum32_ed25519_v1_set_namespace(signed_checksum32_ed25519_v1_t *inp, struct ed25519_v1_st *val);
-/** As signed_checksum32_ed25519_v1_set_namespace, but does not free
- * the previous value.
+const struct sigident_ed25519_st * const * signed_tree_head_v1_getconstarray_signatures(const signed_tree_head_v1_t *inp);
+/** Change the length of the variable-length array field signatures of
+ * 'inp' to 'newlen'.Fill extra elements with NULL; free removed
+ * elements. Return 0 on success; return -1 and set the error code on
+ * 'inp' on failure.
*/
-int signed_checksum32_ed25519_v1_set0_namespace(signed_checksum32_ed25519_v1_t *inp, struct ed25519_v1_st *val);
+int signed_tree_head_v1_setlen_signatures(signed_tree_head_v1_t *inp, size_t newlen);
#endif