UDIF: Universal Digital Identification Framework 1.1.0.0a (A1)
A quantum-secure cryptographic identification
dispatch.h
Go to the documentation of this file.
1/* 2025-2026 Quantum Resistant Cryptographic Solutions Corporation
2 * All Rights Reserved.
3 *
4 * NOTICE:
5 * This software and all accompanying materials are the exclusive property of
6 * Quantum Resistant Cryptographic Solutions Corporation (QRCS). The intellectual
7 * and technical concepts contained herein are proprietary to QRCS and are
8 * protected under applicable Canadian, U.S., and international copyright,
9 * patent, and trade secret laws.
10 *
11 * CRYPTOGRAPHIC ALGORITHMS AND IMPLEMENTATIONS:
12 * - This software includes implementations of cryptographic primitives and
13 * algorithms that are standardized or in the public domain, such as AES
14 * and SHA-3, which are not proprietary to QRCS.
15 * - This software also includes cryptographic primitives, constructions, and
16 * algorithms designed by QRCS, including but not limited to RCS, SCB, CSX, QMAC, and
17 * related components, which are proprietary to QRCS.
18 * - All source code, implementations, protocol compositions, optimizations,
19 * parameter selections, and engineering work contained in this software are
20 * original works of QRCS and are protected under this license.
21 *
22 * LICENSE AND USE RESTRICTIONS:
23 * - This software is licensed under the Quantum Resistant Cryptographic Solutions
24 * Public Research and Evaluation License (QRCS-PREL), 2025-2026.
25 * - Permission is granted solely for non-commercial evaluation, academic research,
26 * cryptographic analysis, interoperability testing, and feasibility assessment.
27 * - Commercial use, production deployment, commercial redistribution, or
28 * integration into products or services is strictly prohibited without a
29 * separate written license agreement executed with QRCS.
30 * - Licensing and authorized distribution are solely at the discretion of QRCS.
31 *
32 * EXPERIMENTAL CRYPTOGRAPHY NOTICE:
33 * Portions of this software may include experimental, novel, or evolving
34 * cryptographic designs. Use of this software is entirely at the user's risk.
35 *
36 * DISCLAIMER:
37 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38 * IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS
39 * FOR A PARTICULAR PURPOSE, SECURITY, OR NON-INFRINGEMENT. QRCS DISCLAIMS ALL
40 * LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
41 * ARISING FROM THE USE OR MISUSE OF THIS SOFTWARE.
42 *
43 * FULL LICENSE:
44 * This software is subject to the Quantum Resistant Cryptographic Solutions
45 * Public Research and Evaluation License (QRCS-PREL), 2025-2026. The complete license terms
46 * are provided in the accompanying LICENSE file or at https://www.qrcscorp.ca.
47 *
48 * Written by: John G. Underhill
49 * Contact: contact@qrcscorp.ca
50 */
51
52#ifndef UDIF_DISPATCH_H
53#define UDIF_DISPATCH_H
54
55#include "udif.h"
56#include "entity.h"
57#include "message.h"
58#include "tunnel.h"
59
86
104typedef udif_errors(*udif_handler_fn)(udif_entity_context* ctx, udif_tunnel* tun, const udif_message* msg, uint64_t nowsecs);
105
130
142
153
164
174
184
193
204
214
231
243
255
267
279
290
302
313
325
336
346
359
370
380
381#endif
UDIF_EXPORT_API udif_errors udif_handle_cert_resume(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a resumption notice from a parent.
Definition handler.c:580
UDIF_EXPORT_API udif_errors udif_handle_cert_revoke(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a revocation notice from a parent.
Definition handler.c:562
UDIF_EXPORT_API udif_errors udif_handle_treaty_query_resp(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a cross-domain query response from a peer BC.
Definition handler.c:1546
udif_errors(* udif_handler_fn)(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Function-pointer type for a UDIF message handler.
Definition dispatch.h:104
UDIF_EXPORT_API udif_errors udif_handle_registry_commit(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a registry root commit notification.
Definition handler.c:1042
UDIF_EXPORT_API udif_errors udif_handle_query_resp(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a predicate query response from a controller.
Definition handler.c:698
UDIF_EXPORT_API udif_errors udif_handle_object_transfer_confirm(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle the receiver-signed transfer confirmation.
Definition handler.c:911
UDIF_EXPORT_API udif_errors udif_handle_cert_suspend(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a suspension notice from a parent.
Definition handler.c:571
UDIF_EXPORT_API udif_errors udif_handle_treaty_revoke(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a treaty revocation.
Definition handler.c:1390
UDIF_EXPORT_API udif_errors udif_handle_treaty_cosign(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a treaty co-signature from the peer BC.
Definition handler.c:1340
UDIF_EXPORT_API udif_errors udif_handle_cert_enroll_req(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle an inbound CSR from a subordinate.
Definition handler.c:402
UDIF_EXPORT_API udif_errors udif_handle_cap_grant(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a parent-issued capability grant.
Definition caphandler.c:44
UDIF_EXPORT_API udif_errors udif_handle_object_create(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle an object creation request from a UA.
Definition handler.c:735
UDIF_EXPORT_API udif_errors udif_handle_cert_enroll_resp(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle an inbound signed certificate from a parent.
Definition handler.c:500
UDIF_EXPORT_API udif_errors udif_handle_object_transfer_req(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle the sender-signed transfer request.
Definition handler.c:837
UDIF_EXPORT_API udif_errors udif_handle_treaty_query_fwd(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a forwarded cross-domain query from a peer BC.
Definition handler.c:1440
UDIF_EXPORT_API udif_errors udif_handle_treaty_propose(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a treaty proposal from a peer BC.
Definition handler.c:1237
UDIF_EXPORT_API udif_errors udif_handle_anchor_ack(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle an anchor acknowledgement from a parent.
Definition handler.c:1207
UDIF_EXPORT_API udif_errors udif_handle_anchor_push(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle an inbound anchor record from a child controller.
Definition handler.c:1106
UDIF_EXPORT_API udif_errors udif_handle_error_report(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a non-fatal error report from a peer.
Definition handler.c:1595
UDIF_EXPORT_API udif_errors udif_handle_cap_revoke(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a capability revocation notice.
Definition caphandler.c:114
UDIF_EXPORT_API udif_errors udif_dispatch(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Dispatch a decoded UDIF message to the appropriate handler.
Definition dispatch.c:228
UDIF_EXPORT_API bool udif_dispatch_is_permitted(udif_roles role, udif_message_type msgtype)
Check whether a role is permitted to receive a message type.
Definition dispatch.c:206
UDIF_EXPORT_API udif_errors udif_handle_query_req(udif_entity_context *ctx, udif_tunnel *tun, const udif_message *msg, uint64_t nowsecs)
Handle a predicate query from a subordinate or peer.
Definition handler.c:589
Runtime state for a UDIF entity process (Root, BC, GC, or UA).
UDIF application-layer message framing.
udif_message_type
Canonical UDIF message type codes.
Definition message.h:119
Aggregate runtime state for a single UDIF entity process.
Definition entity.h:168
A single UDIF application message.
Definition message.h:160
Per-connection UDIF state layered atop a QSTP channel.
Definition tunnel.h:267
UDIF tunnel abstraction over a QSTP secure channel.
UDIF Common Definitions and Protocol Configuration.
udif_roles
UDIF entity roles.
Definition udif.h:1363
udif_errors
UDIF error codes.
Definition udif.h:1210
#define UDIF_EXPORT_API
The api export prefix.
Definition udifcommon.h:101