90#define UDIF_TREATY_SCOPE_ANALYTICS 1U
96#define UDIF_TREATY_SCOPE_INTRA_DOMAIN 2U
102#define UDIF_TREATY_SCOPE_LOCAL 4U
108#define UDIF_TREATY_SCOPE_QUERY 8U
114#define UDIF_TREATY_SCOPE_TRANSFER 16U
120#define UDIF_TREATY_SCOPE_TREATY 32U
126#define UDIF_TREATY_SCOPE_RESERVED1 64U
132#define UDIF_TREATY_SCOPE_RESERVED2 128U
138#define UDIF_TREATY_SCOPE_RESERVED3 256U
144#define UDIF_TREATY_SCOPE_MAX 256U
150#define UDIF_TREATY_POLICY_VERSION_SIZE 4U
156#define UDIF_TREATY_SCOPE_QUERY_SIZE 4U
162#define UDIF_TREATY_DEFAULT_DURATION (365U * 24U * 3600U)
168#define UDIF_TREATY_MAX_DURATION (5U * 365U * 24U * 3600U)
174#define UDIF_TREATY_STRUCTURE_SIZE (UDIF_SIGNED_HASH_SIZE + \
175 UDIF_SIGNED_HASH_SIZE + \
176 UDIF_SERIAL_NUMBER_SIZE + \
177 UDIF_SERIAL_NUMBER_SIZE + \
178 UDIF_SERIAL_NUMBER_SIZE + \
179 UDIF_VALID_TIME_SIZE + \
180 UDIF_VALID_TIME_SIZE + \
181 UDIF_TREATY_POLICY_VERSION_SIZE + \
182 UDIF_TREATY_SCOPE_QUERY_SIZE)
281 uint32_t scopebitmap, uint64_t validfrom, uint64_t validto, uint32_t policy,
const uint8_t* domsigkeya,
bool (*rng_generate)(uint8_t*,
size_t));
Cross-domain treaty.
Definition treaty.h:192
uint8_t domsigb[UDIF_SIGNED_HASH_SIZE]
Definition treaty.h:194
uint8_t treatyid[UDIF_SERIAL_NUMBER_SIZE]
Definition treaty.h:197
uint32_t scopebitmap
Definition treaty.h:201
uint8_t domsera[UDIF_SERIAL_NUMBER_SIZE]
Definition treaty.h:195
uint64_t validfrom
Definition treaty.h:198
uint8_t domserb[UDIF_SERIAL_NUMBER_SIZE]
Definition treaty.h:196
uint32_t policy
Definition treaty.h:200
uint64_t validto
Definition treaty.h:199
uint8_t domsiga[UDIF_SIGNED_HASH_SIZE]
Definition treaty.h:193
UDIF_EXPORT_API bool udif_treaty_is_participant(const udif_treaty *treaty, const uint8_t *entityser)
Check if entity is treaty participant.
Definition treaty.c:328
UDIF_EXPORT_API bool udif_treaty_allows_scope(const udif_treaty *treaty, uint32_t scope)
Check if treaty allows scope.
Definition treaty.c:57
UDIF_EXPORT_API bool udif_treaty_is_expired(const udif_treaty *treaty, uint64_t ctime)
Check if treaty is expired.
Definition treaty.c:312
UDIF_EXPORT_API size_t udif_treaty_encoded_size(const udif_treaty *treaty)
Get treaty encoded size.
Definition treaty.c:255
UDIF_EXPORT_API udif_errors udif_treaty_create_proposal(udif_treaty *treaty, const uint8_t *treatyid, const uint8_t *domsera, const uint8_t *domserb, uint32_t scopebitmap, uint64_t validfrom, uint64_t validto, uint32_t policy, const uint8_t *domsigkeya, bool(*rng_generate)(uint8_t *, size_t))
Create a treaty proposal.
Definition treaty.c:98
UDIF_EXPORT_API bool udif_treaty_is_active(const udif_treaty *treaty, uint64_t ctime)
Check if treaty is active.
Definition treaty.c:288
UDIF_EXPORT_API udif_errors udif_treaty_accept(udif_treaty *treaty, const uint8_t *domsigkeyb, bool(*rng_generate)(uint8_t *, size_t))
Accept a treaty proposal.
Definition treaty.c:6
UDIF_EXPORT_API bool udif_treaty_verify(const udif_treaty *treaty, const uint8_t *domverkeya, const uint8_t *domverkeyb)
Verify a treaty.
Definition treaty.c:443
UDIF_EXPORT_API udif_errors udif_treaty_deserialize(udif_treaty *treaty, const uint8_t *input, size_t inplen)
Deserialize a treaty.
Definition treaty.c:216
UDIF_EXPORT_API udif_errors udif_treaty_validate(const udif_treaty *treaty)
Validate treaty parameters.
Definition treaty.c:411
UDIF_EXPORT_API void udif_treaty_clear(udif_treaty *treaty)
Clear a treaty.
Definition treaty.c:73
UDIF_EXPORT_API uint64_t udif_treaty_get_duration(const udif_treaty *treaty)
Get treaty duration.
Definition treaty.c:272
UDIF_EXPORT_API bool udif_treaty_is_pending(const udif_treaty *treaty)
Check if treaty is pending.
Definition treaty.c:355
UDIF_EXPORT_API udif_errors udif_treaty_compute_digest(uint8_t *digest, const udif_treaty *treaty)
Compute treaty digest.
Definition treaty.c:180
UDIF_EXPORT_API udif_errors udif_treaty_serialize(uint8_t *output, size_t outlen, const udif_treaty *treaty)
Serialize a treaty.
Definition treaty.c:372
UDIF_EXPORT_API bool udif_treaty_compare(const udif_treaty *a, const udif_treaty *b)
Compare two treaties.
Definition treaty.c:81
UDIF Common Definitions and Protocol Configuration.
#define UDIF_SERIAL_NUMBER_SIZE
The serial number field length.
Definition udif.h:519
#define UDIF_SIGNED_HASH_SIZE
The combined size of a signature and hash.
Definition udif.h:525
udif_errors
UDIF error codes.
Definition udif.h:628
#define UDIF_EXPORT_API
The api export prefix.
Definition udifcommon.h:103