57#include "socketbase.h"
59#define UDIF_CONFIG_DILITHIUM_KYBER
62#if defined(UDIF_CONFIG_DILITHIUM_KYBER)
63# include "dilithium.h"
65#elif defined(UDIF_CONFIG_SPHINCS_MCELIECE)
67# include "sphincsplus.h"
69# error Invalid parameter set!
125#define UDIF_USE_RCS_ENCRYPTION
127#if defined(UDIF_USE_RCS_ENCRYPTION)
129# define udif_cipher_state qsc_rcs_state
130# define udif_cipher_dispose qsc_rcs_dispose
131# define udif_cipher_initialize qsc_rcs_initialize
132# define udif_cipher_keyparams qsc_rcs_keyparams
133# define udif_cipher_set_associated qsc_rcs_set_associated
134# define udif_cipher_transform qsc_rcs_transform
137# define udif_cipher_state qsc_aes_gcm256_state
138# define udif_cipher_dispose qsc_aes_gcm256_dispose
139# define udif_cipher_initialize qsc_aes_gcm256_initialize
140# define udif_cipher_keyparams qsc_aes_keyparams
141# define udif_cipher_set_associated qsc_aes_gcm256_set_associated
142# define udif_cipher_transform qsc_aes_gcm256_transform
153#if defined(UDIF_CONFIG_SPHINCS_MCELIECE)
158# define udif_cipher_generate_keypair qsc_mceliece_generate_keypair
163# define udif_cipher_decapsulate qsc_mceliece_decapsulate
168# define udif_cipher_encapsulate qsc_mceliece_encapsulate
173# define udif_signature_generate_keypair qsc_sphincsplus_generate_keypair
178# define udif_signature_sign qsc_sphincsplus_sign
183# define udif_signature_verify qsc_sphincsplus_verify
184#elif defined(UDIF_CONFIG_DILITHIUM_KYBER)
189# define udif_cipher_generate_keypair qsc_kyber_generate_keypair
194# define udif_cipher_decapsulate qsc_kyber_decapsulate
199# define udif_cipher_encapsulate qsc_kyber_encapsulate
204# define udif_signature_generate_keypair qsc_dilithium_generate_keypair
209# define udif_signature_sign qsc_dilithium_sign
214# define udif_signature_verify qsc_dilithium_verify
216# error Invalid parameter set!
229#if defined(UDIF_CONFIG_DILITHIUM_KYBER)
234# define UDIF_ASYMMETRIC_CIPHERTEXT_SIZE (QSC_KYBER_CIPHERTEXT_SIZE)
240# define UDIF_ASYMMETRIC_PRIVATE_KEY_SIZE (QSC_KYBER_PRIVATEKEY_SIZE)
246# define UDIF_ASYMMETRIC_PUBLIC_KEY_SIZE (QSC_KYBER_PUBLICKEY_SIZE)
252# define UDIF_ASYMMETRIC_SIGNATURE_SIZE (QSC_DILITHIUM_SIGNATURE_SIZE)
258# define UDIF_ASYMMETRIC_SIGNING_KEY_SIZE (QSC_DILITHIUM_PRIVATEKEY_SIZE)
264# define UDIF_ASYMMETRIC_VERIFICATION_KEY_SIZE (QSC_DILITHIUM_PUBLICKEY_SIZE)
266# if defined(QSC_DILITHIUM_S1P44) && defined(QSC_KYBER_S1K2P512)
271# define UDIF_PARAMATERS_DILITHIUM_KYBER_D1K1
276# define UDIF_SUITE_ID 1U
277# elif defined(QSC_DILITHIUM_S3P65) && defined(QSC_KYBER_S3K3P768)
282# define UDIF_PARAMATERS_DILITHIUM_KYBER_D3K3
287# define UDIF_SUITE_ID 2U
288# elif defined(QSC_DILITHIUM_S5P87) && defined(QSC_KYBER_S5K4P1024)
293# define UDIF_PARAMATERS_DILITHIUM_KYBER_D5K5
298# define UDIF_SUITE_ID 3U
299# elif defined(QSC_DILITHIUM_S5P87) && defined(QSC_KYBER_S6K5P1280)
304# define UDIF_PARAMATERS_DILITHIUM_KYBER_D5K6
309# define UDIF_SUITE_ID 4U
313# error the library parameter sets are mismatched!
316#elif defined(UDIF_CONFIG_SPHINCS_MCELIECE)
321# define UDIF_ASYMMETRIC_CIPHERTEXT_SIZE (QSC_MCELIECE_CIPHERTEXT_SIZE)
326# define UDIF_ASYMMETRIC_PRIVATE_KEY_SIZE (QSC_MCELIECE_PRIVATEKEY_SIZE)
331# define UDIF_ASYMMETRIC_PUBLIC_KEY_SIZE (QSC_MCELIECE_PUBLICKEY_SIZE)
336# define UDIF_ASYMMETRIC_SIGNATURE_SIZE (QSC_SPHINCSPLUS_SIGNATURE_SIZE)
341# define UDIF_ASYMMETRIC_SIGNING_KEY_SIZE (QSC_SPHINCSPLUS_PRIVATEKEY_SIZE)
346# define UDIF_ASYMMETRIC_VERIFICATION_KEY_SIZE (QSC_SPHINCSPLUS_PUBLICKEY_SIZE)
348# if defined(QSC_MCELIECE_S1N3488T64)&& defined(QSC_SPHINCSPLUS_S1S128SHAKERS)
353# define UDIF_PARAMATERS_SPHINCSPLUS_S1S128SHAKERS
358# define UDIF_SUITE_ID 5U
359# elif defined(QSC_MCELIECE_S3N4608T96) && defined(QSC_SPHINCSPLUS_S3S192SHAKERS)
364# define UDIF_PARAMATERS_SPHINCSPLUS_S3S192SHAKERS
369# define UDIF_SUITE_ID 6U
370# elif defined(QSC_MCELIECE_S5N6688T128) && defined(QSC_SPHINCSPLUS_S5S256SHAKERS)
375# define UDIF_PARAMATERS_SPHINCSPLUS_S5S256SHAKERS
380# define UDIF_SUITE_ID 7U
381# elif defined(QSC_MCELIECE_S6N6960T119) && defined(QSC_SPHINCSPLUS_S5S256SHAKERS)
386# define UDIF_PARAMATERS_SPHINCSPLUS_S6S256SHAKERS
391# define UDIF_SUITE_ID 8U
392# elif defined(QSC_MCELIECE_S7N8192T128) && defined(QSC_SPHINCSPLUS_S5S256SHAKERS)
397# define UDIF_PARAMATERS_SPHINCSPLUS_S7S256SHAKERS
402# define UDIF_SUITE_ID 9U
407# error Invalid parameter sets, check the QSC library settings
415#define UDIF_CAPABILITY_BITMAP_SIZE 8U
421#define UDIF_CAPABILITY_MASK_SIZE 8U
427#define UDIF_CAPABILITY_TOKEN_MAX_SIZE 2048U
433#define UDIF_CLAIM_ANCHOR_SIZE 32U
439#define UDIF_CRYPTO_HASH_SIZE 32U
445#define UDIF_CRYPTO_KEY_SIZE 32U
451#if defined(UDIF_USE_RCS_ENCRYPTION)
452# define UDIF_CRYPTO_MAC_SIZE 32U
454# define UDIF_CRYPTO_MAC_SIZE 16U
461#if defined(UDIF_USE_RCS_ENCRYPTION)
462# define UDIF_CRYPTO_NONCE_SIZE 32U
464# define UDIF_CRYPTO_NONCE_SIZE 16U
471#define UDIF_IDENTITY_ID_SIZE 32U
477#define UDIF_ISSUER_DOMAIN_CODE_SIZE 8U
483#define UDIF_NAMESPACE_CODE_SIZE 8U
489#define UDIF_PERMISSION_MASK_SIZE 8U
495#define UDIF_POLICY_HASH_SIZE 32U
501#define UDIF_POLICY_VERB_SIZE 4U
507#define UDIF_PROTOCOL_SET_SIZE 41U
513#define UDIF_ROLE_SIZE 1U
519#define UDIF_SERIAL_NUMBER_SIZE 16U
525#define UDIF_SIGNED_HASH_SIZE (UDIF_ASYMMETRIC_SIGNATURE_SIZE + UDIF_CRYPTO_HASH_SIZE)
531#define UDIF_SUITEID_SIZE 1U
537#define UDIF_TIME_WINDOW_SECONDS 60U
543#define UDIF_VALID_TIME_SIZE 8U
549#define UDIF_VALID_TIME_STRUCTURE_SIZE 16U
592#if defined(UDIF_PARAMATERS_DILITHIUM_KYBER_D1K1)
595#elif defined(UDIF_PARAMATERS_DILITHIUM_KYBER_D3K3)
598#elif defined(UDIF_PARAMATERS_DILITHIUM_KYBER_D5K5)
601#elif defined(UDIF_PARAMATERS_DILITHIUM_KYBER_D5K6)
604#elif defined(UDIF_PARAMATERS_SPHINCSPLUS_S1S128SHAKERS)
607#elif defined(UDIF_PARAMATERS_SPHINCSPLUS_S3S192SHAKERS)
610#elif defined(UDIF_PARAMATERS_SPHINCSPLUS_S5S256SHAKERS)
613#elif defined(UDIF_PARAMATERS_SPHINCSPLUS_S6S256SHAKERS)
616#elif defined(UDIF_PARAMATERS_SPHINCSPLUS_S7S256SHAKERS)
620# error Invalid parameter set!
858#define UDIF_VERSION_STRING "UDIF:1.0a"
863#define UDIF_SUITE_STRING "UDIF:RCS256-KMAC256-MLKEM5-MLDSA5"
870#define UDIF_LABEL_MAX_SIZE 64U
873#define UDIF_LABEL_OBJ_DIGEST "UDIF:OBJ-DIGEST:V1"
874#define UDIF_LABEL_REGROOT "UDIF:REGROOT:V1"
875#define UDIF_LABEL_TXID "UDIF:TXID:V1"
876#define UDIF_LABEL_ANCHOR "UDIF:ANCHOR:V1"
877#define UDIF_LABEL_CAP_DIGEST "UDIF:CAP-DIGEST:V1"
878#define UDIF_LABEL_SESS_KDF "UDIF:SESS-KDF:V1"
879#define UDIF_LABEL_RATCHET "UDIF:RATCHET:V1"
880#define UDIF_LABEL_CERT_DIGEST "UDIF:CERT-DIGEST:V1"
881#define UDIF_LABEL_ROOT_DIGEST "UDIF:ROOT-DIGEST:V1"
893#define UDIF_ERROR_STRING_DEPTH 26U
899#define UDIF_ERROR_STRING_SIZE 128U
903static const char UDIF_ERROR_STRINGS[UDIF_ERROR_STRING_DEPTH][UDIF_ERROR_STRING_SIZE] =
905 "No error condition",
906 "Invalid input parameter",
907 "Invalid function state"
908 "Authentication failed",
909 "The certificate expired",
910 "The certificate has been revoked",
911 "The capability has been revoked",
912 "Invalid sequence number",
913 "The time window has been exceeded",
914 "Epoch time mismatch",
915 "Protocol suite mismatch",
923 "Log operation failed",
924 "Invalid anchor record",
928 "File creation failed",
935static const char UDIF_CERTIFICATE_ERROR_STRINGS[][UDIF_ERROR_STRING_SIZE] =
938 "Unknown certificate type",
939 "Bad or unknown serial number",
940 "Invalid certificate chain",
942 "Certificate expired",
943 "Certificate not yet valid",
944 "Policy hash mismatch",
945 "Certificate revoked"
949static const char UDIF_CLAIMS_ERROR_STRINGS[][UDIF_ERROR_STRING_SIZE] =
952 "Unknown claim type",
954 "Canonicalization failed",
956 "Invalid claim value"
960static const char UDIF_ENCODING_ERROR_STRINGS[][UDIF_ERROR_STRING_SIZE] =
965 "Bad format/version",
966 "Unsupported encoding"
970static const char UDIF_IDENTITY_ERROR_STRINGS[][UDIF_ERROR_STRING_SIZE] =
973 "Invalid namespace code",
974 "Invalid issuer domain code",
975 "Invalid subject identifier",
976 "Capability/permission mask invalid",
977 "Claim anchor mismatch",
978 "Signature verification failed",
980 "Identity not yet valid"
984static const char UDIF_POLICY_ERROR_STRINGS[][UDIF_ERROR_STRING_SIZE] =
988 "Policy hash mismatch",
989 "Policy evaluation indeterminate"
992#define UDIF_ROLE_STRING_SIZE 32U
994static const char UDIF_ROLE_STRINGS[][UDIF_ROLE_STRING_SIZE] =
1002 "udif_role_revoked",
Fixed-size capability bitset (issuer-/role-scoped). Capability bits; bit positions map to udif_capabi...
Definition udif.h:1016
uint8_t bits[UDIF_CAPABILITY_MASK_SIZE]
Definition udif.h:1017
Anchor (e.g., Merkle root) binding a claim set to an identity. Anchor/merkle root over canonical clai...
Definition udif.h:1037
A collection of claims bound to an identity by an anchor.
Definition udif.h:1046
const udif_claim * items
Definition udif.h:1047
uint32_t count
Definition udif.h:1048
udif_claim_anchor anchor
Definition udif.h:1049
A typed claim with deterministic canonical encoding.
Definition udif.h:1025
const uint8_t * value
Definition udif.h:1027
udif_claim_type type
Definition udif.h:1026
uint32_t length
Definition udif.h:1028
Generic encoded object buffer (for decode/encode APIs).
Definition udif.h:1057
uint8_t * bytes
Definition udif.h:1058
uint32_t size
Definition udif.h:1059
uint32_t length
Definition udif.h:1060
Subject identity identifier (opaque, canonicalized). Subject identifier bytes.
Definition udif.h:1069
uint8_t bytes[UDIF_IDENTITY_ID_SIZE]
Definition udif.h:1070
Core identity record bound to a namespace and issuer.
Definition udif.h:1196
udif_policy_hash policy
Definition udif.h:1203
uint8_t chash[UDIF_CRYPTO_HASH_SIZE]
Definition udif.h:1207
udif_permission_mask perms
Definition udif.h:1201
udif_namespace_code nspace
Definition udif.h:1197
udif_issuer_domain_code issuer
Definition udif.h:1198
udif_claim_anchor anchor
Definition udif.h:1204
udif_capability_mask caps
Definition udif.h:1202
udif_time_window validity
Definition udif.h:1200
uint8_t signature[UDIF_ASYMMETRIC_SIGNATURE_SIZE]
Definition udif.h:1205
udif_identity_id subject
Definition udif.h:1199
uint8_t verkey[UDIF_ASYMMETRIC_VERIFICATION_KEY_SIZE]
Definition udif.h:1206
Issuer domain/controller identifier. Issuer domain code (ASCII or compact code)
Definition udif.h:1079
uint8_t bytes[UDIF_ISSUER_DOMAIN_CODE_SIZE]
Definition udif.h:1080
KEM key pair.
Definition udif.h:1090
uint8_t pubkey[UDIF_ASYMMETRIC_PUBLIC_KEY_SIZE]
Definition udif.h:1091
uint8_t prikey[UDIF_ASYMMETRIC_PRIVATE_KEY_SIZE]
Definition udif.h:1092
Namespace partition identifier. Namespace code (ASCII or compact code)
Definition udif.h:1101
uint8_t bytes[UDIF_NAMESPACE_CODE_SIZE]
Definition udif.h:1102
Fixed-size permission bitset (subject-/resource-scoped). Permission bits; bit positions map to udif_p...
Definition udif.h:1111
uint8_t bits[UDIF_PERMISSION_MASK_SIZE]
Definition udif.h:1112
Policy identifier (hash of canonical policy). SHA3/SHAKE hash of policy document.
Definition udif.h:1121
uint8_t bytes[UDIF_POLICY_HASH_SIZE]
Definition udif.h:1122
The UDIF asymmetric signature scheme key container.
Definition udif.h:1130
uint8_t sigkey[UDIF_ASYMMETRIC_SIGNING_KEY_SIZE]
Definition udif.h:1131
uint8_t verkey[UDIF_ASYMMETRIC_VERIFICATION_KEY_SIZE]
Definition udif.h:1132
A validity interval expressed in UTC seconds.
Definition udif.h:1140
uint64_t before
Definition udif.h:1141
uint64_t after
Definition udif.h:1142
Serialized token container with optional envelope protection.
Definition udif.h:1166
uint8_t chash[UDIF_CRYPTO_HASH_SIZE]
Definition udif.h:1169
udif_permission_mask perms
Definition udif.h:1173
uint8_t payload[UDIF_CAPABILITY_TOKEN_MAX_SIZE]
Definition udif.h:1168
uint32_t paylen
Definition udif.h:1174
udif_capability_mask caps
Definition udif.h:1172
uint8_t signature[UDIF_ASYMMETRIC_SIGNATURE_SIZE]
Definition udif.h:1167
udif_identity_id subject
Definition udif.h:1171
udif_token_header head
Definition udif.h:1170
The certificate expiration time structure.
Definition udif.h:1182
uint64_t to
Definition udif.h:1184
uint64_t from
Definition udif.h:1183
udif_roles
UDIF entity roles.
Definition udif.h:781
@ udif_role_root
Definition udif.h:783
@ udif_role_udc
Definition udif.h:784
@ udif_role_none
Definition udif.h:782
@ udif_role_client
Definition udif.h:787
@ udif_role_uis
Definition udif.h:786
@ udif_role_uip
Definition udif.h:785
@ udif_role_audit
Definition udif.h:788
@ udif_role_any
Definition udif.h:790
@ udif_role_revoked
Definition udif.h:789
#define UDIF_ASYMMETRIC_SIGNING_KEY_SIZE
The byte size of the asymmetric signature signing-key array.
Definition udif.h:258
#define UDIF_POLICY_HASH_SIZE
The size of a policy identifier hash in bytes.
Definition udif.h:495
udif_claim_type
Claim type identifiers (deterministic canonicalization required).
Definition udif.h:558
@ udif_claim_unknown
Definition udif.h:559
@ udif_claim_custom
Definition udif.h:571
@ udif_claim_citizenship
Definition udif.h:565
@ udif_claim_age_over
Definition udif.h:564
@ udif_claim_address
Definition udif.h:570
@ udif_claim_contact_email
Definition udif.h:568
@ udif_claim_membership_id
Definition udif.h:567
@ udif_claim_contact_phone
Definition udif.h:569
@ udif_claim_commodity_id
Definition udif.h:560
@ udif_claim_residency
Definition udif.h:566
@ udif_claim_biometric_hash
Definition udif.h:561
@ udif_claim_public_key
Definition udif.h:563
@ udif_claim_institution_id
Definition udif.h:562
#define UDIF_NAMESPACE_CODE_SIZE
The size of a namespace code (short string or numeric).
Definition udif.h:483
udif_error_policy
Policy evaluation/lookup errors.
Definition udif.h:718
@ udif_epol_none
Definition udif.h:719
@ udif_epol_not_found
Definition udif.h:720
@ udif_epol_indeterminate
Definition udif.h:722
@ udif_epol_hash_mismatch
Definition udif.h:721
udif_logging_event_codes
Membership and transaction log event codes.
Definition udif.h:730
@ udif_event_revoke
Definition udif.h:734
@ udif_event_object_create
Definition udif.h:741
@ udif_event_branch_create
Definition udif.h:738
@ udif_event_capability_grant
Definition udif.h:735
@ udif_event_registry_commit
Definition udif.h:737
@ udif_event_suspend
Definition udif.h:732
@ udif_event_resume
Definition udif.h:733
@ udif_event_branch_suspend
Definition udif.h:739
@ udif_event_enroll
Definition udif.h:731
@ udif_event_branch_revoke
Definition udif.h:740
@ udif_event_object_transfer
Definition udif.h:742
@ udif_event_capability_revoke
Definition udif.h:736
@ udif_event_object_update
Definition udif.h:743
@ udif_event_object_destroy
Definition udif.h:744
udif_error_identity
Identity-specific error codes.
Definition udif.h:701
@ udif_eid_mask_invalid
Definition udif.h:706
@ udif_eid_expired
Definition udif.h:709
@ udif_eid_subject_bad
Definition udif.h:705
@ udif_eid_issuer_bad
Definition udif.h:704
@ udif_eid_namespace_bad
Definition udif.h:703
@ udif_eid_future
Definition udif.h:710
@ udif_eid_none
Definition udif.h:702
@ udif_eid_sig_invalid
Definition udif.h:708
@ udif_eid_anchor_mismatch
Definition udif.h:707
#define UDIF_ISSUER_DOMAIN_CODE_SIZE
The size of an issuer domain code (unique identifier).
Definition udif.h:477
#define UDIF_IDENTITY_ID_SIZE
The size of a subject identity identifier in bytes.
Definition udif.h:471
#define UDIF_ASYMMETRIC_PRIVATE_KEY_SIZE
The byte size of the asymmetric cipher private-key array.
Definition udif.h:240
#define UDIF_CLAIM_ANCHOR_SIZE
The size of a claim anchor or merkle root in bytes.
Definition udif.h:433
udif_token_type
Token families issued/validated within UDIF.
Definition udif.h:810
@ udif_token_session
Definition udif.h:814
@ udif_token_attestation
Definition udif.h:813
@ udif_token_none
Definition udif.h:811
@ udif_token_capability
Definition udif.h:812
udif_error_encoding
Encoding/decoding errors for UDIF objects.
Definition udif.h:688
@ udif_eenc_none
Definition udif.h:689
@ udif_eenc_overflow
Definition udif.h:690
@ udif_eenc_format
Definition udif.h:692
@ udif_eenc_underflow
Definition udif.h:691
@ udif_eenc_unsupported
Definition udif.h:693
#define UDIF_PROTOCOL_SET_SIZE
The size of the protocol configuration string.
Definition udif.h:507
#define UDIF_CAPABILITY_MASK_SIZE
The size of a capability mask in hex characters.
Definition udif.h:421
udif_verify_policy
Verification strictness for identity/cert/claim checks.
Definition udif.h:838
@ udif_verify_lenient
Definition udif.h:840
@ udif_verify_strict
Definition udif.h:839
#define UDIF_CAPABILITY_TOKEN_MAX_SIZE
The maximum size of a serialized capability token.
Definition udif.h:427
udif_permission_class
Permission classes whose bits populate the permission mask.
Definition udif.h:752
@ udif_perm_export_identity
Definition udif.h:760
@ udif_perm_write_claims
Definition udif.h:754
@ udif_perm_import_identity
Definition udif.h:761
@ udif_perm_delegate
Definition udif.h:759
@ udif_perm_read_claims
Definition udif.h:753
@ udif_perm_manage_caps
Definition udif.h:758
@ udif_perm_read_certs
Definition udif.h:755
@ udif_perm_write_certs
Definition udif.h:756
@ udif_perm_manage_policy
Definition udif.h:757
udif_time_validation
Results of time/validity-window checks.
Definition udif.h:798
@ udif_time_skew_exceeds
Definition udif.h:802
@ udif_time_valid
Definition udif.h:799
@ udif_time_expired
Definition udif.h:801
@ udif_time_future
Definition udif.h:800
udif_policy_decision
Policy evaluation outcome.
Definition udif.h:769
@ udif_policy_permit
Definition udif.h:770
@ udif_policy_deny
Definition udif.h:771
@ udif_policy_not_applicable
Definition udif.h:773
@ udif_policy_indeterminate
Definition udif.h:772
udif_status
Generic status codes for UDIF operations.
Definition udif.h:822
@ udif_status_internal_error
Definition udif.h:830
@ udif_status_out_of_memory
Definition udif.h:827
@ udif_status_not_found
Definition udif.h:825
@ udif_status_invalid_argument
Definition udif.h:824
@ udif_status_buffer_too_small
Definition udif.h:828
@ udif_status_already_exists
Definition udif.h:826
@ udif_status_not_supported
Definition udif.h:829
@ udif_status_success
Definition udif.h:823
#define UDIF_ASYMMETRIC_SIGNATURE_SIZE
The byte size of the asymmetric signature array.
Definition udif.h:252
#define UDIF_CRYPTO_HASH_SIZE
The size of the certificate hash in bytes.
Definition udif.h:439
#define UDIF_ASYMMETRIC_PUBLIC_KEY_SIZE
The byte size of the asymmetric cipher public-key array.
Definition udif.h:246
udif_configuration_sets
The UDIF algorithm configuration sets.
Definition udif.h:579
@ udif_configuration_set_none
Definition udif.h:580
@ udif_configuration_set_sphincsplus5_mceliece7_rcs256_shake256
Definition udif.h:589
@ udif_configuration_set_sphincsplus5_mceliece6_rcs256_shake256
Definition udif.h:588
@ udif_configuration_set_dilithium1_kyber1_rcs256_shake256
Definition udif.h:581
@ udif_configuration_set_dilithium5_kyber5_rcs256_shake256
Definition udif.h:583
@ udif_configuration_set_dilithium5_kyber6_rcs512_shake256
Definition udif.h:584
@ udif_configuration_set_dilithium3_kyber3_rcs256_shake256
Definition udif.h:582
@ udif_configuration_set_sphincsplus3_mceliece3_rcs256_shake256
Definition udif.h:586
@ udif_configuration_set_sphincsplus1_mceliece1_rcs256_shake256
Definition udif.h:585
@ udif_configuration_set_sphincsplus5_mceliece5_rcs256_shake256
Definition udif.h:587
#define UDIF_ASYMMETRIC_VERIFICATION_KEY_SIZE
The byte size of the asymmetric signature verification-key array.
Definition udif.h:264
UDIF_EXPORT_API bool udif_suite_is_valid(uint8_t suiteid)
Check if the suite id valid.
Definition udif.c:7
udif_errors
UDIF error codes.
Definition udif.h:628
@ udif_error_suite_mismatch
Definition udif.h:639
@ udif_error_auth_failure
Definition udif.h:632
@ udif_error_certificate_expired
Definition udif.h:633
@ udif_error_file_create_failed
Definition udif.h:652
@ udif_error_epoch_mismatch
Definition udif.h:638
@ udif_error_registry_full
Definition udif.h:646
@ udif_error_invalid_input
Definition udif.h:630
@ udif_error_invalid_request
Definition udif.h:650
@ udif_error_encode_failure
Definition udif.h:641
@ udif_error_internal
Definition udif.h:651
@ udif_error_not_authorized
Definition udif.h:644
@ udif_error_anchor_invalid
Definition udif.h:648
@ udif_error_capability_revoked
Definition udif.h:635
@ udif_error_mac_invalid
Definition udif.h:643
@ udif_error_time_window
Definition udif.h:637
@ udif_error_invalid_state
Definition udif.h:631
@ udif_error_treaty_invalid
Definition udif.h:649
@ udif_error_decode_failure
Definition udif.h:640
@ udif_error_invalid_sequence
Definition udif.h:636
@ udif_error_file_not_found
Definition udif.h:653
@ udif_error_signature_invalid
Definition udif.h:642
@ udif_error_certificate_revoked
Definition udif.h:634
@ udif_error_invalid_parameter
Definition udif.h:654
@ udif_error_object_not_found
Definition udif.h:645
@ udif_error_none
Definition udif.h:629
@ udif_error_logging_failure
Definition udif.h:647
#define UDIF_PERMISSION_MASK_SIZE
The size of a permission mask in bytes.
Definition udif.h:489
udif_error_capability
Capability/permission evaluation errors.
Definition udif.h:662
@ udif_ecap_denied
Definition udif.h:664
@ udif_ecap_mask_conflict
Definition udif.h:666
@ udif_ecap_mask_empty
Definition udif.h:665
@ udif_ecap_none
Definition udif.h:663
udif_error_claims
Claim/claim-set error codes.
Definition udif.h:674
@ udif_ecl_value_invalid
Definition udif.h:680
@ udif_ecl_canonical_fail
Definition udif.h:678
@ udif_ecl_anchor_bad
Definition udif.h:679
@ udif_ecl_none
Definition udif.h:675
@ udif_ecl_encoding_bad
Definition udif.h:677
@ udif_ecl_type_unknown
Definition udif.h:676
UDIF_EXPORT_API const char * udif_error_to_string(udif_errors error)
Convert an error to a string.
Definition udif.c:12
udif_version_sets
The UDIF version sets.
Definition udif.h:848
@ udif_version_set_none
Definition udif.h:849
@ udif_version_set_one_zero
Definition udif.h:850
UDIF common definitions and constants.
#define UDIF_EXPORT_API
The api export prefix.
Definition udifcommon.h:103