authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-11-04 23:05:14+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-11-04 23:05:14+01:00
log74900e938a8ea28b6ea7aa35924a2dee9818056b
treebbbdc8bc246f91d9c45003c6c321f20c59af3097
parent459f3b7edef14da7d9ec29a77329601469f08b36
parentf55eb18abbfc66f65823517619e6d23a8e185645
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #25813 from linusg/bump-macos-libc

libc: Update macOS headers to SDK 26.1

28 files changed, 1899 insertions(+), 195 deletions(-)

lib/libc/darwin/SDKSettings.json+1-1
...@@ -1 +1 @@...@@ -1 +1 @@
1{"MinimalDisplayName":"26.0"}1{"MinimalDisplayName":"26.1"}
lib/libc/darwin/libSystem.tbd+82-79
...@@ -400,7 +400,7 @@ tbd-version: 4...@@ -400,7 +400,7 @@ tbd-version: 4
400targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 400targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
401 arm64e-macos, arm64e-maccatalyst ]401 arm64e-macos, arm64e-maccatalyst ]
402install-name: '/usr/lib/system/libcorecrypto.dylib'402install-name: '/usr/lib/system/libcorecrypto.dylib'
403current-version: 1922.0.25403current-version: 1922.40.14
404parent-umbrella:404parent-umbrella:
405 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 405 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
406 arm64e-macos, arm64e-maccatalyst ]406 arm64e-macos, arm64e-maccatalyst ]
...@@ -417,21 +417,21 @@ exports:...@@ -417,21 +417,21 @@ exports:
417 _ccsha256_vng_intel_SupplementalSSE3_di ]417 _ccsha256_vng_intel_SupplementalSSE3_di ]
418 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 418 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
419 arm64e-macos, arm64e-maccatalyst ]419 arm64e-macos, arm64e-maccatalyst ]
420 symbols: [ _CCEC_FAULT_CANARY, _CCRSA_PKCS1_FAULT_CANARY, _CCRSA_PSS_FAULT_CANARY, 420 symbols: [ _CCEC_FAULT_CANARY, _CCMLDSA_FAULT_CANARY, _CCRSA_PKCS1_FAULT_CANARY,
421 _CCSS_PRIME_P192, _CCSS_PRIME_P224, _CCSS_PRIME_P256, _CCSS_PRIME_P384, 421 _CCRSA_PSS_FAULT_CANARY, _CCSS_PRIME_P192, _CCSS_PRIME_P224,
422 _CCSS_PRIME_P521, _cc_abort, _cc_atfork_child, _cc_atfork_parent, 422 _CCSS_PRIME_P256, _CCSS_PRIME_P384, _CCSS_PRIME_P521, _cc_abort,
423 _cc_atfork_prepare, _cc_clear, _cc_cmp_safe, _cc_impl_name, 423 _cc_atfork_child, _cc_atfork_parent, _cc_atfork_prepare, _cc_clear,
424 _cc_try_abort, _cc_try_abort_if, _ccaes_cbc_decrypt_mode, 424 _cc_cmp_safe, _cc_impl_name, _cc_try_abort, _cc_try_abort_if,
425 _ccaes_cbc_encrypt_mode, _ccaes_ccm_decrypt_mode, _ccaes_ccm_encrypt_mode, 425 _ccaes_cbc_decrypt_mode, _ccaes_cbc_encrypt_mode, _ccaes_ccm_decrypt_mode,
426 _ccaes_cfb8_decrypt_mode, _ccaes_cfb8_encrypt_mode, _ccaes_cfb_decrypt_mode, 426 _ccaes_ccm_encrypt_mode, _ccaes_cfb8_decrypt_mode, _ccaes_cfb8_encrypt_mode,
427 _ccaes_cfb_encrypt_mode, _ccaes_ctr_crypt_mode, _ccaes_ecb_decrypt_mode, 427 _ccaes_cfb_decrypt_mode, _ccaes_cfb_encrypt_mode, _ccaes_ctr_crypt_mode,
428 _ccaes_ecb_encrypt_mode, _ccaes_gcm_decrypt_mode, _ccaes_gcm_encrypt_mode, 428 _ccaes_ecb_decrypt_mode, _ccaes_ecb_encrypt_mode, _ccaes_gcm_decrypt_mode,
429 _ccaes_gladman_cbc_decrypt_mode, _ccaes_gladman_cbc_encrypt_mode, 429 _ccaes_gcm_encrypt_mode, _ccaes_gladman_cbc_decrypt_mode,
430 _ccaes_ltc_ecb_decrypt_mode, _ccaes_ltc_ecb_encrypt_mode, 430 _ccaes_gladman_cbc_encrypt_mode, _ccaes_ltc_ecb_decrypt_mode,
431 _ccaes_ofb_crypt_mode, _ccaes_siv_decrypt_mode, _ccaes_siv_encrypt_mode, 431 _ccaes_ltc_ecb_encrypt_mode, _ccaes_ofb_crypt_mode, _ccaes_siv_decrypt_mode,
432 _ccaes_siv_hmac_sha256_decrypt_mode, _ccaes_siv_hmac_sha256_encrypt_mode, 432 _ccaes_siv_encrypt_mode, _ccaes_siv_hmac_sha256_decrypt_mode,
433 _ccaes_unwind, _ccaes_xts_decrypt_mode, _ccaes_xts_encrypt_mode, 433 _ccaes_siv_hmac_sha256_encrypt_mode, _ccaes_unwind, _ccaes_xts_decrypt_mode,
434 _ccansikdf_x963, _ccapsic_client_check_intersect_response, 434 _ccaes_xts_encrypt_mode, _ccansikdf_x963, _ccapsic_client_check_intersect_response,
435 _ccapsic_client_generate_match_response, _ccapsic_client_init, 435 _ccapsic_client_generate_match_response, _ccapsic_client_init,
436 _ccapsic_client_state_sizeof, _ccapsic_server_determine_intersection, 436 _ccapsic_client_state_sizeof, _ccapsic_server_determine_intersection,
437 _ccapsic_server_encode_element, _ccapsic_server_init, _ccapsic_server_state_sizeof, 437 _ccapsic_server_encode_element, _ccapsic_server_init, _ccapsic_server_state_sizeof,
...@@ -650,19 +650,20 @@ exports:...@@ -650,19 +650,20 @@ exports:
650 _ccmldsa_sign_with_context, _ccmldsa_signature_nbytes_ctx, 650 _ccmldsa_sign_with_context, _ccmldsa_signature_nbytes_ctx,
651 _ccmldsa_signature_nbytes_params, _ccmldsa_sizeof_full_ctx, 651 _ccmldsa_signature_nbytes_params, _ccmldsa_sizeof_full_ctx,
652 _ccmldsa_sizeof_pub_ctx, _ccmldsa_verify, _ccmldsa_verify_prehashed, 652 _ccmldsa_sizeof_pub_ctx, _ccmldsa_verify, _ccmldsa_verify_prehashed,
653 _ccmldsa_verify_with_context, _ccmode_factory_cbc_decrypt, 653 _ccmldsa_verify_prehashed_with_canary, _ccmldsa_verify_with_canary,
654 _ccmode_factory_cbc_encrypt, _ccmode_factory_ccm_decrypt, 654 _ccmldsa_verify_with_context, _ccmldsa_verify_with_context_and_canary,
655 _ccmode_factory_ccm_encrypt, _ccmode_factory_cfb8_decrypt, 655 _ccmode_factory_cbc_decrypt, _ccmode_factory_cbc_encrypt,
656 _ccmode_factory_cfb8_encrypt, _ccmode_factory_cfb_decrypt, 656 _ccmode_factory_ccm_decrypt, _ccmode_factory_ccm_encrypt,
657 _ccmode_factory_cfb_encrypt, _ccmode_factory_ctr_crypt, _ccmode_factory_gcm_decrypt, 657 _ccmode_factory_cfb8_decrypt, _ccmode_factory_cfb8_encrypt,
658 _ccmode_factory_gcm_encrypt, _ccmode_factory_ofb_crypt, _ccmode_factory_siv_decrypt, 658 _ccmode_factory_cfb_decrypt, _ccmode_factory_cfb_encrypt,
659 _ccmode_factory_siv_encrypt, _ccmode_factory_xts_decrypt, 659 _ccmode_factory_ctr_crypt, _ccmode_factory_gcm_decrypt, _ccmode_factory_gcm_encrypt,
660 _ccmode_factory_xts_encrypt, _ccn_add, _ccn_add1, _ccn_bitlen, 660 _ccmode_factory_ofb_crypt, _ccmode_factory_siv_decrypt, _ccmode_factory_siv_encrypt,
661 _ccn_cmp, _ccn_cmpn, _ccn_lprint, _ccn_print, _ccn_read_uint, 661 _ccmode_factory_xts_decrypt, _ccmode_factory_xts_encrypt,
662 _ccn_set_bit, _ccn_seti, _ccn_sub, _ccn_swap, _ccn_write_int, 662 _ccn_add, _ccn_add1, _ccn_bitlen, _ccn_cmp, _ccn_cmpn, _ccn_lprint,
663 _ccn_write_int_size, _ccn_write_uint, _ccn_write_uint_padded, 663 _ccn_print, _ccn_read_uint, _ccn_set_bit, _ccn_seti, _ccn_sub,
664 _ccn_write_uint_padded_ct, _ccn_write_uint_size, _ccn_xor, 664 _ccn_swap, _ccn_write_int, _ccn_write_int_size, _ccn_write_uint,
665 _ccn_zero, _ccnistkdf_ctr_cmac, _ccnistkdf_ctr_cmac_fixed, 665 _ccn_write_uint_padded, _ccn_write_uint_padded_ct, _ccn_write_uint_size,
666 _ccn_xor, _ccn_zero, _ccnistkdf_ctr_cmac, _ccnistkdf_ctr_cmac_fixed,
666 _ccnistkdf_ctr_hmac, _ccnistkdf_ctr_hmac_fixed, _ccofb_block_size, 667 _ccnistkdf_ctr_hmac, _ccnistkdf_ctr_hmac_fixed, _ccofb_block_size,
667 _ccofb_context_size, _ccofb_init, _ccofb_one_shot, _ccofb_update, 668 _ccofb_context_size, _ccofb_init, _ccofb_one_shot, _ccofb_update,
668 _ccoid_equal, _ccoid_payload, _ccoid_size, _ccpad_cts1_decrypt, 669 _ccoid_equal, _ccoid_payload, _ccoid_size, _ccpad_cts1_decrypt,
...@@ -1116,7 +1117,7 @@ tbd-version: 4...@@ -1116,7 +1117,7 @@ tbd-version: 4
1116targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1117targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1117 arm64e-macos, arm64e-maccatalyst ]1118 arm64e-macos, arm64e-maccatalyst ]
1118install-name: '/usr/lib/system/libquarantine.dylib'1119install-name: '/usr/lib/system/libquarantine.dylib'
1119current-version: 196.0.11120current-version: 196.40.3
1120parent-umbrella:1121parent-umbrella:
1121 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1122 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1122 arm64e-macos, arm64e-maccatalyst ]1123 arm64e-macos, arm64e-maccatalyst ]
...@@ -1281,7 +1282,7 @@ tbd-version: 4...@@ -1281,7 +1282,7 @@ tbd-version: 4
1281targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1282targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1282 arm64e-macos, arm64e-maccatalyst ]1283 arm64e-macos, arm64e-maccatalyst ]
1283install-name: '/usr/lib/system/libsystem_c.dylib'1284install-name: '/usr/lib/system/libsystem_c.dylib'
1284current-version: 1725.0.111285current-version: 1725.40.4
1285parent-umbrella:1286parent-umbrella:
1286 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1287 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1287 arm64e-macos, arm64e-maccatalyst ]1288 arm64e-macos, arm64e-maccatalyst ]
...@@ -1578,7 +1579,7 @@ tbd-version: 4...@@ -1578,7 +1579,7 @@ tbd-version: 4
1578targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1579targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1579 arm64e-macos, arm64e-maccatalyst ]1580 arm64e-macos, arm64e-maccatalyst ]
1580install-name: '/usr/lib/system/libsystem_collections.dylib'1581install-name: '/usr/lib/system/libsystem_collections.dylib'
1581current-version: 1725.0.111582current-version: 1725.40.4
1582parent-umbrella:1583parent-umbrella:
1583 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1584 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1584 arm64e-macos, arm64e-maccatalyst ]1585 arm64e-macos, arm64e-maccatalyst ]
...@@ -1608,7 +1609,7 @@ tbd-version: 4...@@ -1608,7 +1609,7 @@ tbd-version: 4
1608targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1609targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1609 arm64e-macos, arm64e-maccatalyst ]1610 arm64e-macos, arm64e-maccatalyst ]
1610install-name: '/usr/lib/system/libsystem_configuration.dylib'1611install-name: '/usr/lib/system/libsystem_configuration.dylib'
1611current-version: 1385.0.71612current-version: 1385.40.9
1612parent-umbrella:1613parent-umbrella:
1613 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1614 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1614 arm64e-macos, arm64e-maccatalyst ]1615 arm64e-macos, arm64e-maccatalyst ]
...@@ -1643,8 +1644,8 @@ exports:...@@ -1643,8 +1644,8 @@ exports:
1643 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1644 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1644 arm64e-macos, arm64e-maccatalyst ]1645 arm64e-macos, arm64e-maccatalyst ]
1645 symbols: [ _CMCONTAINERSEAM_DEFAULT, _CMDISPATCHSEAM_DEFAULT, _CMFSSEAM_DEFAULT, 1646 symbols: [ _CMCONTAINERSEAM_DEFAULT, _CMDISPATCHSEAM_DEFAULT, _CMFSSEAM_DEFAULT,
1646 _CMNOTIFYSEAM_DEFAULT, _CMPWDSEAM_DEFAULT, _CMSANDBOXSEAM_DEFAULT, 1647 _CMNOTIFYSEAM_DEFAULT, _CMPWDSEAM_DEFAULT, _CMQUARANTINESEAM_DEFAULT,
1647 _CONTAINER_CLASS_NAMES, _CONTAINER_NOTIFY_GENERATION_INITIAL, 1648 _CMSANDBOXSEAM_DEFAULT, _CONTAINER_CLASS_NAMES, _CONTAINER_NOTIFY_GENERATION_INITIAL,
1648 _CONTAINER_NOTIFY_GENERATION_INVALID, _CONTAINER_NOTIFY_USER_INVALIDATED, 1649 _CONTAINER_NOTIFY_GENERATION_INVALID, _CONTAINER_NOTIFY_USER_INVALIDATED,
1649 _CONTAINER_PERSONA_CURRENT, _CONTAINER_PERSONA_PRIMARY, __container_init, 1650 _CONTAINER_PERSONA_CURRENT, _CONTAINER_PERSONA_PRIMARY, __container_init,
1650 __container_notify_copy_notify_name, __container_query_get_next_result_sync, 1651 __container_notify_copy_notify_name, __container_query_get_next_result_sync,
...@@ -1658,17 +1659,17 @@ exports:...@@ -1658,17 +1659,17 @@ exports:
1658 _container_acquire_sandbox_extension, _container_audit_token_copy_codesign_hash, 1659 _container_acquire_sandbox_extension, _container_audit_token_copy_codesign_hash,
1659 _container_audit_token_copy_codesign_identifier, _container_audit_token_copy_codesign_team_identifier, 1660 _container_audit_token_copy_codesign_identifier, _container_audit_token_copy_codesign_team_identifier,
1660 _container_audit_token_copy_entitlement, _container_audit_token_copy_executable_name, 1661 _container_audit_token_copy_entitlement, _container_audit_token_copy_executable_name,
1661 _container_audit_token_for_pid, _container_audit_token_get_codesign_status, 1662 _container_audit_token_copy_executable_name_with_pid, _container_audit_token_for_pid,
1662 _container_audit_token_get_egid, _container_audit_token_get_euid, 1663 _container_audit_token_get_codesign_status, _container_audit_token_get_egid,
1663 _container_audit_token_get_pid, _container_audit_token_get_platform, 1664 _container_audit_token_get_euid, _container_audit_token_get_pid,
1664 _container_audit_token_is_valid, _container_authorize, _container_authorize_container, 1665 _container_audit_token_get_platform, _container_audit_token_is_valid,
1665 _container_authorize_container_for_self, _container_authorize_get_result_description, 1666 _container_authorize, _container_authorize_container, _container_authorize_container_for_self,
1666 _container_base64_decode, _container_base64_decode_string, 1667 _container_authorize_get_result_description, _container_base64_decode,
1667 _container_base64_encode, _container_base64_encode_string, 1668 _container_base64_decode_string, _container_base64_encode,
1668 _container_bundle_copy_data_container, _container_bundle_copy_data_container_path, 1669 _container_base64_encode_string, _container_bundle_copy_data_container,
1669 _container_class_for_each_normalized_class, _container_class_normalized, 1670 _container_bundle_copy_data_container_path, _container_class_for_each_normalized_class,
1670 _container_class_supports_data_subdirectory, _container_class_supports_randomized_path, 1671 _container_class_normalized, _container_class_supports_data_subdirectory,
1671 _container_class_supports_randomized_path_on_current_platform, 1672 _container_class_supports_randomized_path, _container_class_supports_randomized_path_on_current_platform,
1672 _container_client_copy_decoded_from_xpc_object, _container_client_copy_encoded_xpc_object, 1673 _container_client_copy_decoded_from_xpc_object, _container_client_copy_encoded_xpc_object,
1673 _container_client_copy_entitlement, _container_client_create_from_audit_token, 1674 _container_client_copy_entitlement, _container_client_create_from_audit_token,
1674 _container_client_get_audit_token, _container_client_get_codesign_identifier, 1675 _container_client_get_audit_token, _container_client_get_codesign_identifier,
...@@ -1680,7 +1681,7 @@ exports:...@@ -1680,7 +1681,7 @@ exports:
1680 _container_client_is_signature_valid, _container_client_is_signed, 1681 _container_client_is_signature_valid, _container_client_is_signed,
1681 _container_client_is_test_client, _container_codesign_copy_cdhash, 1682 _container_client_is_test_client, _container_codesign_copy_cdhash,
1682 _container_codesign_copy_cs_identity, _container_codesign_copy_cs_team_identifier, 1683 _container_codesign_copy_cs_identity, _container_codesign_copy_cs_team_identifier,
1683 _container_codesign_copy_current_identifier, _container_codesign_get_self_audit_token, 1684 _container_codesign_get_current_identifier, _container_codesign_get_self_audit_token,
1684 _container_codesign_get_status, _container_copy_client, _container_copy_code_signing_info_for_identifier, 1685 _container_codesign_get_status, _container_copy_client, _container_copy_code_signing_info_for_identifier,
1685 _container_copy_from_path, _container_copy_info, _container_copy_info_value_for_key, 1686 _container_copy_from_path, _container_copy_info, _container_copy_info_value_for_key,
1686 _container_copy_object, _container_copy_path, _container_copy_persona_unique_strings, 1687 _container_copy_object, _container_copy_path, _container_copy_persona_unique_strings,
...@@ -1794,7 +1795,8 @@ exports:...@@ -1794,7 +1795,8 @@ exports:
1794 _container_seam_dispatch_set_common, _container_seam_fs_ensure_lazy_loaded, 1795 _container_seam_dispatch_set_common, _container_seam_fs_ensure_lazy_loaded,
1795 _container_seam_fs_reset, _container_seam_fs_set_common, _container_seam_notify_reset, 1796 _container_seam_fs_reset, _container_seam_fs_set_common, _container_seam_notify_reset,
1796 _container_seam_notify_set_common, _container_seam_pwd_reset, 1797 _container_seam_notify_set_common, _container_seam_pwd_reset,
1797 _container_seam_pwd_set_common, _container_seam_sandbox_reset, 1798 _container_seam_pwd_set_common, _container_seam_quarantine_reset,
1799 _container_seam_quarantine_set_common, _container_seam_sandbox_reset,
1798 _container_seam_sandbox_set_common, _container_serialize_copy_deserialized_reference, 1800 _container_seam_sandbox_set_common, _container_serialize_copy_deserialized_reference,
1799 _container_serialize_copy_serialized_reference, _container_set_code_signing_info_for_identifier, 1801 _container_serialize_copy_serialized_reference, _container_set_code_signing_info_for_identifier,
1800 _container_set_data_protection_for_current_user, _container_set_info_value, 1802 _container_set_data_protection_for_current_user, _container_set_info_value,
...@@ -1831,7 +1833,7 @@ exports:...@@ -1831,7 +1833,7 @@ exports:
1831 _container_xpc_set_outgoing_message_send_block, _container_xpc_set_use_shared_connection, 1833 _container_xpc_set_outgoing_message_send_block, _container_xpc_set_use_shared_connection,
1832 _container_xpc_shared_copy_connection, _gCMContainerSeam, 1834 _container_xpc_shared_copy_connection, _gCMContainerSeam,
1833 _gCMDispatchSeam, _gCMFSSeam, _gCMNotifySeam, _gCMPWDSeam, 1835 _gCMDispatchSeam, _gCMFSSeam, _gCMNotifySeam, _gCMPWDSeam,
1834 _gCMSandboxSeam ]1836 _gCMQuarantineSeam, _gCMSandboxSeam ]
1835 - targets: [ x86_64-maccatalyst, arm64-maccatalyst, arm64e-maccatalyst ]1837 - targets: [ x86_64-maccatalyst, arm64-maccatalyst, arm64e-maccatalyst ]
1836 symbols: [ _CONTAINER_CURRENT_MOBILE_UID, _CONTAINER_INSTALLATION_UID, 1838 symbols: [ _CONTAINER_CURRENT_MOBILE_UID, _CONTAINER_INSTALLATION_UID,
1837 _CONTAINER_SYSTEM_UID, _container_create_or_lookup, _container_create_or_lookup_app_group_paths, 1839 _CONTAINER_SYSTEM_UID, _container_create_or_lookup, _container_create_or_lookup_app_group_paths,
...@@ -1925,7 +1927,7 @@ tbd-version: 4...@@ -1925,7 +1927,7 @@ tbd-version: 4
1925targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1927targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1926 arm64e-macos, arm64e-maccatalyst ]1928 arm64e-macos, arm64e-maccatalyst ]
1927install-name: '/usr/lib/system/libsystem_dnssd.dylib'1929install-name: '/usr/lib/system/libsystem_dnssd.dylib'
1928current-version: 2881.0.251930current-version: 2881.40.18
1929parent-umbrella:1931parent-umbrella:
1930 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 1932 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
1931 arm64e-macos, arm64e-maccatalyst ]1933 arm64e-macos, arm64e-maccatalyst ]
...@@ -1962,7 +1964,7 @@ exports:...@@ -1962,7 +1964,7 @@ exports:
1962tbd-version: 41964tbd-version: 4
1963targets: [ x86_64-macos, arm64-macos, arm64e-macos ]1965targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
1964install-name: '/usr/lib/system/libsystem_eligibility.dylib'1966install-name: '/usr/lib/system/libsystem_eligibility.dylib'
1965current-version: 2861967current-version: 286.40.9
1966parent-umbrella:1968parent-umbrella:
1967 - targets: [ x86_64-macos, arm64-macos, arm64e-macos ]1969 - targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
1968 umbrella: System1970 umbrella: System
...@@ -2118,7 +2120,7 @@ tbd-version: 4...@@ -2118,7 +2120,7 @@ tbd-version: 4
2118targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 2120targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
2119 arm64e-macos, arm64e-maccatalyst ]2121 arm64e-macos, arm64e-maccatalyst ]
2120install-name: '/usr/lib/system/libsystem_kernel.dylib'2122install-name: '/usr/lib/system/libsystem_kernel.dylib'
2121current-version: 12377.1.92123current-version: 12377.41.6
2122parent-umbrella:2124parent-umbrella:
2123 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 2125 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
2124 arm64e-macos, arm64e-maccatalyst ]2126 arm64e-macos, arm64e-maccatalyst ]
...@@ -2254,7 +2256,7 @@ exports:...@@ -2254,7 +2256,7 @@ exports:
2254 _clock_alarm, _clock_alarm_reply, _clock_get_attributes, _clock_get_time, 2256 _clock_alarm, _clock_alarm_reply, _clock_get_attributes, _clock_get_time,
2255 _clock_set_attributes, _clock_set_time, _clock_sleep, _clock_sleep_trap, 2257 _clock_set_attributes, _clock_set_time, _clock_sleep, _clock_sleep_trap,
2256 _clonefile, _clonefileat, _close, '_close$NOCANCEL', _coalition_create, 2258 _clonefile, _clonefileat, _close, '_close$NOCANCEL', _coalition_create,
2257 _coalition_info_debug_info, _coalition_info_resource_usage, 2259 _coalition_info_debug_info, _coalition_info_pid_list, _coalition_info_resource_usage,
2258 _coalition_info_set_efficiency, _coalition_info_set_name, 2260 _coalition_info_set_efficiency, _coalition_info_set_name,
2259 _coalition_ledger_set_logical_writes_limit, _coalition_policy_get, 2261 _coalition_ledger_set_logical_writes_limit, _coalition_policy_get,
2260 _coalition_policy_set, _coalition_reap, _coalition_terminate, 2262 _coalition_policy_set, _coalition_reap, _coalition_terminate,
...@@ -2636,7 +2638,7 @@ tbd-version: 4...@@ -2636,7 +2638,7 @@ tbd-version: 4
2636targets: [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, 2638targets: [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst,
2637 arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]2639 arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
2638install-name: '/usr/lib/system/libsystem_m.dylib'2640install-name: '/usr/lib/system/libsystem_m.dylib'
2639current-version: 3307.0.12641current-version: 3309
2640parent-umbrella:2642parent-umbrella:
2641 - targets: [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, 2643 - targets: [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst,
2642 arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]2644 arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ]
...@@ -2858,7 +2860,7 @@ tbd-version: 4...@@ -2858,7 +2860,7 @@ tbd-version: 4
2858targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 2860targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
2859 arm64e-macos, arm64e-maccatalyst ]2861 arm64e-macos, arm64e-maccatalyst ]
2860install-name: '/usr/lib/system/libsystem_malloc.dylib'2862install-name: '/usr/lib/system/libsystem_malloc.dylib'
2861current-version: 792.1.12863current-version: 792.41.1
2862parent-umbrella:2864parent-umbrella:
2863 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 2865 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
2864 arm64e-macos, arm64e-maccatalyst ]2866 arm64e-macos, arm64e-maccatalyst ]
...@@ -2983,11 +2985,12 @@ exports:...@@ -2983,11 +2985,12 @@ exports:
2983 _ne_session_status_to_string, _ne_session_stop, _ne_session_stop_all_with_plugin_type, 2985 _ne_session_status_to_string, _ne_session_stop, _ne_session_stop_all_with_plugin_type,
2984 _ne_session_stop_reason_to_string, _ne_session_type_to_string, 2986 _ne_session_stop_reason_to_string, _ne_session_type_to_string,
2985 _ne_session_urlfilter_configs_present, _ne_session_use_as_system_vpn, 2987 _ne_session_urlfilter_configs_present, _ne_session_use_as_system_vpn,
2986 _ne_session_vod_evaluate_connection_present, _ne_session_vpn_include_all_networks_configs_present, 2988 _ne_session_vod_evaluate_connection_present, _ne_session_vpn_configs_present,
2987 _ne_socket_set_attribution, _ne_socket_set_domains, _ne_socket_set_is_app_initiated, 2989 _ne_session_vpn_include_all_networks_configs_present, _ne_socket_set_attribution,
2988 _ne_socket_set_website_attribution, _ne_tracker_build_cache, 2990 _ne_socket_set_domains, _ne_socket_set_is_app_initiated, _ne_socket_set_website_attribution,
2989 _ne_tracker_build_trie, _ne_tracker_check_info_changed, _ne_tracker_check_is_hostname_blocked, 2991 _ne_tracker_build_cache, _ne_tracker_build_trie, _ne_tracker_check_info_changed,
2990 _ne_tracker_check_tcc, _ne_tracker_clear_cache, _ne_tracker_context_can_block_request, 2992 _ne_tracker_check_is_hostname_blocked, _ne_tracker_check_tcc,
2993 _ne_tracker_clear_cache, _ne_tracker_context_can_block_request,
2991 _ne_tracker_context_get_domain, _ne_tracker_context_get_domain_owner, 2994 _ne_tracker_context_get_domain, _ne_tracker_context_get_domain_owner,
2992 _ne_tracker_context_is_from_app_list, _ne_tracker_context_is_from_web_list, 2995 _ne_tracker_context_is_from_app_list, _ne_tracker_context_is_from_web_list,
2993 _ne_tracker_copy_current_stacktrace, _ne_tracker_create_xcode_issue, 2996 _ne_tracker_copy_current_stacktrace, _ne_tracker_create_xcode_issue,
...@@ -3024,7 +3027,7 @@ tbd-version: 4...@@ -3024,7 +3027,7 @@ tbd-version: 4
3024targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3027targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3025 arm64e-macos, arm64e-maccatalyst ]3028 arm64e-macos, arm64e-maccatalyst ]
3026install-name: '/usr/lib/system/libsystem_platform.dylib'3029install-name: '/usr/lib/system/libsystem_platform.dylib'
3027current-version: 359.1.23030current-version: 359.40.3
3028parent-umbrella:3031parent-umbrella:
3029 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3032 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3030 arm64e-macos, arm64e-maccatalyst ]3033 arm64e-macos, arm64e-maccatalyst ]
...@@ -3200,7 +3203,7 @@ tbd-version: 4...@@ -3200,7 +3203,7 @@ tbd-version: 4
3200targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3203targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3201 arm64e-macos, arm64e-maccatalyst ]3204 arm64e-macos, arm64e-maccatalyst ]
3202install-name: '/usr/lib/system/libsystem_sandbox.dylib'3205install-name: '/usr/lib/system/libsystem_sandbox.dylib'
3203current-version: 2680.0.503206current-version: 2680.41.1
3204parent-umbrella:3207parent-umbrella:
3205 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3208 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3206 arm64e-macos, arm64e-maccatalyst ]3209 arm64e-macos, arm64e-maccatalyst ]
...@@ -3321,7 +3324,7 @@ tbd-version: 4...@@ -3321,7 +3324,7 @@ tbd-version: 4
3321targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3324targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3322 arm64e-macos, arm64e-maccatalyst ]3325 arm64e-macos, arm64e-maccatalyst ]
3323install-name: '/usr/lib/system/libsystem_secinit.dylib'3326install-name: '/usr/lib/system/libsystem_secinit.dylib'
3324current-version: 168.0.33327current-version: 168.40.2
3325parent-umbrella:3328parent-umbrella:
3326 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3329 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3327 arm64e-macos, arm64e-maccatalyst ]3330 arm64e-macos, arm64e-maccatalyst ]
...@@ -3354,7 +3357,7 @@ tbd-version: 4...@@ -3354,7 +3357,7 @@ tbd-version: 4
3354targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3357targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3355 arm64e-macos, arm64e-maccatalyst ]3358 arm64e-macos, arm64e-maccatalyst ]
3356install-name: '/usr/lib/system/libsystem_trace.dylib'3359install-name: '/usr/lib/system/libsystem_trace.dylib'
3357current-version: 1815.0.163360current-version: 1815.40.20
3358parent-umbrella:3361parent-umbrella:
3359 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3362 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3360 arm64e-macos, arm64e-maccatalyst ]3363 arm64e-macos, arm64e-maccatalyst ]
...@@ -3441,7 +3444,7 @@ exports:...@@ -3441,7 +3444,7 @@ exports:
3441tbd-version: 43444tbd-version: 4
3442targets: [ x86_64-macos, arm64-macos, arm64e-macos ]3445targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
3443install-name: '/usr/lib/system/libsystem_trial.dylib'3446install-name: '/usr/lib/system/libsystem_trial.dylib'
3444current-version: 4743447current-version: 474.3
3445parent-umbrella:3448parent-umbrella:
3446 - targets: [ x86_64-macos, arm64-macos, arm64e-macos ]3449 - targets: [ x86_64-macos, arm64-macos, arm64e-macos ]
3447 umbrella: System3450 umbrella: System
...@@ -3484,7 +3487,7 @@ tbd-version: 4...@@ -3484,7 +3487,7 @@ tbd-version: 4
3484targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3487targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3485 arm64e-macos, arm64e-maccatalyst ]3488 arm64e-macos, arm64e-maccatalyst ]
3486install-name: '/usr/lib/system/libxpc.dylib'3489install-name: '/usr/lib/system/libxpc.dylib'
3487current-version: 3089.0.113490current-version: 3089.41.2
3488parent-umbrella:3491parent-umbrella:
3489 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, 3492 - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst,
3490 arm64e-macos, arm64e-maccatalyst ]3493 arm64e-macos, arm64e-maccatalyst ]
...@@ -3670,10 +3673,10 @@ exports:...@@ -3670,10 +3673,10 @@ exports:
3670 _xpc_binprefs_equal, _xpc_binprefs_init, _xpc_binprefs_is_noop, 3673 _xpc_binprefs_equal, _xpc_binprefs_init, _xpc_binprefs_is_noop,
3671 _xpc_binprefs_set_psattr, _xpc_bool_create, _xpc_bool_get_value, 3674 _xpc_binprefs_set_psattr, _xpc_bool_create, _xpc_bool_get_value,
3672 _xpc_bs_main, _xpc_bundle_copy_info_dictionary, _xpc_bundle_copy_normalized_cryptex_path, 3675 _xpc_bs_main, _xpc_bundle_copy_info_dictionary, _xpc_bundle_copy_normalized_cryptex_path,
3673 _xpc_bundle_copy_resource_path, _xpc_bundle_copy_services, 3676 _xpc_bundle_copy_services, _xpc_bundle_create, _xpc_bundle_create_from_origin,
3674 _xpc_bundle_create, _xpc_bundle_create_from_origin, _xpc_bundle_create_from_origin_with_string_cache, 3677 _xpc_bundle_create_from_origin_with_string_cache, _xpc_bundle_create_main,
3675 _xpc_bundle_create_main, _xpc_bundle_create_with_string_cache, 3678 _xpc_bundle_create_with_string_cache, _xpc_bundle_get_error,
3676 _xpc_bundle_get_error, _xpc_bundle_get_executable_path, _xpc_bundle_get_info_dictionary, 3679 _xpc_bundle_get_executable_path, _xpc_bundle_get_info_dictionary,
3677 _xpc_bundle_get_path, _xpc_bundle_get_property, _xpc_bundle_get_xpcservice_dictionary, 3680 _xpc_bundle_get_path, _xpc_bundle_get_property, _xpc_bundle_get_xpcservice_dictionary,
3678 _xpc_bundle_populate, _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue, 3681 _xpc_bundle_populate, _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue,
3679 _xpc_bundle_resolve_sync, _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async, 3682 _xpc_bundle_resolve_sync, _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async,
...@@ -3752,15 +3755,15 @@ exports:...@@ -3752,15 +3755,15 @@ exports:
3752 _xpc_event_publisher_set_error_handler, _xpc_event_publisher_set_event, 3755 _xpc_event_publisher_set_error_handler, _xpc_event_publisher_set_event,
3753 _xpc_event_publisher_set_handler, _xpc_event_publisher_set_initial_load_completed_handler_4remoted, 3756 _xpc_event_publisher_set_handler, _xpc_event_publisher_set_initial_load_completed_handler_4remoted,
3754 _xpc_event_publisher_set_subscriber_keepalive, _xpc_event_publisher_set_throttling, 3757 _xpc_event_publisher_set_subscriber_keepalive, _xpc_event_publisher_set_throttling,
3755 _xpc_event_stream_check_in, _xpc_event_stream_check_in2, _xpc_exit_reason_get_label, 3758 _xpc_exit_reason_get_label, _xpc_extension_type_init, _xpc_fd_create,
3756 _xpc_extension_type_init, _xpc_fd_create, _xpc_fd_dup, _xpc_file_transfer_cancel, 3759 _xpc_fd_dup, _xpc_file_transfer_cancel, _xpc_file_transfer_copy_io,
3757 _xpc_file_transfer_copy_io, _xpc_file_transfer_create_with_fd, 3760 _xpc_file_transfer_create_with_fd, _xpc_file_transfer_create_with_path,
3758 _xpc_file_transfer_create_with_path, _xpc_file_transfer_get_size, 3761 _xpc_file_transfer_get_size, _xpc_file_transfer_get_transfer_id,
3759 _xpc_file_transfer_get_transfer_id, _xpc_file_transfer_send_finished, 3762 _xpc_file_transfer_send_finished, _xpc_file_transfer_set_transport_writing_callbacks,
3760 _xpc_file_transfer_set_transport_writing_callbacks, _xpc_file_transfer_write_finished, 3763 _xpc_file_transfer_write_finished, _xpc_file_transfer_write_to_fd,
3761 _xpc_file_transfer_write_to_fd, _xpc_file_transfer_write_to_path, 3764 _xpc_file_transfer_write_to_path, _xpc_generate_audit_token,
3762 _xpc_generate_audit_token, _xpc_get_attachment_endpoint, _xpc_get_class4NSXPC, 3765 _xpc_get_attachment_endpoint, _xpc_get_class4NSXPC, _xpc_get_event_name,
3763 _xpc_get_event_name, _xpc_get_instance, _xpc_get_service_identifier_for_token, 3766 _xpc_get_instance, _xpc_get_service_identifier_for_token,
3764 _xpc_get_service_name_from_pid, _xpc_get_service_uid_for_token, 3767 _xpc_get_service_name_from_pid, _xpc_get_service_uid_for_token,
3765 _xpc_get_type, _xpc_handle_service, _xpc_handle_subservice, 3768 _xpc_get_type, _xpc_handle_service, _xpc_handle_subservice,
3766 _xpc_hash, _xpc_impersonate_user, _xpc_init_services, _xpc_inspect_copy_description, 3769 _xpc_hash, _xpc_impersonate_user, _xpc_init_services, _xpc_inspect_copy_description,
lib/libc/include/any-macos-any/AvailabilityInternal.h+10-10
...@@ -37,11 +37,11 @@...@@ -37,11 +37,11 @@
37 #if __has_builtin(__is_target_os)37 #if __has_builtin(__is_target_os)
38 #if __is_target_os(macos)38 #if __is_target_os(macos)
39 #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__39 #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
40 #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_26_040 #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_26_1
41 #endif41 #endif
42 #elif __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ 42 #elif __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
43 #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__43 #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
44 #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_26_044 #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_26_1
45 #endif /* __has_builtin(__is_target_os) */45 #endif /* __has_builtin(__is_target_os) */
46 #endif /* defined(__has_builtin) */46 #endif /* defined(__has_builtin) */
47#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */47#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */
...@@ -51,11 +51,11 @@...@@ -51,11 +51,11 @@
51 #if __has_builtin(__is_target_os)51 #if __has_builtin(__is_target_os)
52 #if __is_target_os(ios)52 #if __is_target_os(ios)
53 #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__53 #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
54 #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_26_054 #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_26_1
55 #endif55 #endif
56 #elif __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ 56 #elif __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
57 #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__57 #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
58 #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_26_058 #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_26_1
59 #endif /* __has_builtin(__is_target_os) */59 #endif /* __has_builtin(__is_target_os) */
60 #endif /* defined(__has_builtin) */60 #endif /* defined(__has_builtin) */
61#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */61#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */
...@@ -65,13 +65,13 @@...@@ -65,13 +65,13 @@
65 #if __has_builtin(__is_target_os)65 #if __has_builtin(__is_target_os)
66 #if __is_target_os(watchos)66 #if __is_target_os(watchos)
67 #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__67 #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
68 #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_26_068 #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_26_1
69 /* for compatibility with existing code. New code should use platform specific checks */69 /* for compatibility with existing code. New code should use platform specific checks */
70 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_070 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0
71 #endif71 #endif
72 #elif __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ 72 #elif __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
73 #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__73 #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
74 #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_26_074 #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_26_1
75 /* for compatibility with existing code. New code should use platform specific checks */75 /* for compatibility with existing code. New code should use platform specific checks */
76 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_076 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0
77 #endif /* __has_builtin(__is_target_os) */77 #endif /* __has_builtin(__is_target_os) */
...@@ -83,13 +83,13 @@...@@ -83,13 +83,13 @@
83 #if __has_builtin(__is_target_os)83 #if __has_builtin(__is_target_os)
84 #if __is_target_os(tvos)84 #if __is_target_os(tvos)
85 #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__85 #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
86 #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_26_086 #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_26_1
87 /* for compatibility with existing code. New code should use platform specific checks */87 /* for compatibility with existing code. New code should use platform specific checks */
88 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_088 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0
89 #endif89 #endif
90 #elif __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ 90 #elif __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
91 #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__91 #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
92 #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_26_092 #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_26_1
93 /* for compatibility with existing code. New code should use platform specific checks */93 /* for compatibility with existing code. New code should use platform specific checks */
94 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_094 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0
95 #endif /* __has_builtin(__is_target_os) */95 #endif /* __has_builtin(__is_target_os) */
...@@ -103,7 +103,7 @@...@@ -103,7 +103,7 @@
103 #if __has_builtin(__is_target_os)103 #if __has_builtin(__is_target_os)
104 #if __is_target_os(driverkit)104 #if __is_target_os(driverkit)
105 #define __DRIVERKIT_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__105 #define __DRIVERKIT_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
106 #define __DRIVERKIT_VERSION_MAX_ALLOWED __DRIVERKIT_25_0106 #define __DRIVERKIT_VERSION_MAX_ALLOWED __DRIVERKIT_25_1
107 #endif107 #endif
108 #endif /* __has_builtin(__is_target_os) */108 #endif /* __has_builtin(__is_target_os) */
109 #endif /* defined(__has_builtin) */109 #endif /* defined(__has_builtin) */
...@@ -114,7 +114,7 @@...@@ -114,7 +114,7 @@
114 #if __has_builtin(__is_target_os)114 #if __has_builtin(__is_target_os)
115 #if __is_target_os(visionos)115 #if __is_target_os(visionos)
116 #define __VISION_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__116 #define __VISION_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__
117 #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_26_0117 #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_26_1
118 /* for compatibility with existing code. New code should use platform specific checks */118 /* for compatibility with existing code. New code should use platform specific checks */
119 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_17_1119 #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_17_1
120 #endif120 #endif
lib/libc/include/any-macos-any/AvailabilityVersions.h+8
...@@ -97,6 +97,7 @@...@@ -97,6 +97,7 @@
97#define __MAC_15_6 15060097#define __MAC_15_6 150600
98#define __MAC_16_0 16000098#define __MAC_16_0 160000
99#define __MAC_26_0 26000099#define __MAC_26_0 260000
100#define __MAC_26_1 260100
100/* __MAC__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */101/* __MAC__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
101102
102#define __IPHONE_2_0 20000103#define __IPHONE_2_0 20000
...@@ -188,6 +189,7 @@...@@ -188,6 +189,7 @@
188#define __IPHONE_18_6 180600189#define __IPHONE_18_6 180600
189#define __IPHONE_19_0 190000190#define __IPHONE_19_0 190000
190#define __IPHONE_26_0 260000191#define __IPHONE_26_0 260000
192#define __IPHONE_26_1 260100
191/* __IPHONE__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */193/* __IPHONE__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
192194
193#define __WATCHOS_1_0 10000195#define __WATCHOS_1_0 10000
...@@ -248,6 +250,7 @@...@@ -248,6 +250,7 @@
248#define __WATCHOS_11_6 110600250#define __WATCHOS_11_6 110600
249#define __WATCHOS_12_0 120000251#define __WATCHOS_12_0 120000
250#define __WATCHOS_26_0 260000252#define __WATCHOS_26_0 260000
253#define __WATCHOS_26_1 260100
251/* __WATCHOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */254/* __WATCHOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
252255
253#define __TVOS_9_0 90000256#define __TVOS_9_0 90000
...@@ -308,6 +311,7 @@...@@ -308,6 +311,7 @@
308#define __TVOS_18_6 180600311#define __TVOS_18_6 180600
309#define __TVOS_19_0 190000312#define __TVOS_19_0 190000
310#define __TVOS_26_0 260000313#define __TVOS_26_0 260000
314#define __TVOS_26_1 260100
311/* __TVOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */315/* __TVOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
312316
313#define __BRIDGEOS_2_0 20000317#define __BRIDGEOS_2_0 20000
...@@ -345,6 +349,7 @@...@@ -345,6 +349,7 @@
345#define __BRIDGEOS_9_5 90500349#define __BRIDGEOS_9_5 90500
346#define __BRIDGEOS_9_6 90600350#define __BRIDGEOS_9_6 90600
347#define __BRIDGEOS_10_0 100000351#define __BRIDGEOS_10_0 100000
352#define __BRIDGEOS_10_1 100100
348353
349354
350#define __DRIVERKIT_19_0 190000355#define __DRIVERKIT_19_0 190000
...@@ -369,6 +374,7 @@...@@ -369,6 +374,7 @@
369#define __DRIVERKIT_24_5 240500374#define __DRIVERKIT_24_5 240500
370#define __DRIVERKIT_24_6 240600375#define __DRIVERKIT_24_6 240600
371#define __DRIVERKIT_25_0 250000376#define __DRIVERKIT_25_0 250000
377#define __DRIVERKIT_25_1 250100
372/* __DRIVERKIT__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */378/* __DRIVERKIT__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
373379
374#define __VISIONOS_1_0 10000380#define __VISIONOS_1_0 10000
...@@ -384,6 +390,7 @@...@@ -384,6 +390,7 @@
384#define __VISIONOS_2_6 20600390#define __VISIONOS_2_6 20600
385#define __VISIONOS_3_0 30000391#define __VISIONOS_3_0 30000
386#define __VISIONOS_26_0 260000392#define __VISIONOS_26_0 260000
393#define __VISIONOS_26_1 260100
387/* __VISIONOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */394/* __VISIONOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
388395
389396
...@@ -474,6 +481,7 @@...@@ -474,6 +481,7 @@
474#define MAC_OS_VERSION_15_6 __MAC_15_6481#define MAC_OS_VERSION_15_6 __MAC_15_6
475#define MAC_OS_VERSION_16_0 __MAC_16_0482#define MAC_OS_VERSION_16_0 __MAC_16_0
476#define MAC_OS_VERSION_26_0 __MAC_26_0483#define MAC_OS_VERSION_26_0 __MAC_26_0
484#define MAC_OS_VERSION_26_1 __MAC_26_1
477485
478#endif /* #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) */486#endif /* #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) */
479487
lib/libc/include/any-macos-any/CommonCrypto/CommonCrypto.h created+34
...@@ -0,0 +1,34 @@
1/*
2 * Copyright (c) 2006-2012 Apple, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef __COMMONCRYPTO_PUBLIC__
25#define __COMMONCRYPTO_PUBLIC__
26
27#include <CommonCrypto/CommonCryptor.h>
28#include <CommonCrypto/CommonDigest.h>
29#include <CommonCrypto/CommonHMAC.h>
30#include <CommonCrypto/CommonKeyDerivation.h>
31#include <CommonCrypto/CommonSymmetricKeywrap.h>
32
33#endif /* __COMMONCRYPTO_PUBLIC__ */
34
lib/libc/include/any-macos-any/CommonCrypto/CommonCryptoError.h created+78
...@@ -0,0 +1,78 @@
1//
2// CommonCryptoError.h
3// CommonCrypto
4//
5// Copyright (c) 2014 Platform Security. All rights reserved.
6//
7
8#ifndef CommonCrypto_CommonCryptoError_h
9#define CommonCrypto_CommonCryptoError_h
10
11/*
12 * Copyright (c) 2014 Apple Inc. All Rights Reserved.
13 *
14 * @APPLE_LICENSE_HEADER_START@
15 *
16 * This file contains Original Code and/or Modifications of Original Code
17 * as defined in and that are subject to the Apple Public Source License
18 * Version 2.0 (the 'License'). You may not use this file except in
19 * compliance with the License. Please obtain a copy of the License at
20 * http://www.opensource.apple.com/apsl/ and read it before using this
21 * file.
22 *
23 * The Original Code and all software distributed under the License are
24 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
25 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
26 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
27 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
28 * Please see the License for the specific language governing rights and
29 * limitations under the License.
30 *
31 * @APPLE_LICENSE_HEADER_END@
32 */
33
34#include <stdint.h>
35
36#if defined(__cplusplus)
37extern "C" {
38#endif
39
40/*!
41 @enum CCCryptorStatus
42 @abstract Return values from CommonCryptor operations.
43
44 @constant kCCSuccess Operation completed normally.
45 @constant kCCParamError Illegal parameter value.
46 @constant kCCBufferTooSmall Insufficent buffer provided for specified
47 operation.
48 @constant kCCMemoryFailure Memory allocation failure.
49 @constant kCCAlignmentError Input size was not aligned properly.
50 @constant kCCDecodeError Input data did not decode or decrypt
51 properly.
52 @constant kCCUnimplemented Function not implemented for the current
53 algorithm.
54 @constant kCCInvalidKey Key is not valid.
55 */
56enum {
57 kCCSuccess = 0,
58 kCCParamError = -4300,
59 kCCBufferTooSmall = -4301,
60 kCCMemoryFailure = -4302,
61 kCCAlignmentError = -4303,
62 kCCDecodeError = -4304,
63 kCCUnimplemented = -4305,
64 kCCOverflow = -4306,
65 kCCRNGFailure = -4307,
66 kCCUnspecifiedError = -4308,
67 kCCCallSequenceError= -4309,
68 kCCKeySizeError = -4310,
69 kCCInvalidKey = -4311,
70};
71typedef int32_t CCStatus;
72typedef int32_t CCCryptorStatus;
73
74#if defined(__cplusplus)
75}
76#endif
77
78#endif
lib/libc/include/any-macos-any/CommonCrypto/CommonCryptor.h created+763
...@@ -0,0 +1,763 @@
1/*
2 * Copyright (c) 2006-2010 Apple, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24/*!
25 @header CommonCryptor.h
26 @abstract Generic interface for symmetric encryption.
27
28 @discussion This interface provides access to a number of symmetric
29 encryption algorithms. Symmetric encryption algorithms come
30 in two "flavors" - block ciphers, and stream ciphers. Block
31 ciphers process data (while both encrypting and decrypting)
32 in discrete chunks of data called blocks; stream ciphers
33 operate on arbitrary sized data.
34
35 The object declared in this interface, CCCryptor, provides
36 access to both block ciphers and stream ciphers with the same
37 API; however some options are available for block ciphers that
38 do not apply to stream ciphers.
39
40 The general operation of a CCCryptor is: initialize it
41 with raw key data and other optional fields with
42 CCCryptorCreate(); process input data via one or more calls to
43 CCCryptorUpdate(), each of which may result in output data
44 being written to caller-supplied memory; and obtain possible
45 remaining output data with CCCryptorFinal(). The CCCryptor is
46 disposed of via CCCryptorRelease(), or it can be reused (with
47 the same key data as provided to CCCryptorCreate()) by calling
48 CCCryptorReset(). The CCCryptorReset() function only works for
49 the CBC and CTR modes. In other block cipher modes, it returns error.
50
51
52 CCCryptors can be dynamically allocated by this module, or
53 their memory can be allocated by the caller. See discussion for
54 CCCryptorCreate() and CCCryptorCreateFromData() for information
55 on CCCryptor allocation.
56
57 One option for block ciphers is padding, as defined in PKCS7;
58 when padding is enabled, the total amount of data encrypted
59 does not have to be an even multiple of the block size, and
60 the actual length of plaintext is calculated during decryption.
61
62 Another option for block ciphers is Cipher Block Chaining, known
63 as CBC mode. When using CBC mode, an Initialization Vector (IV)
64 is provided along with the key when starting an encrypt
65 or decrypt operation. If CBC mode is selected and no IV is
66 provided, an IV of all zeroes will be used.
67
68 CCCryptor also implements block bufferring, so that individual
69 calls to CCCryptorUpdate() do not have to provide data whose
70 length is aligned to the block size. (If padding is disabled,
71 encrypting with block ciphers does require that the *total*
72 length of data input to CCCryptorUpdate() call(s) be aligned
73 to the block size.)
74
75 A given CCCryptor can only be used by one thread at a time;
76 multiple threads can use safely different CCCryptors at the
77 same time.
78*/
79
80#include <CommonCrypto/CommonCryptoError.h>
81
82#ifndef _CC_COMMON_CRYPTOR_
83#define _CC_COMMON_CRYPTOR_
84
85#include <stdbool.h>
86#include <stdint.h>
87#include <stddef.h>
88
89#if defined(_MSC_VER)
90#include <availability.h>
91#else
92#include <os/availability.h>
93#endif
94
95
96#ifdef __cplusplus
97extern "C" {
98#endif
99
100/*!
101 @typedef CCCryptorRef
102 @abstract Opaque reference to a CCCryptor object.
103 */
104typedef struct _CCCryptor *CCCryptorRef;
105
106
107/*!
108 @enum CCOperation
109 @abstract Operations that an CCCryptor can perform.
110
111 @constant kCCEncrypt Symmetric encryption.
112 @constant kCCDecrypt Symmetric decryption.
113*/
114enum {
115 kCCEncrypt = 0,
116 kCCDecrypt,
117};
118typedef uint32_t CCOperation;
119
120/*!
121 @enum CCAlgorithm
122 @abstract Encryption algorithms implemented by this module.
123 @constant kCCAlgorithmAES Advanced Encryption Standard, 128-bit block
124 @constant kCCAlgorithmAES128 Deprecated, name phased out due to ambiguity with key size
125 @constant kCCAlgorithmDES Data Encryption Standard
126 @constant kCCAlgorithm3DES Triple-DES, three key, EDE configuration
127 @constant kCCAlgorithmCAST CAST
128 @constant kCCAlgorithmRC4 RC4 stream cipher
129 @constant kCCAlgorithmBlowfish Blowfish block cipher
130*/
131enum {
132 kCCAlgorithmAES128 = 0, /* Deprecated, name phased out due to ambiguity with key size */
133 kCCAlgorithmAES = 0,
134 kCCAlgorithmDES,
135 kCCAlgorithm3DES,
136 kCCAlgorithmCAST,
137 kCCAlgorithmRC4,
138 kCCAlgorithmRC2,
139 kCCAlgorithmBlowfish
140};
141typedef uint32_t CCAlgorithm;
142
143/*!
144 @enum CCOptions
145 @abstract Options flags, passed to CCCryptorCreate().
146
147 @constant kCCOptionPKCS7Padding Perform PKCS7 padding.
148 @constant kCCOptionECBMode Electronic Code Book Mode.
149 Default is CBC.
150*/
151enum {
152 /* options for block ciphers */
153 kCCOptionPKCS7Padding = 0x0001,
154 kCCOptionECBMode = 0x0002
155 /* stream ciphers currently have no options */
156};
157typedef uint32_t CCOptions;
158
159/*!
160 @enum Key sizes
161
162 @discussion Key sizes, in bytes, for supported algorithms. Use these
163 constants to select any keysize variants you wish to use
164 for algorithms that support them (ie AES-128, AES-192, AES-256)
165
166 @constant kCCKeySizeAES128 128 bit AES key size.
167 @constant kCCKeySizeAES192 192 bit AES key size.
168 @constant kCCKeySizeAES256 256 bit AES key size.
169 @constant kCCKeySizeDES DES key size.
170 @constant kCCKeySize3DES Triple DES key size.
171 @constant kCCKeySizeMinCAST CAST minimum key size.
172 @constant kCCKeySizeMaxCAST CAST maximum key size.
173 @constant kCCKeySizeMinRC4 RC4 minimum key size.
174 @constant kCCKeySizeMaxRC4 RC4 maximum key size.
175
176 @discussion DES and TripleDES have fixed key sizes.
177 AES has three discrete key sizes.
178 CAST and RC4 have variable key sizes.
179*/
180enum {
181 kCCKeySizeAES128 = 16,
182 kCCKeySizeAES192 = 24,
183 kCCKeySizeAES256 = 32,
184 kCCKeySizeDES = 8,
185 kCCKeySize3DES = 24,
186 kCCKeySizeMinCAST = 5,
187 kCCKeySizeMaxCAST = 16,
188 kCCKeySizeMinRC4 = 1,
189 kCCKeySizeMaxRC4 = 512,
190 kCCKeySizeMinRC2 = 1,
191 kCCKeySizeMaxRC2 = 128,
192 kCCKeySizeMinBlowfish = 8,
193 kCCKeySizeMaxBlowfish = 56,
194};
195
196/*!
197 @enum Block sizes
198
199 @discussion Block sizes, in bytes, for supported algorithms.
200
201 @constant kCCBlockSizeAES128 AES block size (currently, only 128-bit
202 blocks are supported).
203 @constant kCCBlockSizeDES DES block size.
204 @constant kCCBlockSize3DES Triple DES block size.
205 @constant kCCBlockSizeCAST CAST block size.
206*/
207enum {
208 /* AES */
209 kCCBlockSizeAES128 = 16,
210 /* DES */
211 kCCBlockSizeDES = 8,
212 /* 3DES */
213 kCCBlockSize3DES = 8,
214 /* CAST */
215 kCCBlockSizeCAST = 8,
216 kCCBlockSizeRC2 = 8,
217 kCCBlockSizeBlowfish = 8,
218};
219
220/*!
221 @enum Minimum context sizes
222 @discussion Minimum context sizes, for caller-allocated CCCryptorRefs.
223 To minimize dynamic allocation memory, a caller can create
224 a CCCryptorRef by passing caller-supplied memory to the
225 CCCryptorCreateFromData() function.
226
227 These constants define the minimum amount of memory, in
228 bytes, needed for CCCryptorRefs for each supported algorithm.
229
230 Note: these constants are valid for the current version of
231 this library; they may change in subsequent releases, so
232 applications wishing to allocate their own memory for use
233 in creating CCCryptorRefs must be prepared to deal with
234 a kCCBufferTooSmall return from CCCryptorCreateFromData().
235 See discussion for the CCCryptorCreateFromData() function.
236
237 @constant kCCContextSizeAES128 - Minimum context size for kCCAlgorithmAES128.
238 @constant kCCContextSizeDES - Minimum context size for kCCAlgorithmDES.
239 @constant kCCContextSize3DES - Minimum context size for kCCAlgorithm3DES.
240 @constant kCCContextSizeCAST - Minimum context size for kCCAlgorithmCAST.
241 @constant kCCContextSizeRC4 - Minimum context size for kCCAlgorithmRC4.
242*/
243
244enum {
245 kCCContextSizeAES128 = 404,
246 kCCContextSizeDES = 240,
247 kCCContextSize3DES = 496,
248 kCCContextSizeCAST = 240,
249 kCCContextSizeRC4 = 1072
250};
251
252
253
254/*!
255 @function CCCryptorCreate
256 @abstract Create a cryptographic context.
257
258 @param op Defines the basic operation: kCCEncrypt or
259 kCCDecrypt.
260
261 @param alg Defines the algorithm.
262
263 @param options A word of flags defining options. See discussion
264 for the CCOptions type.
265
266 @param key Raw key material, length keyLength bytes.
267
268 @param keyLength Length of key material. Must be appropriate
269 for the selected operation and algorithm. Some
270 algorithms provide for varying key lengths.
271
272 @param iv Initialization vector, optional. Used by
273 block ciphers when Cipher Block Chaining (CBC)
274 mode is enabled. If present, must be the same
275 length as the selected algorithm's block size.
276 If CBC mode is selected (by the absence of the
277 kCCOptionECBMode bit in the options flags) and no
278 IV is present, a NULL (all zeroes) IV will be used.
279 This parameter is ignored if ECB mode is used or
280 if a stream cipher algorithm is selected. For sound
281 encryption, always initialize iv with random data.
282
283 @param cryptorRef A (required) pointer to the returned CCCryptorRef.
284
285 @result Possible error returns are kCCParamError and kCCMemoryFailure.
286*/
287CCCryptorStatus CCCryptorCreate(
288 CCOperation op, /* kCCEncrypt, etc. */
289 CCAlgorithm alg, /* kCCAlgorithmDES, etc. */
290 CCOptions options, /* kCCOptionPKCS7Padding, etc. */
291 const void *key, /* raw key material */
292 size_t keyLength,
293 const void *iv, /* optional initialization vector */
294 CCCryptorRef *cryptorRef) /* RETURNED */
295API_AVAILABLE(macos(10.4), ios(2.0));
296
297/*!
298 @function CCCryptorCreateFromData
299 @abstract Create a cryptographic context using caller-supplied memory.
300
301 @param op Defines the basic operation: kCCEncrypt or
302 kCCDecrypt.
303
304 @param alg Defines the algorithm.
305
306 @param options A word of flags defining options. See discussion
307 for the CCOptions type.
308
309 @param key Raw key material, length keyLength bytes.
310
311 @param keyLength Length of key material. Must be appropriate
312 for the selected operation and algorithm. Some
313 algorithms provide for varying key lengths.
314
315 @param iv Initialization vector, optional. Used by
316 block ciphers when Cipher Block Chaining (CBC)
317 mode is enabled. If present, must be the same
318 length as the selected algorithm's block size.
319 If CBC mode is selected (by the absence of the
320 kCCOptionECBMode bit in the options flags) and no
321 IV is present, a NULL (all zeroes) IV will be used.
322 This parameter is ignored if ECB mode is used or
323 if a stream cipher algorithm is selected. For sound
324 encryption, always initialize iv with random data.
325
326 @param data A pointer to caller-supplied memory from which the
327 CCCryptorRef will be created.
328
329 @param dataLength The size of the caller-supplied memory in bytes.
330
331 @param cryptorRef A (required) pointer to the returned CCCryptorRef.
332
333 @param dataUsed Optional. If present, the actual number of bytes of
334 the caller-supplied memory which was consumed by
335 creation of the CCCryptorRef is returned here. Also,
336 if the supplied memory is of insufficent size to create
337 a CCCryptorRef, kCCBufferTooSmall is returned, and
338 the minimum required buffer size is returned via this
339 parameter if present.
340
341 @result Possible error returns are kCCParamError and kCCBufferTooSmall.
342
343 @discussion The CCCryptorRef created by this function must be disposed of
344 via CCCRyptorRelease which clears sensitive data and deallocates memory
345 when the caller is finished using the CCCryptorRef.
346*/
347CCCryptorStatus CCCryptorCreateFromData(
348 CCOperation op, /* kCCEncrypt, etc. */
349 CCAlgorithm alg, /* kCCAlgorithmDES, etc. */
350 CCOptions options, /* kCCOptionPKCS7Padding, etc. */
351 const void *key, /* raw key material */
352 size_t keyLength,
353 const void *iv, /* optional initialization vector */
354 const void *data, /* caller-supplied memory */
355 size_t dataLength, /* length of data in bytes */
356 CCCryptorRef *cryptorRef, /* RETURNED */
357 size_t *dataUsed) /* optional, RETURNED */
358API_AVAILABLE(macos(10.4), ios(2.0));
359
360/*!
361 @function CCCryptorRelease
362 @abstract Free a context created by CCCryptorCreate or
363 CCCryptorCreateFromData().
364
365 @param cryptorRef The CCCryptorRef to release.
366
367 @result The only possible error return is kCCParamError resulting
368 from passing in a null CCCryptorRef.
369*/
370CCCryptorStatus CCCryptorRelease(
371 CCCryptorRef cryptorRef)
372API_AVAILABLE(macos(10.4), ios(2.0));
373
374/*!
375 @function CCCryptorUpdate
376 @abstract Process (encrypt, decrypt) some data. The result, if any,
377 is written to a caller-provided buffer.
378
379 @param cryptorRef A CCCryptorRef created via CCCryptorCreate() or
380 CCCryptorCreateFromData().
381 @param dataIn Data to process, length dataInLength bytes.
382 @param dataInLength Length of data to process.
383 @param dataOut Result is written here. Allocated by caller.
384 Encryption and decryption can be performed
385 "in-place", with the same buffer used for
386 input and output. The in-place operation is not
387 suported for ciphers modes that work with blocks
388 of data such as CBC and ECB.
389
390 @param dataOutAvailable The size of the dataOut buffer in bytes.
391 @param dataOutMoved On successful return, the number of bytes
392 written to dataOut.
393
394 @result kCCBufferTooSmall indicates insufficent space in the dataOut
395 buffer. The caller can use
396 CCCryptorGetOutputLength() to determine the
397 required output buffer size in this case. The
398 operation can be retried; no state is lost
399 when this is returned.
400
401 @discussion This routine can be called multiple times. The caller does
402 not need to align input data lengths to block sizes; input is
403 bufferred as necessary for block ciphers.
404
405 When performing symmetric encryption with block ciphers,
406 and padding is enabled via kCCOptionPKCS7Padding, the total
407 number of bytes provided by all the calls to this function
408 when encrypting can be arbitrary (i.e., the total number
409 of bytes does not have to be block aligned). However if
410 padding is disabled, or when decrypting, the total number
411 of bytes does have to be aligned to the block size; otherwise
412 CCCryptFinal() will return kCCAlignmentError.
413
414 A general rule for the size of the output buffer which must be
415 provided by the caller is that for block ciphers, the output
416 length is never larger than the input length plus the block size.
417 For stream ciphers, the output length is always exactly the same
418 as the input length. See the discussion for
419 CCCryptorGetOutputLength() for more information on this topic.
420
421 Generally, when all data has been processed, call
422 CCCryptorFinal().
423
424 In the following cases, the CCCryptorFinal() is superfluous as
425 it will not yield any data nor return an error:
426 1. Encrypting or decrypting with a block cipher with padding
427 disabled, when the total amount of data provided to
428 CCCryptorUpdate() is an integral multiple of the block size.
429 2. Encrypting or decrypting with a stream cipher.
430 */
431CCCryptorStatus CCCryptorUpdate(
432 CCCryptorRef cryptorRef,
433 const void *dataIn,
434 size_t dataInLength,
435 void *dataOut, /* data RETURNED here */
436 size_t dataOutAvailable,
437 size_t *dataOutMoved) /* number of bytes written */
438API_AVAILABLE(macos(10.4), ios(2.0));
439
440/*!
441 @function CCCryptorFinal
442 @abstract Finish an encrypt or decrypt operation, and obtain the (possible)
443 final data output.
444
445 @param cryptorRef A CCCryptorRef created via CCCryptorCreate() or
446 CCCryptorCreateFromData().
447 @param dataOut Result is written here. Allocated by caller.
448 @param dataOutAvailable The size of the dataOut buffer in bytes.
449 @param dataOutMoved On successful return, the number of bytes
450 written to dataOut.
451
452 @result kCCBufferTooSmall indicates insufficent space in the dataOut
453 buffer. The caller can use
454 CCCryptorGetOutputLength() to determine the
455 required output buffer size in this case. The
456 operation can be retried; no state is lost
457 when this is returned.
458 kCCAlignmentError When decrypting, or when encrypting with a
459 block cipher with padding disabled,
460 kCCAlignmentError will be returned if the total
461 number of bytes provided to CCCryptUpdate() is
462 not an integral multiple of the current
463 algorithm's block size.
464 kCCDecodeError Indicates garbled ciphertext or the
465 wrong key during decryption. This can only
466 be returned while decrypting with padding
467 enabled.
468
469 @discussion Except when kCCBufferTooSmall is returned, the CCCryptorRef
470 can no longer be used for subsequent operations unless
471 CCCryptorReset() is called on it.
472
473 It is not necessary to call CCCryptorFinal() when performing
474 symmetric encryption or decryption if padding is disabled, or
475 when using a stream cipher.
476
477 It is not necessary to call CCCryptorFinal() prior to
478 CCCryptorRelease() when aborting an operation.
479 */
480CCCryptorStatus CCCryptorFinal(
481 CCCryptorRef cryptorRef,
482 void *dataOut,
483 size_t dataOutAvailable,
484 size_t *dataOutMoved) /* number of bytes written */
485API_AVAILABLE(macos(10.4), ios(2.0));
486
487/*!
488 @function CCCryptorGetOutputLength
489 @abstract Determine output buffer size required to process a given input
490 size.
491
492 @param cryptorRef A CCCryptorRef created via CCCryptorCreate() or
493 CCCryptorCreateFromData().
494 @param inputLength The length of data which will be provided to
495 CCCryptorUpdate().
496 @param final If false, the returned value will indicate the
497 output buffer space needed when 'inputLength'
498 bytes are provided to CCCryptorUpdate(). When
499 'final' is true, the returned value will indicate
500 the total combined buffer space needed when
501 'inputLength' bytes are provided to
502 CCCryptorUpdate() and then CCCryptorFinal() is
503 called.
504
505 @result The maximum buffer space need to perform CCCryptorUpdate() and
506 optionally CCCryptorFinal().
507
508 @discussion Some general rules apply that allow clients of this module to
509 know a priori how much output buffer space will be required
510 in a given situation. For stream ciphers, the output size is
511 always equal to the input size, and CCCryptorFinal() never
512 produces any data. For block ciphers, the output size will
513 always be less than or equal to the input size plus the size
514 of one block. For block ciphers, if the input size provided
515 to each call to CCCryptorUpdate() is is an integral multiple
516 of the block size, then the output size for each call to
517 CCCryptorUpdate() is less than or equal to the input size
518 for that call to CCCryptorUpdate(). CCCryptorFinal() only
519 produces output when using a block cipher with padding enabled.
520*/
521size_t CCCryptorGetOutputLength(
522 CCCryptorRef cryptorRef,
523 size_t inputLength,
524 bool final)
525API_AVAILABLE(macos(10.4), ios(2.0));
526
527
528/*!
529 @function CCCryptorReset
530 @abstract Reinitializes an existing CCCryptorRef with a (possibly)
531 new initialization vector. The CCCryptorRef's key is
532 unchanged. Use only for CBC and CTR modes.
533
534 @param cryptorRef A CCCryptorRef created via CCCryptorCreate() or
535 CCCryptorCreateFromData().
536 @param iv Optional initialization vector; if present, must
537 be the same size as the current algorithm's block
538 size. For sound encryption, always initialize iv with
539 random data.
540
541 @result The only possible errors are kCCParamError and
542 kCCUnimplemented. On macOS 10.13, iOS 11, watchOS 4 and tvOS 11 returns kCCUnimplemented
543 for modes other than CBC. On prior SDKs, returns kCCSuccess to preserve compatibility
544
545 @discussion This can be called on a CCCryptorRef with data pending (i.e.
546 in a padded mode operation before CCCryptFinal is called);
547 however any pending data will be lost in that case.
548*/
549CCCryptorStatus CCCryptorReset(
550 CCCryptorRef cryptorRef,
551 const void *iv)
552 API_AVAILABLE(macos(10.4), ios(2.0));
553
554
555/*!
556 @function CCCrypt
557 @abstract Stateless, one-shot encrypt or decrypt operation.
558 This basically performs a sequence of CCCrytorCreate(),
559 CCCryptorUpdate(), CCCryptorFinal(), and CCCryptorRelease().
560
561 @param alg Defines the encryption algorithm.
562
563
564 @param op Defines the basic operation: kCCEncrypt or
565 kCCDecrypt.
566
567 @param options A word of flags defining options. See discussion
568 for the CCOptions type.
569
570 @param key Raw key material, length keyLength bytes.
571
572 @param keyLength Length of key material. Must be appropriate
573 for the select algorithm. Some algorithms may
574 provide for varying key lengths.
575
576 @param iv Initialization vector, optional. Used for
577 Cipher Block Chaining (CBC) mode. If present,
578 must be the same length as the selected
579 algorithm's block size. If CBC mode is
580 selected (by the absence of any mode bits in
581 the options flags) and no IV is present, a
582 NULL (all zeroes) IV will be used. This is
583 ignored if ECB mode is used or if a stream
584 cipher algorithm is selected. For sound encryption,
585 always initialize IV with random data.
586
587 @param dataIn Data to encrypt or decrypt, length dataInLength
588 bytes.
589
590 @param dataInLength Length of data to encrypt or decrypt.
591
592 @param dataOut Result is written here. Allocated by caller.
593 Encryption and decryption can be performed
594 "in-place", with the same buffer used for
595 input and output.
596
597 @param dataOutAvailable The size of the dataOut buffer in bytes.
598
599 @param dataOutMoved On successful return, the number of bytes
600 written to dataOut. If kCCBufferTooSmall is
601 returned as a result of insufficient buffer
602 space being provided, the required buffer space
603 is returned here.
604
605 @result kCCBufferTooSmall indicates insufficent space in the dataOut
606 buffer. In this case, the *dataOutMoved
607 parameter will indicate the size of the buffer
608 needed to complete the operation. The
609 operation can be retried with minimal runtime
610 penalty.
611 kCCAlignmentError indicates that dataInLength was not properly
612 aligned. This can only be returned for block
613 ciphers, and then only when decrypting or when
614 encrypting with block with padding disabled.
615 kCCDecodeError Indicates improperly formatted ciphertext or
616 a "wrong key" error; occurs only during decrypt
617 operations.
618 */
619
620CCCryptorStatus CCCrypt(
621 CCOperation op, /* kCCEncrypt, etc. */
622 CCAlgorithm alg, /* kCCAlgorithmAES128, etc. */
623 CCOptions options, /* kCCOptionPKCS7Padding, etc. */
624 const void *key,
625 size_t keyLength,
626 const void *iv, /* optional initialization vector */
627 const void *dataIn, /* optional per op and alg */
628 size_t dataInLength,
629 void *dataOut, /* data RETURNED here */
630 size_t dataOutAvailable,
631 size_t *dataOutMoved)
632 API_AVAILABLE(macos(10.4), ios(2.0));
633
634
635/*!
636 @enum Cipher Modes
637 @discussion These are the selections available for modes of operation for
638 use with block ciphers. If RC4 is selected as the cipher (a stream
639 cipher) the only correct mode is kCCModeRC4.
640
641 @constant kCCModeECB - Electronic Code Book Mode.
642 @constant kCCModeCBC - Cipher Block Chaining Mode.
643 @constant kCCModeCFB - Cipher Feedback Mode.
644 @constant kCCModeOFB - Output Feedback Mode.
645 @constant kCCModeRC4 - RC4 as a streaming cipher is handled internally as a mode.
646 @constant kCCModeCFB8 - Cipher Feedback Mode producing 8 bits per round.
647*/
648
649
650enum {
651 kCCModeECB = 1,
652 kCCModeCBC = 2,
653 kCCModeCFB = 3,
654 kCCModeCTR = 4,
655 kCCModeOFB = 7,
656 kCCModeRC4 = 9,
657 kCCModeCFB8 = 10,
658};
659typedef uint32_t CCMode;
660
661/*!
662 @enum Padding for Block Ciphers
663 @discussion These are the padding options available for block modes.
664
665 @constant ccNoPadding - No padding.
666 @constant ccPKCS7Padding - PKCS7 Padding.
667*/
668
669enum {
670 ccNoPadding = 0,
671 ccPKCS7Padding = 1,
672};
673typedef uint32_t CCPadding;
674
675/*!
676 @enum Mode options - Not currently in use.
677
678 @discussion Values used to specify options for modes. This was used for counter
679 mode operations in 10.8, now only Big Endian mode is supported.
680
681 @constant kCCModeOptionCTR_BE - CTR Mode Big Endian.
682*/
683
684enum {
685 kCCModeOptionCTR_BE = 2
686};
687
688typedef uint32_t CCModeOptions;
689
690/*!
691 @function CCCryptorCreateWithMode
692 @abstract Create a cryptographic context.
693
694 @param op Defines the basic operation: kCCEncrypt or
695 kCCDecrypt.
696
697 @param mode Specifies the cipher mode to use for operations.
698
699 @param alg Defines the algorithm.
700
701 @param padding Specifies the padding to use.
702
703 @param iv Initialization vector, optional. Used by
704 block ciphers with the following modes:
705
706 Cipher Block Chaining (CBC)
707 Cipher Feedback (CFB and CFB8)
708 Output Feedback (OFB)
709 Counter (CTR)
710
711 If present, must be the same length as the selected
712 algorithm's block size. If no IV is present, a NULL
713 (all zeroes) IV will be used. For sound encryption,
714 always initialize iv with random data.
715
716 This parameter is ignored if ECB mode is used or
717 if a stream cipher algorithm is selected.
718
719 @param key Raw key material, length keyLength bytes.
720
721 @param keyLength Length of key material. Must be appropriate
722 for the selected operation and algorithm. Some
723 algorithms provide for varying key lengths.
724
725 @param tweak Raw key material, length keyLength bytes. Used for the
726 tweak key in XEX-based Tweaked CodeBook (XTS) mode.
727
728 @param tweakLength Length of tweak key material. Must be appropriate
729 for the selected operation and algorithm. Some
730 algorithms provide for varying key lengths. For XTS
731 this is the same length as the encryption key.
732
733 @param numRounds The number of rounds of the cipher to use. 0 uses the default.
734
735 @param options A word of flags defining options. See discussion
736 for the CCModeOptions type.
737
738 @param cryptorRef A (required) pointer to the returned CCCryptorRef.
739
740 @result Possible error returns are kCCParamError and kCCMemoryFailure.
741 */
742
743
744CCCryptorStatus CCCryptorCreateWithMode(
745 CCOperation op, /* kCCEncrypt, kCCDecrypt */
746 CCMode mode,
747 CCAlgorithm alg,
748 CCPadding padding,
749 const void *iv, /* optional initialization vector */
750 const void *key, /* raw key material */
751 size_t keyLength,
752 const void *tweak, /* raw tweak material */
753 size_t tweakLength,
754 int numRounds, /* 0 == default */
755 CCModeOptions options,
756 CCCryptorRef *cryptorRef) /* RETURNED */
757API_AVAILABLE(macos(10.7), ios(5.0));
758
759#ifdef __cplusplus
760}
761#endif
762
763#endif /* _CC_COMMON_CRYPTOR_ */
lib/libc/include/any-macos-any/CommonCrypto/CommonHMAC.h created+162
...@@ -0,0 +1,162 @@
1/*
2 * Copyright (c) 2004 Apple Computer, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24/*!
25 @header CommonHMAC.h
26 @abstract Keyed Message Authentication Code (HMAC) functions.
27 */
28
29#ifndef _CC_COMMON_HMAC_H_
30#define _CC_COMMON_HMAC_H_
31
32#include <CommonCrypto/CommonDigest.h>
33#include <sys/types.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39/*!
40 @enum CCHmacAlgorithm
41 @abstract Algorithms implemented in this module.
42
43 @constant kCCHmacAlgSHA1 HMAC with SHA1 digest
44 @constant kCCHmacAlgMD5 HMAC with MD5 digest
45 @constant kCCHmacAlgSHA256 HMAC with SHA256 digest
46 @constant kCCHmacAlgSHA384 HMAC with SHA384 digest
47 @constant kCCHmacAlgSHA512 HMAC with SHA512 digest
48 @constant kCCHmacAlgSHA224 HMAC with SHA224 digest
49 */
50enum {
51 kCCHmacAlgSHA1,
52 kCCHmacAlgMD5,
53 kCCHmacAlgSHA256,
54 kCCHmacAlgSHA384,
55 kCCHmacAlgSHA512,
56 kCCHmacAlgSHA224
57};
58typedef uint32_t CCHmacAlgorithm;
59
60/*!
61 @typedef CCHmacContext
62 @abstract HMAC context.
63 */
64#define CC_HMAC_CONTEXT_SIZE 96
65typedef struct {
66 uint32_t ctx[CC_HMAC_CONTEXT_SIZE];
67} CCHmacContext;
68
69/*!
70 @function CCHmacInit
71 @abstract Initialize an CCHmacContext with provided raw key bytes.
72
73 @param ctx An HMAC context.
74 @param algorithm HMAC algorithm to perform.
75 @param key Raw key bytes.
76 @param keyLength Length of raw key bytes; can be any
77 length including zero.
78 */
79void CCHmacInit(
80 CCHmacContext *ctx,
81 CCHmacAlgorithm algorithm,
82 const void *key,
83 size_t keyLength)
84 API_AVAILABLE(macos(10.4), ios(2.0));
85
86
87/*!
88 @function CCHmacUpdate
89 @abstract Process some data.
90
91 @param ctx An HMAC context.
92 @param data Data to process.
93 @param dataLength Length of data to process, in bytes.
94
95 @discussion This can be called multiple times.
96 */
97void CCHmacUpdate(
98 CCHmacContext *ctx,
99 const void *data,
100 size_t dataLength)
101 API_AVAILABLE(macos(10.4), ios(2.0));
102
103
104/*!
105 @function CCHmacFinal
106 @abstract Obtain the final Message Authentication Code.
107
108 @param ctx An HMAC context.
109 @param macOut Destination of MAC; allocated by caller.
110
111 @discussion The length of the MAC written to *macOut is the same as
112 the digest length associated with the HMAC algorithm:
113
114 kCCHmacAlgSHA1 : CC_SHA1_DIGEST_LENGTH
115 kCCHmacAlgSHA256 : CC_SHA256_DIGEST_LENGTH
116
117 The MAC must be verified by comparing the computed and expected values
118 using timingsafe_bcmp. Other comparison functions (e.g. memcmp)
119 must not be used as they may be vulnerable to practical timing attacks,
120 leading to MAC forgery.
121 */
122void CCHmacFinal(
123 CCHmacContext *ctx,
124 void *macOut)
125 API_AVAILABLE(macos(10.4), ios(2.0));
126
127/*!
128 @function CCHmac
129 @abstract Stateless, one-shot HMAC function
130
131 @param algorithm HMAC algorithm to perform.
132 @param key Raw key bytes.
133 @param keyLength Length of raw key bytes; can be any
134 length including zero.
135 @param data Data to process.
136 @param dataLength Length of data to process, in bytes.
137 @param macOut Destination of MAC; allocated by caller.
138
139 @discussion The length of the MAC written to *macOut is the same as the digest length associated with the HMAC algorithm:
140 kCCHmacAlgSHA1 : CC_SHA1_DIGEST_LENGTH
141 kCCHmacAlgSHA256 : CC_SHA256_DIGEST_LENGTH
142
143 The MAC must be verified by comparing the computed and expected values
144 using timingsafe_bcmp. Other comparison functions (e.g. memcmp)
145 must not be used as they may be vulnerable to practical timing attacks,
146 leading to MAC forgery.
147*/
148
149void CCHmac(
150 CCHmacAlgorithm algorithm, /* kCCHmacAlgSHA256, kCCHmacAlgSHA1 */
151 const void *key,
152 size_t keyLength, /* length of key in bytes */
153 const void *data,
154 size_t dataLength, /* length of data in bytes */
155 void *macOut) /* MAC written here */
156 API_AVAILABLE(macos(10.4), ios(2.0));
157
158#ifdef __cplusplus
159}
160#endif
161
162#endif /* _CC_COMMON_HMAC_H_ */
lib/libc/include/any-macos-any/CommonCrypto/CommonKeyDerivation.h created+136
...@@ -0,0 +1,136 @@
1/*
2 * Copyright (c) 2010 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef _CC_PBKDF_H_
25#define _CC_PBKDF_H_
26
27#include <string.h>
28#include <limits.h>
29#include <stdlib.h>
30#include <CommonCrypto/CommonDigest.h>
31#include <CommonCrypto/CommonHMAC.h>
32
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38enum {
39 kCCPBKDF2 = 2,
40};
41
42
43typedef uint32_t CCPBKDFAlgorithm;
44
45
46enum {
47 kCCPRFHmacAlgSHA1 = 1,
48 kCCPRFHmacAlgSHA224 = 2,
49 kCCPRFHmacAlgSHA256 = 3,
50 kCCPRFHmacAlgSHA384 = 4,
51 kCCPRFHmacAlgSHA512 = 5,
52};
53
54
55typedef uint32_t CCPseudoRandomAlgorithm;
56
57/*
58
59 @function CCKeyDerivationPBKDF
60 @abstract Derive a key from a text password/passphrase
61
62 @param algorithm Currently only PBKDF2 is available via kCCPBKDF2
63 @param password The text password used as input to the derivation
64 function. The actual octets present in this string
65 will be used with no additional processing. It's
66 extremely important that the same encoding and
67 normalization be used each time this routine is
68 called if the same key is expected to be derived.
69 @param passwordLen The length of the text password in bytes.
70 @param salt The salt byte values used as input to the derivation
71 function. The pointer can be NULL, only when saltLen is zero.
72 @param saltLen The length of the salt in bytes. It can be zero.
73 @param prf The Pseudo Random Algorithm to use for the derivation
74 iterations.
75 @param rounds The number of rounds of the Pseudo Random Algorithm
76 to use. It cannot be zero.
77 @param derivedKey The resulting derived key produced by the function.
78 The space for this must be provided by the caller.
79 @param derivedKeyLen The expected length of the derived key in bytes. It cannot be zero.
80
81 @discussion The following values are used to designate the PRF:
82
83 * kCCPRFHmacAlgSHA1
84 * kCCPRFHmacAlgSHA224
85 * kCCPRFHmacAlgSHA256
86 * kCCPRFHmacAlgSHA384
87 * kCCPRFHmacAlgSHA512
88
89 @result kCCParamError can result from bad values for the password, salt,
90 and unwrapped key pointers as well as a bad value for the prf
91 function.
92
93 */
94
95int
96CCKeyDerivationPBKDF( CCPBKDFAlgorithm algorithm, const char *password, size_t passwordLen,
97 const uint8_t *salt, size_t saltLen,
98 CCPseudoRandomAlgorithm prf, unsigned rounds,
99 uint8_t *derivedKey, size_t derivedKeyLen)
100 API_AVAILABLE(macos(10.7), ios(5.0));
101
102/*
103 * All lengths are in bytes - not bits.
104 */
105
106/*
107
108 @function CCCalibratePBKDF
109 @abstract Determine the number of PRF rounds to use for a specific delay on
110 the current platform.
111 @param algorithm Currently only PBKDF2 is available via kCCPBKDF2
112 @param passwordLen The length of the text password in bytes.
113 @param saltLen The length of the salt in bytes. saltlen must be smaller than 133.
114 @param prf The Pseudo Random Algorithm to use for the derivation
115 iterations.
116 @param derivedKeyLen The expected length of the derived key in bytes.
117 @param msec The targetted duration we want to achieve for a key
118 derivation with these parameters.
119
120 @result the number of iterations to use for the desired processing time.
121 Returns a minimum of 10000 iterations (safety net, not a particularly recommended value)
122 The number of iterations is a trade-off of usability and security. If there is an error
123 the function returns (unsigned)(-1). The minimum return value is set to 10000.
124
125 */
126
127unsigned
128CCCalibratePBKDF(CCPBKDFAlgorithm algorithm, size_t passwordLen, size_t saltLen,
129 CCPseudoRandomAlgorithm prf, size_t derivedKeyLen, uint32_t msec)
130 API_AVAILABLE(macos(10.7), ios(5.0));
131
132#ifdef __cplusplus
133}
134#endif
135
136#endif /* _CC_PBKDF_H_ */
lib/libc/include/any-macos-any/CommonCrypto/CommonRandom.h created+63
...@@ -0,0 +1,63 @@
1/*
2 * Copyright (c) 2014 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24//
25// CommonRandom.h
26// CommonCrypto
27
28#ifndef CommonCrypto_CommonRandom_h
29#define CommonCrypto_CommonRandom_h
30
31#include <sys/types.h>
32#include <os/availability.h>
33
34#include <CommonCrypto/CommonCryptoError.h>
35
36#if defined(__cplusplus)
37extern "C" {
38#endif
39
40typedef CCCryptorStatus CCRNGStatus;
41
42/*!
43 @function CCRandomGenerateBytes
44
45 @abstract Return random bytes in a buffer allocated by the caller.
46
47 @discussion The PRNG returns cryptographically strong random
48 bits suitable for use as cryptographic keys, IVs, nonces etc.
49
50 @param bytes Pointer to the return buffer.
51 @param count Number of random bytes to return.
52
53 @result Return kCCSuccess on success.
54 */
55
56CCRNGStatus CCRandomGenerateBytes(void *bytes, size_t count)
57API_AVAILABLE(macos(10.10), ios(8.0));
58
59#if defined(__cplusplus)
60}
61#endif
62
63#endif
lib/libc/include/any-macos-any/CommonCrypto/CommonSymmetricKeywrap.h created+162
...@@ -0,0 +1,162 @@
1/*
2 * Copyright (c) 2010 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef _CC_SYMKEYWRAP_H_
25#define _CC_SYMKEYWRAP_H_
26
27#include <sys/types.h>
28#include <stdint.h>
29
30#include <string.h>
31#include <limits.h>
32#include <stdlib.h>
33
34#if defined(_MSC_VER)
35#include <availability.h>
36#else
37#include <os/availability.h>
38#endif
39
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45enum {
46 kCCWRAPAES = 1,
47};
48
49extern const uint8_t * const CCrfc3394_iv API_AVAILABLE(macos(10.7), ios(5.0));
50extern const size_t CCrfc3394_ivLen API_AVAILABLE(macos(10.7), ios(5.0));
51
52typedef uint32_t CCWrappingAlgorithm;
53
54/*!
55 @function CCSymmetricKeyWrap
56 @abstract Wrap a symmetric key with a Key Encryption Key (KEK).
57
58 @param algorithm Currently only AES Keywrapping (rfc3394) is available
59 via kCCWRAPAES
60 @param iv The initialization value to be used. CCrfc3394_iv is
61 available as a constant for the standard IV to use.
62 @param ivLen The length of the initialization value to be used.
63 CCrfc3394_ivLen is available as a constant for the
64 standard IV to use.
65 @param kek The Key Encryption Key to be used to wrap the raw key.
66 @param kekLen The length of the KEK in bytes.
67 @param rawKey The raw key bytes to be wrapped.
68 @param rawKeyLen The length of the key in bytes.
69 @param wrappedKey The resulting wrapped key produced by the function.
70 The space for this must be provided by the caller.
71 @param wrappedKeyLen The length of the wrapped key in bytes.
72
73 @discussion The algorithm chosen is determined by the algorithm parameter
74 and the size of the key being wrapped (ie aes128 for 128 bit
75 keys).
76
77 @result kCCBufferTooSmall indicates insufficent space in the wrappedKey
78 buffer.
79 kCCParamError can result from bad values for the kek, rawKey, and
80 wrappedKey key pointers.
81 */
82
83int
84CCSymmetricKeyWrap(CCWrappingAlgorithm algorithm,
85 const uint8_t *iv, const size_t ivLen,
86 const uint8_t *kek, size_t kekLen,
87 const uint8_t *rawKey, size_t rawKeyLen,
88 uint8_t *wrappedKey, size_t *wrappedKeyLen)
89 API_AVAILABLE(macos(10.7), ios(5.0));
90
91/*!
92 @function CCSymmetricKeyUnwrap
93 @abstract Unwrap a symmetric key with a Key Encryption Key (KEK).
94
95 @param algorithm Currently only AES Keywrapping (rfc3394) is available
96 via kCCWRAPAES
97 @param iv The initialization value to be used. CCrfc3394_iv is
98 available as a constant for the standard IV to use.
99 @param ivLen The length of the initialization value to be used.
100 CCrfc3394_ivLen is available as a constant for the
101 standard IV to use.
102 @param kek The Key Encryption Key to be used to unwrap the raw key.
103 @param kekLen The length of the KEK in bytes.
104 @param wrappedKey The wrapped key bytes.
105 @param wrappedKeyLen The length of the wrapped key in bytes.
106 @param rawKey The resulting raw key bytes. The space for this must
107 be provided by the caller.
108 @param rawKeyLen The length of the raw key in bytes.
109
110 @discussion The algorithm chosen is determined by the algorithm parameter
111 and the size of the key being wrapped (ie aes128 for 128 bit
112 keys).
113
114 @result kCCBufferTooSmall indicates insufficent space in the rawKey buffer.
115 kCCParamError can result from bad values for the kek, rawKey, and
116 wrappedKey key pointers.
117 */
118
119
120int
121CCSymmetricKeyUnwrap(CCWrappingAlgorithm algorithm,
122 const uint8_t *iv, const size_t ivLen,
123 const uint8_t *kek, size_t kekLen,
124 const uint8_t *wrappedKey, size_t wrappedKeyLen,
125 uint8_t *rawKey, size_t *rawKeyLen)
126 API_AVAILABLE(macos(10.7), ios(5.0));
127
128/*!
129 @function CCSymmetricWrappedSize
130 @abstract Determine the buffer size required to hold a key wrapped with
131 CCAESKeyWrap().
132
133 @param algorithm Currently only AES Keywrapping (rfc3394) is
134 available via kCCWRAPAES
135 @param rawKeyLen The length of the key in bytes.
136 @result The length of the resulting wrapped key.
137 */
138
139size_t
140CCSymmetricWrappedSize(CCWrappingAlgorithm algorithm, size_t rawKeyLen)
141API_AVAILABLE(macos(10.7), ios(5.0));
142
143/*!
144 @function CCSymmetricUnwrappedSize
145 @abstract Determine the buffer size required to hold a key unwrapped with
146 CCAESKeyUnwrap().
147
148 @param algorithm Currently only AES Keywrapping (rfc3394) is
149 available via kCCWRAPAES
150 @param wrappedKeyLen The length of the wrapped key in bytes.
151 @result The length of the resulting raw key.
152 */
153
154size_t
155CCSymmetricUnwrappedSize(CCWrappingAlgorithm algorithm, size_t wrappedKeyLen)
156API_AVAILABLE(macos(10.7), ios(5.0));
157
158#ifdef __cplusplus
159}
160#endif
161
162#endif /* _CC_SYMKEYWRAP_H_ */
lib/libc/include/any-macos-any/mach-o/getsect.h created+151
...@@ -0,0 +1,151 @@
1/*
2 * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23#ifndef _MACH_O_GETSECT_H_
24#define _MACH_O_GETSECT_H_
25
26#include <stdint.h>
27#include <mach-o/loader.h>
28#include <Availability.h>
29#include <TargetConditionals.h>
30
31#ifndef __CCTOOLS_DEPRECATED
32 #define __CCTOOLS_DEPRECATED __API_DEPRECATED("No longer supported", macos(10.0, 13.0), ios(1.0, 16.0), watchos(1.0, 8.0), tvos(1.0, 16.0))
33 #define __CCTOOLS_DEPRECATED_MSG(_msg) __API_DEPRECATED_WITH_REPLACEMENT(_msg, macos(10.0, 13.0), ios(1.0, 16.0), watchos(1.0, 8.0), tvos(1.0, 16.0))
34#endif
35
36
37#ifdef __cplusplus
38extern "C" {
39#endif /* __cplusplus */
40
41/*
42 * Runtime interfaces for Mach-O programs. For both 32-bit and 64-bit programs,
43 * where the sizes returned will be 32-bit or 64-bit based on the size of
44 * 'unsigned long'.
45 */
46extern char *getsectdata(
47 const char *segname,
48 const char *sectname,
49 unsigned long *size) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
50
51extern char *getsectdatafromFramework(
52 const char *FrameworkName,
53 const char *segname,
54 const char *sectname,
55 unsigned long *size) __CCTOOLS_DEPRECATED;
56
57extern unsigned long get_end(void) __CCTOOLS_DEPRECATED;
58extern unsigned long get_etext(void) __CCTOOLS_DEPRECATED;
59extern unsigned long get_edata(void) __CCTOOLS_DEPRECATED;
60
61#ifndef __LP64__
62/*
63 * Runtime interfaces for 32-bit Mach-O programs.
64 */
65extern const struct section *getsectbyname(
66 const char *segname,
67 const char *sectname) __CCTOOLS_DEPRECATED_MSG("use getsectiondata(&__dso_handle,)");
68
69extern uint8_t *getsectiondata(
70 const struct mach_header *mhp,
71 const char *segname,
72 const char *sectname,
73 unsigned long *size);
74
75extern const struct segment_command *getsegbyname(
76 const char *segname) __CCTOOLS_DEPRECATED;
77
78extern uint8_t *getsegmentdata(
79 const struct mach_header *mhp,
80 const char *segname,
81 unsigned long *size);
82
83#else /* defined(__LP64__) */
84/*
85 * Runtime interfaces for 64-bit Mach-O programs.
86 */
87extern const struct section_64 *getsectbyname(
88 const char *segname,
89 const char *sectname);
90
91extern uint8_t *getsectiondata(
92 const struct mach_header_64 *mhp,
93 const char *segname,
94 const char *sectname,
95 unsigned long *size);
96
97extern const struct segment_command_64 *getsegbyname(
98 const char *segname) __CCTOOLS_DEPRECATED;
99
100extern uint8_t *getsegmentdata(
101 const struct mach_header_64 *mhp,
102 const char *segname,
103 unsigned long *size);
104
105#endif /* defined(__LP64__) */
106
107/*
108 * Interfaces for tools working with 32-bit Mach-O files.
109 */
110extern char *getsectdatafromheader(
111 const struct mach_header *mhp,
112 const char *segname,
113 const char *sectname,
114 uint32_t *size) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
115
116extern const struct section *getsectbynamefromheader(
117 const struct mach_header *mhp,
118 const char *segname,
119 const char *sectname) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
120
121extern const struct section *getsectbynamefromheaderwithswap(
122 struct mach_header *mhp,
123 const char *segname,
124 const char *sectname,
125 int fSwap) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
126
127/*
128 * Interfaces for tools working with 64-bit Mach-O files.
129 */
130extern char *getsectdatafromheader_64(
131 const struct mach_header_64 *mhp,
132 const char *segname,
133 const char *sectname,
134 uint64_t *size) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
135
136extern const struct section_64 *getsectbynamefromheader_64(
137 const struct mach_header_64 *mhp,
138 const char *segname,
139 const char *sectname) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
140
141extern const struct section *getsectbynamefromheaderwithswap_64(
142 struct mach_header_64 *mhp,
143 const char *segname,
144 const char *sectname,
145 int fSwap) __CCTOOLS_DEPRECATED_MSG("use getsectiondata()");
146
147#ifdef __cplusplus
148}
149#endif /* __cplusplus */
150
151#endif /* _MACH_O_GETSECT_H_ */
lib/libc/include/any-macos-any/mach/arm/exception.h+2
...@@ -72,6 +72,8 @@...@@ -72,6 +72,8 @@
72#define EXC_ARM_SWP 0x104 /* SWP instruction */72#define EXC_ARM_SWP 0x104 /* SWP instruction */
73#define EXC_ARM_PAC_FAIL 0x105 /* PAC authentication failure */73#define EXC_ARM_PAC_FAIL 0x105 /* PAC authentication failure */
7474
75#define EXC_ARM_MTE_TAGCHECK_FAIL 0x106 /* MTE Tag Check failure */
76#define EXC_ARM_MTE_CANONICAL_FAIL 0x107 /* MTE Canonical Tag access fail */
7577
76/*78/*
77 * EXC_BREAKPOINT79 * EXC_BREAKPOINT
lib/libc/include/any-macos-any/mach/exception.h created+62
...@@ -0,0 +1,62 @@
1/*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/*
29 * @OSF_COPYRIGHT@
30 */
31/*
32 * Mach Operating System
33 * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
34 * All Rights Reserved.
35 *
36 * Permission to use, copy, modify and distribute this software and its
37 * documentation is hereby granted, provided that both the copyright
38 * notice and this permission notice appear in all copies of the
39 * software, derivative works or modified versions, and any portions
40 * thereof, and that both notices appear in supporting documentation.
41 *
42 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
43 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
44 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
45 *
46 * Carnegie Mellon requests users of this software to return to
47 *
48 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
49 * School of Computer Science
50 * Carnegie Mellon University
51 * Pittsburgh PA 15213-3890
52 *
53 * any improvements or extensions that they make and grant Carnegie Mellon
54 * the rights to redistribute these changes.
55 */
56
57#ifndef _MACH_EXCEPTION_H_
58#define _MACH_EXCEPTION_H_
59
60#include <mach/exception_types.h>
61
62#endif /* _MACH_EXCEPTION_H_ */
lib/libc/include/any-macos-any/mach/machine.h+1
...@@ -409,6 +409,7 @@ typedef integer_t cpu_threadtype_t;...@@ -409,6 +409,7 @@ typedef integer_t cpu_threadtype_t;
409#define CPUFAMILY_ARM_BRAVA 0x17d5b93a409#define CPUFAMILY_ARM_BRAVA 0x17d5b93a
410#define CPUFAMILY_ARM_TAHITI 0x75d4acb9410#define CPUFAMILY_ARM_TAHITI 0x75d4acb9
411#define CPUFAMILY_ARM_TUPAI 0x204526d0411#define CPUFAMILY_ARM_TUPAI 0x204526d0
412#define CPUFAMILY_ARM_HIDRA 0x1d5a87e8
412#define CPUFAMILY_ARM_THERA 0xab345f09413#define CPUFAMILY_ARM_THERA 0xab345f09
413#define CPUFAMILY_ARM_TILOS 0x01d7a72b414#define CPUFAMILY_ARM_TILOS 0x01d7a72b
414415
lib/libc/include/any-macos-any/mach/port.h+1-1
...@@ -487,7 +487,7 @@ enum mach_port_guard_exception_codes {...@@ -487,7 +487,7 @@ enum mach_port_guard_exception_codes {
487 kGUARD_EXC_MOVE_PROVISIONAL_REPLY_PORT = 0x00100004,487 kGUARD_EXC_MOVE_PROVISIONAL_REPLY_PORT = 0x00100004,
488 kGUARD_EXC_REPLY_PORT_SINGLE_SO_RIGHT = 0x00100005,488 kGUARD_EXC_REPLY_PORT_SINGLE_SO_RIGHT = 0x00100005,
489 kGUARD_EXC_MOD_REFS_NON_FATAL = 1u << 21,489 kGUARD_EXC_MOD_REFS_NON_FATAL = 1u << 21,
490 kGUARD_EXC_IMMOVABLE_NON_FATAL = 1u << 22,490 kGUARD_EXC_IMMOVABLE_NON_FATAL = 1u << 22, /* unused*/
491};491};
492492
493#define MAX_FATAL_kGUARD_EXC_CODE kGUARD_EXC_MSG_FILTERED493#define MAX_FATAL_kGUARD_EXC_CODE kGUARD_EXC_MSG_FILTERED
lib/libc/include/any-macos-any/mach/vm_prot.h-7
...@@ -100,13 +100,6 @@ typedef int vm_prot_t;...@@ -100,13 +100,6 @@ typedef int vm_prot_t;
100100
101#define VM_PROT_ALL (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)101#define VM_PROT_ALL (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
102102
103/*
104 * This is an alias to VM_PROT_EXECUTE to identify callers that
105 * want to allocate an hardware assisted Read-only/read-write
106 * trusted path in userland.
107 */
108#define VM_PROT_RORW_TP (VM_PROT_EXECUTE)
109
110/*103/*
111 * An invalid protection value.104 * An invalid protection value.
112 * Used only by memory_object_lock_request to indicate no change105 * Used only by memory_object_lock_request to indicate no change
lib/libc/include/any-macos-any/mach/vm_statistics.h+7-1
...@@ -283,6 +283,7 @@ typedef struct vm_purgeable_info *vm_purgeable_info_t;...@@ -283,6 +283,7 @@ typedef struct vm_purgeable_info *vm_purgeable_info_t;
283#define VM_FLAGS_RESILIENT_MEDIA 0x00000040283#define VM_FLAGS_RESILIENT_MEDIA 0x00000040
284#define VM_FLAGS_PERMANENT 0x00000080284#define VM_FLAGS_PERMANENT 0x00000080
285#define VM_FLAGS_TPRO 0x00001000285#define VM_FLAGS_TPRO 0x00001000
286#define VM_FLAGS_MTE 0x00002000
286#define VM_FLAGS_OVERWRITE 0x00004000 /* delete any existing mappings first */287#define VM_FLAGS_OVERWRITE 0x00004000 /* delete any existing mappings first */
287/*288/*
288 * VM_FLAGS_SUPERPAGE_MASK289 * VM_FLAGS_SUPERPAGE_MASK
...@@ -299,7 +300,7 @@ typedef struct vm_purgeable_info *vm_purgeable_info_t;...@@ -299,7 +300,7 @@ typedef struct vm_purgeable_info *vm_purgeable_info_t;
299 (flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) | \300 (flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) | \
300 (((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))301 (((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))
301302
302#define VM_FLAGS_HW (VM_FLAGS_TPRO)303#define VM_FLAGS_HW (VM_FLAGS_TPRO | VM_FLAGS_MTE)
303304
304/* These are the flags that we accept from user-space */305/* These are the flags that we accept from user-space */
305#define VM_FLAGS_USER_ALLOCATE (VM_FLAGS_FIXED | \306#define VM_FLAGS_USER_ALLOCATE (VM_FLAGS_FIXED | \
...@@ -358,8 +359,13 @@ __enum_decl(virtual_memory_guard_exception_code_t, uint32_t, {...@@ -358,8 +359,13 @@ __enum_decl(virtual_memory_guard_exception_code_t, uint32_t, {
358 kGUARD_EXC_SEC_COPY_DENIED = 100,359 kGUARD_EXC_SEC_COPY_DENIED = 100,
359 kGUARD_EXC_SEC_SHARING_DENIED = 101,360 kGUARD_EXC_SEC_SHARING_DENIED = 101,
360361
362 /* Fault-related exceptions. */
363 kGUARD_EXC_MTE_SYNC_FAULT = 200,
364 kGUARD_EXC_MTE_ASYNC_USER_FAULT = 201,
365 kGUARD_EXC_MTE_ASYNC_KERN_FAULT = 202
361});366});
362367
368#define kGUARD_EXC_MTE_SOFT_MODE 0x100000
363369
364370
365#pragma mark Ledger Tags371#pragma mark Ledger Tags
lib/libc/include/any-macos-any/mach/vm_types.h+6
...@@ -71,6 +71,12 @@ typedef uint32_t reg64_t;...@@ -71,6 +71,12 @@ typedef uint32_t reg64_t;
71typedef uint32_t ppnum_t __kernel_ptr_semantics; /* Physical page number */71typedef uint32_t ppnum_t __kernel_ptr_semantics; /* Physical page number */
72#define PPNUM_MAX UINT32_MAX72#define PPNUM_MAX UINT32_MAX
7373
74/*
75 * For use with mach_vm_update_pointers_with_remote_tags.
76 * This definition must be kept in sync with the definition in mach_types.defs.
77 */
78#define VM_OFFSET_LIST_MAX 1024
79
7480
75typedef mach_port_t vm_map_t, vm_map_read_t, vm_map_inspect_t;81typedef mach_port_t vm_map_t, vm_map_read_t, vm_map_inspect_t;
76typedef mach_port_t upl_t;82typedef mach_port_t upl_t;
lib/libc/include/any-macos-any/malloc/malloc.h+21-5
...@@ -110,6 +110,10 @@ __API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0...@@ -110,6 +110,10 @@ __API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), watchos(26.0), visionos(26.0
110void * __sized_by_or_null(size) malloc_type_zone_malloc_with_options(malloc_zone_t *zone, size_t alignment, size_t size, malloc_type_id_t type_id, malloc_zone_malloc_options_t opts) __result_use_check __alloc_align(2) __alloc_size(3);110void * __sized_by_or_null(size) malloc_type_zone_malloc_with_options(malloc_zone_t *zone, size_t alignment, size_t size, malloc_type_id_t type_id, malloc_zone_malloc_options_t opts) __result_use_check __alloc_align(2) __alloc_size(3);
111#endif /* __LP64__ */111#endif /* __LP64__ */
112112
113#if defined(_MALLOC_TYPE_MALLOC_IS_BACKDEPLOYING) && _MALLOC_TYPE_MALLOC_IS_BACKDEPLOYING
114static void * __sized_by_or_null(size) __attribute__((always_inline)) malloc_type_zone_malloc_with_options_backdeploy(malloc_zone_t *zone, size_t alignment, size_t size, malloc_type_id_t type_id, malloc_zone_malloc_options_t opts) __result_use_check __alloc_align(2) __alloc_size(3);
115#endif /* defined(_MALLOC_TYPE_MALLOC_IS_BACKDEPLOYING) && _MALLOC_TYPE_MALLOC_IS_BACKDEPLOYING */
116
113// The remainder of these functions are declared in malloc/_malloc_type.h, and117// The remainder of these functions are declared in malloc/_malloc_type.h, and
114// the backdeployment variant definitions are at the bottom of this file.118// the backdeployment variant definitions are at the bottom of this file.
115119
...@@ -409,13 +413,16 @@ extern void * __sized_by_or_null(size) malloc_zone_malloc(malloc_zone_t *zone, s...@@ -409,13 +413,16 @@ extern void * __sized_by_or_null(size) malloc_zone_malloc(malloc_zone_t *zone, s
409 * parameter may be NULL, in which case the default zone will be used.413 * parameter may be NULL, in which case the default zone will be used.
410 *414 *
411 * @param align415 * @param align
412 * The minimum alignment of the requested allocation. This parameter must be416 * The minimum alignment of the requested allocation. This non-zero parameter
413 * MALLOC_ZONE_MALLOC_DEFAULT_ALIGN to request default alignment, or a power417 * must be MALLOC_ZONE_MALLOC_DEFAULT_ALIGN to request default alignment, or a
414 * of 2 >= sizeof(void *).418 * power of 2 > sizeof(void *).
415 *419 *
416 * @param size420 * @param size
417 * The size, in bytes, of the requested allocation. Must be an integral421 * The size, in bytes, of the requested allocation, which must be an integral
418 * multiple of align if align is non-zero.422 * multiple of align. This requirement is relaxed slightly on OS versions
423 * strictly newer than 26.0, where a non-multiple size is permitted if and only
424 * if align is MALLOC_ZONE_MALLOC_DEFAULT_ALIGN. OS version 26.0 does not
425 * implement this exception.
419 *426 *
420 * @param options427 * @param options
421 * A bitmask of options defining how the memory should be allocated. See the428 * A bitmask of options defining how the memory should be allocated. See the
...@@ -698,6 +705,15 @@ static void * __sized_by_or_null(size) __attribute__((always_inline)) malloc_typ...@@ -698,6 +705,15 @@ static void * __sized_by_or_null(size) __attribute__((always_inline)) malloc_typ
698 return func(zone, size);705 return func(zone, size);
699}706}
700707
708static void * __sized_by_or_null(size) __attribute__((always_inline)) malloc_type_zone_malloc_with_options_backdeploy(malloc_zone_t *zone, size_t alignment, size_t size, malloc_type_id_t type_id, malloc_zone_malloc_options_t opts) __result_use_check __alloc_align(2) __alloc_size(3) {
709 __attribute__((weak_import)) void * __sized_by_or_null(size) malloc_type_zone_malloc_with_options(malloc_zone_t *zone, size_t alignment, size_t size, malloc_type_id_t type_id, malloc_zone_malloc_options_t opts) __result_use_check __alloc_align(2) __alloc_size(3);
710 __auto_type func = malloc_zone_malloc_with_options;
711 if (malloc_type_zone_malloc_with_options) {
712 return malloc_type_zone_malloc_with_options(zone, alignment, size, type_id, opts);
713 }
714 return func(zone, alignment, size, opts);
715}
716
701static void * __sized_by_or_null(count * size) __attribute__((always_inline)) malloc_type_zone_calloc_backdeploy(malloc_zone_t *zone, size_t count, size_t size, malloc_type_id_t type_id) __result_use_check __alloc_size(2,3) {717static void * __sized_by_or_null(count * size) __attribute__((always_inline)) malloc_type_zone_calloc_backdeploy(malloc_zone_t *zone, size_t count, size_t size, malloc_type_id_t type_id) __result_use_check __alloc_size(2,3) {
702 __attribute__((weak_import)) void * __sized_by_or_null(count * size) malloc_type_zone_calloc(malloc_zone_t *zone, size_t count, size_t size, malloc_type_id_t type_id) __result_use_check __alloc_size(2,3);718 __attribute__((weak_import)) void * __sized_by_or_null(count * size) malloc_type_zone_calloc(malloc_zone_t *zone, size_t count, size_t size, malloc_type_id_t type_id) __result_use_check __alloc_size(2,3);
703 __auto_type func = malloc_zone_calloc;719 __auto_type func = malloc_zone_calloc;
lib/libc/include/any-macos-any/sys/_symbol_aliasing.h+12
...@@ -563,6 +563,12 @@...@@ -563,6 +563,12 @@
563#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_26_0(x)563#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_26_0(x)
564#endif564#endif
565565
566#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 260100
567#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_26_1(x) x
568#else
569#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_26_1(x)
570#endif
571
566#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1000572#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1000
567#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x573#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x
568#else574#else
...@@ -1001,3 +1007,9 @@...@@ -1001,3 +1007,9 @@
1001#define __DARWIN_ALIAS_STARTING_MAC___MAC_26_0(x)1007#define __DARWIN_ALIAS_STARTING_MAC___MAC_26_0(x)
1002#endif1008#endif
10031009
1010#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 260100
1011#define __DARWIN_ALIAS_STARTING_MAC___MAC_26_1(x) x
1012#else
1013#define __DARWIN_ALIAS_STARTING_MAC___MAC_26_1(x)
1014#endif
1015
lib/libc/include/any-macos-any/sys/fcntl.h+1
...@@ -184,6 +184,7 @@...@@ -184,6 +184,7 @@
184#define AT_SYMLINK_NOFOLLOW_ANY 0x0800 /* Path should not contain any symlinks */184#define AT_SYMLINK_NOFOLLOW_ANY 0x0800 /* Path should not contain any symlinks */
185#define AT_RESOLVE_BENEATH 0x2000 /* Path must reside in the hierarchy beneath the starting directory */185#define AT_RESOLVE_BENEATH 0x2000 /* Path must reside in the hierarchy beneath the starting directory */
186#define AT_NODELETEBUSY 0x4000 /* Don't delete busy files */186#define AT_NODELETEBUSY 0x4000 /* Don't delete busy files */
187#define AT_UNIQUE 0x8000 /* prevent a path lookup from succeeding on a vnode with multiple links */
187#endif188#endif
188#endif189#endif
189190
lib/libc/include/any-macos-any/sys/mount.h+4-2
...@@ -419,8 +419,9 @@ OS_ENUM(graftdmg_type, uint32_t,...@@ -419,8 +419,9 @@ OS_ENUM(graftdmg_type, uint32_t,
419 GRAFTDMG_CRYPTEX_PDI_NONCE = 6,419 GRAFTDMG_CRYPTEX_PDI_NONCE = 6,
420 GRAFTDMG_CRYPTEX_EFFECTIVE_AP = 7,420 GRAFTDMG_CRYPTEX_EFFECTIVE_AP = 7,
421 GRAFTDMG_CRYPTEX_MOBILE_ASSET = 8,421 GRAFTDMG_CRYPTEX_MOBILE_ASSET = 8,
422 GRAFTDMG_CRYPTEX_MOBILE_ASSET_WITH_CODE = 9,
422 // Update this when a new type is added423 // Update this when a new type is added
423 GRAFTDMG_CRYPTEX_MAX = 8);424 GRAFTDMG_CRYPTEX_MAX = 9);
424425
425OS_ENUM(cryptex_auth_type, uint32_t,426OS_ENUM(cryptex_auth_type, uint32_t,
426 // Reserved: GRAFTDMG_CRYPTEX_BOOT = 1,427 // Reserved: GRAFTDMG_CRYPTEX_BOOT = 1,
...@@ -431,8 +432,9 @@ OS_ENUM(cryptex_auth_type, uint32_t,...@@ -431,8 +432,9 @@ OS_ENUM(cryptex_auth_type, uint32_t,
431 CRYPTEX_AUTH_PDI_NONCE = 6,432 CRYPTEX_AUTH_PDI_NONCE = 6,
432 // Reserved: GRAFTDMG_CRYPTEX_EFFECTIVE_AP = 7,433 // Reserved: GRAFTDMG_CRYPTEX_EFFECTIVE_AP = 7,
433 CRYPTEX_AUTH_MOBILE_ASSET = 8,434 CRYPTEX_AUTH_MOBILE_ASSET = 8,
435 CRYPTEX_AUTH_MOBILE_ASSET_WITH_CODE = 9,
434 // Update this when a new type is added436 // Update this when a new type is added
435 CRYPTEX_AUTH_MAX = 8);437 CRYPTEX_AUTH_MAX = 9);
436438
437439
438__BEGIN_DECLS440__BEGIN_DECLS
lib/libc/include/any-macos-any/sys/resource.h+3
...@@ -539,6 +539,9 @@ struct proc_rlimit_control_wakeupmon {...@@ -539,6 +539,9 @@ struct proc_rlimit_control_wakeupmon {
539#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0539#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0
540#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF 1540#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF 1
541#define IOPOL_MATERIALIZE_DATALESS_FILES_ON 2541#define IOPOL_MATERIALIZE_DATALESS_FILES_ON 2
542#define IOPOL_MATERIALIZE_DATALESS_FILES_ORIG 4
543
544#define IOPOL_MATERIALIZE_DATALESS_FILES_BASIC_MASK 3
542545
543#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0546#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0
544#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME 1547#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME 1
lib/libc/include/any-macos-any/xpc/connection.h+51-39
...@@ -135,7 +135,7 @@ typedef void (*xpc_finalizer_t)(void * _Nullable value);...@@ -135,7 +135,7 @@ typedef void (*xpc_finalizer_t)(void * _Nullable value);
135 *135 *
136 * If NULL, an anonymous listener connection will be created. You can embed the136 * If NULL, an anonymous listener connection will be created. You can embed the
137 * ability to create new peer connections in an endpoint, which can be inserted137 * ability to create new peer connections in an endpoint, which can be inserted
138 * into a message and sent to another process .138 * into a message and sent to another process.
139 *139 *
140 * @param targetq140 * @param targetq
141 * The GCD queue to which the event handler block will be submitted. This141 * The GCD queue to which the event handler block will be submitted. This
...@@ -301,7 +301,7 @@ xpc_connection_set_target_queue(xpc_connection_t connection,...@@ -301,7 +301,7 @@ xpc_connection_set_target_queue(xpc_connection_t connection,
301 * A connection may receive different events depending upon whether it is a301 * A connection may receive different events depending upon whether it is a
302 * listener or not. Any connection may receive an error in its event handler.302 * listener or not. Any connection may receive an error in its event handler.
303 * But while normal connections may receive messages in addition to errors,303 * But while normal connections may receive messages in addition to errors,
304 * listener connections will receive connections and and not messages.304 * listener connections will receive connections and not messages.
305 *305 *
306 * Connections received by listeners are equivalent to those returned by306 * Connections received by listeners are equivalent to those returned by
307 * xpc_connection_create() with a non-NULL name argument and a NULL targetq307 * xpc_connection_create() with a non-NULL name argument and a NULL targetq
...@@ -310,6 +310,17 @@ xpc_connection_set_target_queue(xpc_connection_t connection,...@@ -310,6 +310,17 @@ xpc_connection_set_target_queue(xpc_connection_t connection,
310 * to accept the connection, you may simply call xpc_connection_cancel() on it310 * to accept the connection, you may simply call xpc_connection_cancel() on it
311 * and return. The runtime will dispose of it for you.311 * and return. The runtime will dispose of it for you.
312 *312 *
313 * IMPORTANT: For peer connections received through a listener connection's
314 * event handler, you MUST either accept the connection by setting an event
315 * handler with xpc_connection_set_event_handler() and calling
316 * xpc_connection_resume(), or reject the connection by calling
317 * xpc_connection_cancel(). Failure to take one of these actions will result
318 * in the connection remaining in an undefined state, potentially causing
319 * resource leaks or preventing proper transaction cleanup. This requirement
320 * applies to all listener connections, including those created with
321 * xpc_connection_create_mach_service() and those managed automatically by
322 * xpc_main().
323 *
313 * If there is an error in the connection, this handler will be invoked with the324 * If there is an error in the connection, this handler will be invoked with the
314 * error dictionary as its argument. This dictionary will be one of the well-325 * error dictionary as its argument. This dictionary will be one of the well-
315 * known XPC_ERROR_* dictionaries.326 * known XPC_ERROR_* dictionaries.
...@@ -586,10 +597,11 @@ xpc_connection_send_message_with_reply_sync(xpc_connection_t connection,...@@ -586,10 +597,11 @@ xpc_connection_send_message_with_reply_sync(xpc_connection_t connection,
586 * Cancellation is asynchronous and non-preemptive and therefore this method597 * Cancellation is asynchronous and non-preemptive and therefore this method
587 * will not interrupt the execution of an already-running event handler block.598 * will not interrupt the execution of an already-running event handler block.
588 * If the event handler is executing at the time of this call, it will finish,599 * If the event handler is executing at the time of this call, it will finish,
589 * and then the connection will be canceled, causing a final invocation of the600 * and then the connection will be canceled.
590 * event handler to be scheduled with the XPC_ERROR_CONNECTION_INVALID error.601 *
591 * After that invocation, there will be no further invocations of the event602 * Canceling the connection will cause a final invocation of the event handler
592 * handler.603 * to be scheduled with the XPC_ERROR_CONNECTION_INVALID error. After that
604 * invocation, there will be no further invocations of the event handler.
593 *605 *
594 * The XPC runtime guarantees this non-preemptiveness even for concurrent target606 * The XPC runtime guarantees this non-preemptiveness even for concurrent target
595 * queues.607 * queues.
...@@ -601,7 +613,7 @@ xpc_connection_cancel(xpc_connection_t connection);...@@ -601,7 +613,7 @@ xpc_connection_cancel(xpc_connection_t connection);
601613
602/*!614/*!
603 * @function xpc_connection_get_name615 * @function xpc_connection_get_name
604 * Returns the name of the service with which the connections was created.616 * Returns the name of the service with which the connection was created.
605 *617 *
606 * @param connection618 * @param connection
607 * The connection object which is to be examined.619 * The connection object which is to be examined.
...@@ -690,7 +702,7 @@ xpc_connection_get_asid(xpc_connection_t connection);...@@ -690,7 +702,7 @@ xpc_connection_get_asid(xpc_connection_t connection);
690702
691/*!703/*!
692 * @function xpc_connection_set_context704 * @function xpc_connection_set_context
693 * Sets context on an connection.705 * Sets context on a connection.
694 *706 *
695 * @param connection707 * @param connection
696 * The connection which is to be manipulated.708 * The connection which is to be manipulated.
...@@ -764,8 +776,8 @@ xpc_connection_set_finalizer_f(xpc_connection_t connection,...@@ -764,8 +776,8 @@ xpc_connection_set_finalizer_f(xpc_connection_t connection,
764 * The connection object which is to be modified.776 * The connection object which is to be modified.
765 *777 *
766 * @param requirement778 * @param requirement
767 * The code signing requirement to be satisfied by the peer779 * The code signing requirement to be satisfied by the peer.
768 * It is safe to deallocate the requirement string after calling `xpc_connection_set_peer_code_signing_requirement`780 * It is safe to deallocate the requirement string after calling `xpc_connection_set_peer_code_signing_requirement`.
769 *781 *
770 * @result782 * @result
771 * 0 on success, non-zero on error783 * 0 on success, non-zero on error
...@@ -780,7 +792,7 @@ xpc_connection_set_finalizer_f(xpc_connection_t connection,...@@ -780,7 +792,7 @@ xpc_connection_set_finalizer_f(xpc_connection_t connection,
780 * are dropped. When a reply is expected on the connection and the peer does not satisfy the requirement792 * are dropped. When a reply is expected on the connection and the peer does not satisfy the requirement
781 * `XPC_ERROR_PEER_CODE_SIGNING_REQUIREMENT` will be delivered instead of the reply.793 * `XPC_ERROR_PEER_CODE_SIGNING_REQUIREMENT` will be delivered instead of the reply.
782 *794 *
783 * This API is not supported on embedded platforms and will return ENOTSUP. 795 * This API is not supported on embedded platforms and will return ENOTSUP.
784 *796 *
785 * @see https://developer.apple.com/documentation/technotes/tn3127-inside-code-signing-requirements797 * @see https://developer.apple.com/documentation/technotes/tn3127-inside-code-signing-requirements
786 */798 */
...@@ -792,14 +804,14 @@ xpc_connection_set_peer_code_signing_requirement(xpc_connection_t connection, co...@@ -792,14 +804,14 @@ xpc_connection_set_peer_code_signing_requirement(xpc_connection_t connection, co
792804
793/*!805/*!
794 * @function xpc_connection_set_peer_entitlement_exists_requirement806 * @function xpc_connection_set_peer_entitlement_exists_requirement
795 * Requires that the connection peer has the specified entitlement807 * Requires that the connection peer has the specified entitlement.
796 *808 *
797 * @param connection809 * @param connection
798 * The connection object which is to be modified810 * The connection object which is to be modified.
799 *811 *
800 * @param entitlement812 * @param entitlement
801 * The entitlement the peer must have813 * The entitlement the peer must have.
802 * It is safe to deallocate the entitlement string after calling `xpc_connection_set_peer_entitlement_exists_requirement`814 * It is safe to deallocate the entitlement string after calling `xpc_connection_set_peer_entitlement_exists_requirement`.
803 *815 *
804 * @result816 * @result
805 * 0 on success, non-zero on error817 * 0 on success, non-zero on error
...@@ -824,17 +836,17 @@ xpc_connection_set_peer_entitlement_exists_requirement(xpc_connection_t connecti...@@ -824,17 +836,17 @@ xpc_connection_set_peer_entitlement_exists_requirement(xpc_connection_t connecti
824836
825/*!837/*!
826 * @function xpc_connection_set_peer_entitlement_matches_value_requirement838 * @function xpc_connection_set_peer_entitlement_matches_value_requirement
827 * Requires that the connection peer has the specified entitlement with the matching value839 * Requires that the connection peer has the specified entitlement with the matching value.
828 *840 *
829 * @param connection841 * @param connection
830 * The connection object which is to be modified842 * The connection object which is to be modified.
831 *843 *
832 * @param entitlement844 * @param entitlement
833 * The entitlement the peer must have845 * The entitlement the peer must have.
834 * It is safe to deallocate the entitlement string after calling `xpc_connection_set_peer_entitlement_matches_value_requirement`846 * It is safe to deallocate the entitlement string after calling `xpc_connection_set_peer_entitlement_matches_value_requirement`.
835 *847 *
836 * @param value848 * @param value
837 * The value that the entitlement must match849 * The value that the entitlement must match.
838 * It is safe to deallocate the value object after calling850 * It is safe to deallocate the value object after calling
839 * `xpc_connection_set_peer_entitlement_matches_value_requirement`.851 * `xpc_connection_set_peer_entitlement_matches_value_requirement`.
840 * Valid xpc types for this object are `XPC_TYPE_BOOL`, `XPC_TYPE_STRING` and `XPC_TYPE_INT64`.852 * Valid xpc types for this object are `XPC_TYPE_BOOL`, `XPC_TYPE_STRING` and `XPC_TYPE_INT64`.
...@@ -863,14 +875,14 @@ xpc_connection_set_peer_entitlement_matches_value_requirement(xpc_connection_t c...@@ -863,14 +875,14 @@ xpc_connection_set_peer_entitlement_matches_value_requirement(xpc_connection_t c
863/*!875/*!
864 * @function xpc_connection_set_peer_team_identity_requirement876 * @function xpc_connection_set_peer_team_identity_requirement
865 * Requires that the connection peer has the specified identity and is signed with the same team identifier877 * Requires that the connection peer has the specified identity and is signed with the same team identifier
866 * as the current process878 * as the current process.
867 *879 *
868 * @param connection880 * @param connection
869 * The connection object which is to be modified881 * The connection object which is to be modified.
870 *882 *
871 * @param signing_identifier883 * @param signing_identifier
872 * The optional signing identifier the peer must have884 * The optional signing identifier the peer must have.
873 * It is safe to deallocate the signing identifier string after calling `xpc_connection_set_peer_identity_requirement`885 * It is safe to deallocate the signing identifier string after calling `xpc_connection_set_peer_identity_requirement`.
874 *886 *
875 * @result887 * @result
876 * 0 on success, non-zero on error888 * 0 on success, non-zero on error
...@@ -879,7 +891,7 @@ xpc_connection_set_peer_entitlement_matches_value_requirement(xpc_connection_t c...@@ -879,7 +891,7 @@ xpc_connection_set_peer_entitlement_matches_value_requirement(xpc_connection_t c
879 * This function will return an error promptly if the identity requirement is invalid.891 * This function will return an error promptly if the identity requirement is invalid.
880 *892 *
881 * The peer process must be signed as either a Testflight app or an App store app,893 * The peer process must be signed as either a Testflight app or an App store app,
882 * or be signed by an apple issued development certificate, an enterprise distributed894 * or be signed by an Apple-issued development certificate, an enterprise distributed
883 * certificate (embedded only), or a Developer ID certificate (macOS only)895 * certificate (embedded only), or a Developer ID certificate (macOS only)
884 *896 *
885 * It is a programming error to call multiple of the `xpc_connection_set_peer_*_requirement` family of functions on the same897 * It is a programming error to call multiple of the `xpc_connection_set_peer_*_requirement` family of functions on the same
...@@ -899,14 +911,14 @@ xpc_connection_set_peer_team_identity_requirement(xpc_connection_t connection, c...@@ -899,14 +911,14 @@ xpc_connection_set_peer_team_identity_requirement(xpc_connection_t connection, c
899911
900/*!912/*!
901 * @function xpc_connection_set_peer_platform_identity_requirement913 * @function xpc_connection_set_peer_platform_identity_requirement
902 * Requires that the connection peer has the specified identity and is signed by Apple914 * Requires that the connection peer has the specified identity and is signed by Apple.
903 *915 *
904 * @param connection916 * @param connection
905 * The connection object which is to be modified917 * The connection object which is to be modified.
906 *918 *
907 * @param signing_identifier919 * @param signing_identifier
908 * The optional signing identifier the peer must have. If not specified, this function ensures that the peer is signed by Apple920 * The optional signing identifier the peer must have. If not specified, this function ensures that the peer is signed by Apple.
909 * It is safe to deallocate the signing identifier string after calling `xpc_connection_set_peer_identity_requirement`921 * It is safe to deallocate the signing identifier string after calling `xpc_connection_set_peer_identity_requirement`.
910 *922 *
911 * @result923 * @result
912 * 0 on success, non-zero on error924 * 0 on success, non-zero on error
...@@ -934,14 +946,14 @@ xpc_connection_set_peer_platform_identity_requirement(xpc_connection_t connectio...@@ -934,14 +946,14 @@ xpc_connection_set_peer_platform_identity_requirement(xpc_connection_t connectio
934946
935/*!947/*!
936 * @function xpc_connection_set_peer_lightweight_code_requirement948 * @function xpc_connection_set_peer_lightweight_code_requirement
937 * Requires that the connection peer has the specified lightweight code requirement949 * Requires that the connection peer has the specified lightweight code requirement.
938 *950 *
939 * @param connection951 * @param connection
940 * The connection object which is to be modified952 * The connection object which is to be modified.
941 *953 *
942 * @param lwcr954 * @param lwcr
943 * The lightweight code requirement the peer must have955 * The lightweight code requirement the peer must have.
944 * It is safe to deallocate the lightweight code requirement object after calling `xpc_connection_set_peer_lightweight_code_requirement`956 * It is safe to deallocate the lightweight code requirement object after calling `xpc_connection_set_peer_lightweight_code_requirement`.
945 *957 *
946 * @result958 * @result
947 * 0 on success, non-zero on error959 * 0 on success, non-zero on error
...@@ -982,14 +994,14 @@ xpc_connection_set_peer_lightweight_code_requirement(xpc_connection_t connection...@@ -982,14 +994,14 @@ xpc_connection_set_peer_lightweight_code_requirement(xpc_connection_t connection
982994
983/*!995/*!
984 * @function xpc_connection_set_peer_requirement996 * @function xpc_connection_set_peer_requirement
985 * Requires that the connection peer has the specified requirement997 * Requires that the connection peer has the specified requirement.
986 *998 *
987 * @param connection999 * @param connection
988 * The connection object which is to be modified1000 * The connection object which is to be modified.
989 *1001 *
990 * @param peer_requirement1002 * @param peer_requirement
991 * The requirement the peer must have1003 * The requirement the peer must have.
992 * It is safe to deallocate the peer requirement after calling `xpc_connection_set_peer_requirement`1004 * It is safe to deallocate the peer requirement after calling `xpc_connection_set_peer_requirement`.
993 *1005 *
994 * @discussion1006 * @discussion
995 * It is a programming error to call multiple of the `xpc_connection_set_peer_*_requirement` family of functions on the same1007 * It is a programming error to call multiple of the `xpc_connection_set_peer_*_requirement` family of functions on the same
...@@ -1012,10 +1024,10 @@ xpc_connection_set_peer_requirement(xpc_connection_t connection,...@@ -1012,10 +1024,10 @@ xpc_connection_set_peer_requirement(xpc_connection_t connection,
1012 * Returns a description of why the connection was invalidated.1024 * Returns a description of why the connection was invalidated.
1013 *1025 *
1014 * @param connection1026 * @param connection
1015 * The connection object to inspect1027 * The connection object to inspect.
1016 *1028 *
1017 * @result1029 * @result
1018 * Null if the connection has not been invalidated, otherwise a description for why the connection was invalidated.1030 * NULL if the connection has not been invalidated, otherwise a description for why the connection was invalidated.
1019 */1031 */
1020API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0))1032API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0), watchos(8.0))
1021XPC_EXPORT XPC_NONNULL1 XPC_WARN_RESULT1033XPC_EXPORT XPC_NONNULL1 XPC_WARN_RESULT
lib/libc/include/any-macos-any/xpc/listener.h+17-9
...@@ -21,7 +21,7 @@ __BEGIN_DECLS...@@ -21,7 +21,7 @@ __BEGIN_DECLS
21 * Listeners represent the server side variant of an XPC Session.21 * Listeners represent the server side variant of an XPC Session.
22 *22 *
23 * Listeners are activated and then begin receiving `xpc_session_t` from peers attempting to23 * Listeners are activated and then begin receiving `xpc_session_t` from peers attempting to
24 * connect to the server24 * connect to the server.
25 *25 *
26 */26 */
27OS_OBJECT_DECL_SENDABLE_CLASS(xpc_listener);27OS_OBJECT_DECL_SENDABLE_CLASS(xpc_listener);
...@@ -38,10 +38,10 @@ OS_OBJECT_DECL_SENDABLE_CLASS(xpc_listener);...@@ -38,10 +38,10 @@ OS_OBJECT_DECL_SENDABLE_CLASS(xpc_listener);
38 * {@link xpc_listener_activate} before it can be used.38 * {@link xpc_listener_activate} before it can be used.
39 *39 *
40 * @const XPC_LISTENER_CREATE_FORCE_MACH40 * @const XPC_LISTENER_CREATE_FORCE_MACH
41 * Optional key to indicate to the runtime that this listener is for a Mach Service41 * Optional key to indicate to the runtime that this listener is for a Mach Service.
42 *42 *
43 * @const XPC_LISTENER_CREATE_FORCE_XPCSERVICE43 * @const XPC_LISTENER_CREATE_FORCE_XPCSERVICE
44 * Optional key to indicate to the runtime that this listener is for a XPCService endpoint44 * Optional key to indicate to the runtime that this listener is for a XPCService endpoint.
45 */45 */
46XPC_SWIFT_NOEXPORT46XPC_SWIFT_NOEXPORT
47XPC_FLAGS_ENUM(xpc_listener_create_flags, uint64_t,47XPC_FLAGS_ENUM(xpc_listener_create_flags, uint64_t,
...@@ -76,7 +76,7 @@ xpc_listener_copy_description(xpc_listener_t listener);...@@ -76,7 +76,7 @@ xpc_listener_copy_description(xpc_listener_t listener);
76#pragma mark Server Session Creation76#pragma mark Server Session Creation
77/*!77/*!
78 * @function xpc_listener_create78 * @function xpc_listener_create
79 * Creates a listener with the service defined by the provided name79 * Creates a listener with the service defined by the provided name.
80 *80 *
81 * @param service81 * @param service
82 * The Mach service or XPC Service name to create the listener with.82 * The Mach service or XPC Service name to create the listener with.
...@@ -91,9 +91,14 @@ xpc_listener_copy_description(xpc_listener_t listener);...@@ -91,9 +91,14 @@ xpc_listener_copy_description(xpc_listener_t listener);
91 * Additional attributes to create the listener.91 * Additional attributes to create the listener.
92 *92 *
93 * @param incoming_session_handler93 * @param incoming_session_handler
94 * The handler block to be called when a peer is attempting to establish a94 * The handler block to be called when a peer is attempting to establish a
95 * connection with this listener. The incoming session handler is mandatory.95 * connection with this listener. The incoming session handler is mandatory.
96 *96 *
97 * Unlike XPC connection listeners that require explicit acceptance,
98 * xpc_listener automatically accepts and activates incoming peer sessions when
99 * the incoming_session_handler returns, unless the peer session was explicitly
100 * rejected using xpc_listener_reject_peer() or cancelled using xpc_session_cancel().
101 *
97 * @param error_out102 * @param error_out
98 * An out-parameter that, if set and in the event of an error, will point to an103 * An out-parameter that, if set and in the event of an error, will point to an
99 * {@link xpc_rich_error_t} describing the details of any errors that occurred.104 * {@link xpc_rich_error_t} describing the details of any errors that occurred.
...@@ -176,17 +181,20 @@ xpc_listener_cancel(xpc_listener_t listener);...@@ -176,17 +181,20 @@ xpc_listener_cancel(xpc_listener_t listener);
176181
177/*!182/*!
178 * @function xpc_listener_reject_peer183 * @function xpc_listener_reject_peer
179 * Rejects the incoming peer session184 * Rejects the incoming peer session.
180 *185 *
181 * @param peer186 * @param peer
182 * The peer session object to reject. This must be a session that was an argument187 * The peer session object to reject. This must be a session that was an argument
183 * from an incoming session handler block188 * from an incoming session handler block.
184 *189 *
185 * @param reason190 * @param reason
186 * The reason that the peer was rejected191 * The reason that the peer was rejected.
187 *192 *
188 * @discussion193 * @discussion
189 * The peer session will be cancelled and cannot be used after it has been rejected194 * The peer session will be cancelled and cannot be used after it has been rejected.
195 *
196 * An incoming session that is not rejected will automatically be accepted
197 * after returning from the incoming peer handler.
190 */198 */
191API_AVAILABLE(macos(14.0), macCatalyst(17.0))199API_AVAILABLE(macos(14.0), macCatalyst(17.0))
192API_UNAVAILABLE(ios, tvos, watchos)200API_UNAVAILABLE(ios, tvos, watchos)
lib/libc/include/any-macos-any/xpc/xpc.h+55-40
...@@ -221,7 +221,7 @@ XPC_TYPE(_xpc_type_date);...@@ -221,7 +221,7 @@ XPC_TYPE(_xpc_type_date);
221221
222/*!222/*!
223 * @define XPC_TYPE_DATA223 * @define XPC_TYPE_DATA
224 * A type representing a an arbitrary buffer of bytes.224 * A type representing an arbitrary buffer of bytes.
225 */225 */
226#define XPC_TYPE_DATA (&_xpc_type_data)226#define XPC_TYPE_DATA (&_xpc_type_data)
227__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)227__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
...@@ -239,7 +239,7 @@ XPC_TYPE(_xpc_type_string);...@@ -239,7 +239,7 @@ XPC_TYPE(_xpc_type_string);
239239
240/*!240/*!
241 * @define XPC_TYPE_UUID241 * @define XPC_TYPE_UUID
242 * A type representing a Universally Unique Identifier as defined by uuid(3). 242 * A type representing a Universally Unique Identifier as defined by uuid(3).
243 */243 */
244#define XPC_TYPE_UUID (&_xpc_type_uuid)244#define XPC_TYPE_UUID (&_xpc_type_uuid)
245__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)245__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
...@@ -487,7 +487,7 @@ xpc_copy(xpc_object_t object);...@@ -487,7 +487,7 @@ xpc_copy(xpc_object_t object);
487 * Returns true if the objects are equal, otherwise false. Two objects must be487 * Returns true if the objects are equal, otherwise false. Two objects must be
488 * of the same type in order to be equal.488 * of the same type in order to be equal.
489 *489 *
490 * For two arrays to be equal, they must contain the same values at the 490 * For two arrays to be equal, they must contain the same values at the
491 * same indexes. For two dictionaries to be equal, they must contain the same491 * same indexes. For two dictionaries to be equal, they must contain the same
492 * values for the same keys.492 * values for the same keys.
493 *493 *
...@@ -513,8 +513,8 @@ xpc_equal(xpc_object_t object1, xpc_object_t object2);...@@ -513,8 +513,8 @@ xpc_equal(xpc_object_t object1, xpc_object_t object2);
513 * The calculated hash value.513 * The calculated hash value.
514 *514 *
515 * @discussion515 * @discussion
516 * Note that the computed hash values for any particular type and value of an 516 * Note that the computed hash values for any particular type and value of an
517 * object can change from across releases and platforms and should not be517 * object can change across releases and platforms and should not be
518 * assumed to be constant across all time and space or stored persistently.518 * assumed to be constant across all time and space or stored persistently.
519 */519 */
520__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)520__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
...@@ -567,7 +567,7 @@ xpc_null_create(void);...@@ -567,7 +567,7 @@ xpc_null_create(void);
567 * The Boolean primitive value which is to be boxed.567 * The Boolean primitive value which is to be boxed.
568 *568 *
569 * @result569 * @result
570 * A new Boolean object. 570 * A new Boolean object.
571 */571 */
572__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)572__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
573XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT573XPC_EXPORT XPC_RETURNS_RETAINED XPC_WARN_RESULT
...@@ -710,7 +710,8 @@ xpc_double_get_value(xpc_object_t xdouble);...@@ -710,7 +710,8 @@ xpc_double_get_value(xpc_object_t xdouble);
710 * @param interval710 * @param interval
711 * The date interval which is to be boxed. Negative values indicate the number711 * The date interval which is to be boxed. Negative values indicate the number
712 * of nanoseconds before the epoch. Positive values indicate the number of712 * of nanoseconds before the epoch. Positive values indicate the number of
713 * nanoseconds after the epoch.713 * nanoseconds after the epoch. The interval is with respect to the Unix epoch.
714 * XPC dates are in Unix time and are thus unaware of local time or leap seconds.
714 *715 *
715 * @result716 * @result
716 * A new date object.717 * A new date object.
...@@ -745,7 +746,8 @@ xpc_date_create_from_current(void);...@@ -745,7 +746,8 @@ xpc_date_create_from_current(void);
745 *746 *
746 * @result747 * @result
747 * The underlying date interval or 0 if the given object was not an XPC date748 * The underlying date interval or 0 if the given object was not an XPC date
748 * object.749 * object. The interval is with respect to the Unix epoch. XPC dates are in
750 * Unix time and are thus unaware of local time or leap seconds.
749 */751 */
750__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)752__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
751XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1753XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
...@@ -768,7 +770,7 @@ xpc_date_get_value(xpc_object_t xdate);...@@ -768,7 +770,7 @@ xpc_date_get_value(xpc_object_t xdate);
768 * The number of bytes which are to be boxed.770 * The number of bytes which are to be boxed.
769 *771 *
770 * @result772 * @result
771 * A new data object. 773 * A new data object.
772 *774 *
773 * @discussion775 * @discussion
774 * This method will copy the buffer given into internal storage. After calling776 * This method will copy the buffer given into internal storage. After calling
...@@ -791,7 +793,7 @@ xpc_data_create(const void * _Nullable XPC_SIZEDBY(length) bytes, size_t length)...@@ -791,7 +793,7 @@ xpc_data_create(const void * _Nullable XPC_SIZEDBY(length) bytes, size_t length)
791 * is retained by the data object.793 * is retained by the data object.
792 *794 *
793 * @result795 * @result
794 * A new data object. 796 * A new data object.
795 *797 *
796 * @discussion798 * @discussion
797 * The object returned by this method will refer to the buffer returned by799 * The object returned by this method will refer to the buffer returned by
...@@ -843,7 +845,7 @@ xpc_data_get_bytes_ptr(xpc_object_t xdata);...@@ -843,7 +845,7 @@ xpc_data_get_bytes_ptr(xpc_object_t xdata);
843 * @function xpc_data_get_bytes845 * @function xpc_data_get_bytes
844 *846 *
845 * @abstract847 * @abstract
846 * Copies the bytes stored in an data objects into the specified buffer.848 * Copies the bytes stored in a data object into the specified buffer.
847 *849 *
848 * @param xdata850 * @param xdata
849 * The data object which is to be examined.851 * The data object which is to be examined.
...@@ -852,7 +854,7 @@ xpc_data_get_bytes_ptr(xpc_object_t xdata);...@@ -852,7 +854,7 @@ xpc_data_get_bytes_ptr(xpc_object_t xdata);
852 * The buffer in which to copy the data object's bytes.854 * The buffer in which to copy the data object's bytes.
853 *855 *
854 * @param off856 * @param off
855 * The offset at which to begin the copy. If this offset is greater than the 857 * The offset at which to begin the copy. If this offset is greater than the
856 * length of the data element, nothing is copied. Pass 0 to start the copy858 * length of the data element, nothing is copied. Pass 0 to start the copy
857 * at the beginning of the buffer.859 * at the beginning of the buffer.
858 *860 *
...@@ -880,7 +882,7 @@ xpc_data_get_bytes(xpc_object_t xdata,...@@ -880,7 +882,7 @@ xpc_data_get_bytes(xpc_object_t xdata,
880 * The C-string which is to be boxed.882 * The C-string which is to be boxed.
881 *883 *
882 * @result884 * @result
883 * A new string object. 885 * A new string object.
884 */886 */
885__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)887__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
886XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1888XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
...@@ -902,7 +904,7 @@ xpc_string_create(const char *string);...@@ -902,7 +904,7 @@ xpc_string_create(const char *string);
902 * The arguments which correspond to those specified in the format string.904 * The arguments which correspond to those specified in the format string.
903 *905 *
904 * @result906 * @result
905 * A new string object. 907 * A new string object.
906 */908 */
907__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)909__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
908XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1910XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
...@@ -926,7 +928,7 @@ xpc_string_create_with_format(const char *fmt, ...);...@@ -926,7 +928,7 @@ xpc_string_create_with_format(const char *fmt, ...);
926 * string.928 * string.
927 *929 *
928 * @result930 * @result
929 * A new string object. 931 * A new string object.
930 */932 */
931__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)933__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
932XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1934XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
...@@ -944,7 +946,7 @@ xpc_string_create_with_format_and_arguments(const char *fmt, va_list ap);...@@ -944,7 +946,7 @@ xpc_string_create_with_format_and_arguments(const char *fmt, va_list ap);
944 * The string object which is to be examined.946 * The string object which is to be examined.
945 *947 *
946 * @result948 * @result
947 * The length of the underlying string, not including the NUL-terminator, or 0 949 * The length of the underlying string, not including the NUL-terminator, or 0
948 * if the given object was not an XPC string object.950 * if the given object was not an XPC string object.
949 */951 */
950__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)952__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
...@@ -982,7 +984,7 @@ xpc_string_get_string_ptr(xpc_object_t xstring);...@@ -982,7 +984,7 @@ xpc_string_get_string_ptr(xpc_object_t xstring);
982 * The UUID which is to be boxed.984 * The UUID which is to be boxed.
983 *985 *
984 * @result986 * @result
985 * A new UUID object. 987 * A new UUID object.
986 */988 */
987__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)989__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
988XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1990XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1
...@@ -1444,9 +1446,11 @@ xpc_array_set_double(xpc_object_t xarray, size_t index, double value);...@@ -1444,9 +1446,11 @@ xpc_array_set_double(xpc_object_t xarray, size_t index, double value);
1444 * undefined.1446 * undefined.
1445 *1447 *
1446 * @param value1448 * @param value
1447 * The date value to insert, represented as an <code>int64_t</code>. After 1449 * The date value to insert, represented as an <code>int64_t</code>. The
1448 * calling this method, the XPC object corresponding to the primitive value 1450 * interval is with respect to the Unix epoch. XPC dates are in Unix time and
1449 * inserted may be safely retrieved with {@link xpc_array_get_value()}.1451 * are thus unaware of local time or leap seconds. After calling this method,
1452 * the XPC object corresponding to the primitive value inserted may be safely
1453 * retrieved with {@link xpc_array_get_value()}.
1450 */1454 */
1451__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)1455__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
1452XPC_EXPORT XPC_NONNULL11456XPC_EXPORT XPC_NONNULL1
...@@ -1624,7 +1628,7 @@ xpc_array_get_bool(xpc_object_t xarray, size_t index);...@@ -1624,7 +1628,7 @@ xpc_array_get_bool(xpc_object_t xarray, size_t index);
1624 *1628 *
1625 * @result1629 * @result
1626 * The underlying <code>int64_t</code> value at the specified index. 0 if the1630 * The underlying <code>int64_t</code> value at the specified index. 0 if the
1627 * value at the specified index is not a signed integer value. 1631 * value at the specified index is not a signed integer value.
1628 */1632 */
1629__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)1633__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
1630XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL11634XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
...@@ -1692,8 +1696,10 @@ xpc_array_get_double(xpc_object_t xarray, size_t index);...@@ -1692,8 +1696,10 @@ xpc_array_get_double(xpc_object_t xarray, size_t index);
1692 * index is outside that range, the behavior is undefined.1696 * index is outside that range, the behavior is undefined.
1693 *1697 *
1694 * @result1698 * @result
1695 * The underlying date interval at the specified index. 0 if the value at the1699 * The underlying date interval at the specified index. The interval is with
1696 * specified index is not a date value.1700 * respect to the Unix epoch. XPC dates are in Unix time and are thus unaware
1701 * of local time or leap seconds. 0 if the value at the specified index is not
1702 * a date value.
1697 */1703 */
1698__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)1704__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
1699XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL11705XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL1
...@@ -1715,7 +1721,7 @@ xpc_array_get_date(xpc_object_t xarray, size_t index);...@@ -1715,7 +1721,7 @@ xpc_array_get_date(xpc_object_t xarray, size_t index);
1715 * index is outside that range, the behavior is undefined.1721 * index is outside that range, the behavior is undefined.
1716 *1722 *
1717 * @param length1723 * @param length
1718 * Upon return output, will contain the length of the data corresponding to the1724 * Upon return, will contain the length of the data corresponding to the
1719 * specified key.1725 * specified key.
1720 *1726 *
1721 * @result1727 * @result
...@@ -1842,7 +1848,7 @@ xpc_array_create_connection(xpc_object_t xarray, size_t index);...@@ -1842,7 +1848,7 @@ xpc_array_create_connection(xpc_object_t xarray, size_t index);
1842 * 1848 *
1843 * @result1849 * @result
1844 * The object at the specified index within the array or NULL if the given1850 * The object at the specified index within the array or NULL if the given
1845 * object was not an XPC array or if the the value at the specified index was1851 * object was not an XPC array or if the value at the specified index was
1846 * not a dictionary.1852 * not a dictionary.
1847 *1853 *
1848 * @discussion1854 * @discussion
...@@ -1869,7 +1875,7 @@ xpc_array_get_dictionary(xpc_object_t xarray, size_t index);...@@ -1869,7 +1875,7 @@ xpc_array_get_dictionary(xpc_object_t xarray, size_t index);
1869 * 1875 *
1870 * @result1876 * @result
1871 * The object at the specified index within the array or NULL if the given1877 * The object at the specified index within the array or NULL if the given
1872 * object was not an XPC array or if the the value at the specified index was1878 * object was not an XPC array or if the value at the specified index was
1873 * not an array.1879 * not an array.
1874 *1880 *
1875 * @discussion1881 * @discussion
...@@ -1922,7 +1928,7 @@ typedef bool (^xpc_dictionary_applier_t)(const char * _Nonnull key,...@@ -1922,7 +1928,7 @@ typedef bool (^xpc_dictionary_applier_t)(const char * _Nonnull key,
1922 * the actual count of values, only that many key/value pairs will be inserted1928 * the actual count of values, only that many key/value pairs will be inserted
1923 * into the dictionary.1929 * into the dictionary.
1924 *1930 *
1925 * If the count is more than the the actual count of key/value pairs, the1931 * If the count is more than the actual count of key/value pairs, the
1926 * behavior is undefined. If one array is NULL and the other is not, the 1932 * behavior is undefined. If one array is NULL and the other is not, the
1927 * behavior is undefined. If both arrays are NULL and the count is non-0, the1933 * behavior is undefined. If both arrays are NULL and the count is non-0, the
1928 * behavior is undefined.1934 * behavior is undefined.
...@@ -2040,7 +2046,7 @@ xpc_dictionary_get_value(xpc_object_t xdict, const char *key);...@@ -2040,7 +2046,7 @@ xpc_dictionary_get_value(xpc_object_t xdict, const char *key);
2040 * The dictionary object which is to be examined.2046 * The dictionary object which is to be examined.
2041 *2047 *
2042 * @result2048 * @result
2043 * The number of values stored in the dictionary or 0 if the given object was 2049 * The number of values stored in the dictionary or 0 if the given object was
2044 * not an XPC dictionary. Calling xpc_dictionary_set_value() with a non-NULL2050 * not an XPC dictionary. Calling xpc_dictionary_set_value() with a non-NULL
2045 * value will increment the count. Calling xpc_dictionary_set_value() with a 2051 * value will increment the count. Calling xpc_dictionary_set_value() with a
2046 * NULL value will decrement the count.2052 * NULL value will decrement the count.
...@@ -2192,18 +2198,20 @@ xpc_dictionary_set_double(xpc_object_t xdict, const char *key, double value);...@@ -2192,18 +2198,20 @@ xpc_dictionary_set_double(xpc_object_t xdict, const char *key, double value);
2192 * @function xpc_dictionary_set_date2198 * @function xpc_dictionary_set_date
2193 *2199 *
2194 * @abstract2200 * @abstract
2195 * Inserts a date (primitive) value into a dictionary.2201 * Inserts a date value into a dictionary.
2196 *2202 *
2197 * @param xdict2203 * @param xdict
2198 * The dictionary which is to be manipulated.2204 * The dictionary which is to be manipulated.
2199 *2205 *
2200 * @param key2206 * @param key
2201 * The key for which the primitive value shall be set.2207 * The key for which the value shall be set.
2202 *2208 *
2203 * @param value2209 * @param value
2204 * The date value to insert. After calling this method, the XPC object2210 * The date value to insert, represented as an <code>int64_t</code>. The
2205 * corresponding to the primitive value inserted may be safely retrieved with2211 * interval is with respect to the Unix epoch. XPC dates are in Unix time and
2206 * {@link xpc_dictionary_get_value()}.2212 * are thus unaware of local time or leap seconds. After calling this method,
2213 * the XPC object corresponding to the primitive value inserted may be safely
2214 * retrieved with {@link xpc_dictionary_get_value()}.
2207 */2215 */
2208__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)2216__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
2209XPC_EXPORT XPC_NONNULL1 XPC_NONNULL22217XPC_EXPORT XPC_NONNULL1 XPC_NONNULL2
...@@ -2263,7 +2271,7 @@ xpc_dictionary_set_string(xpc_object_t xdict, const char *key,...@@ -2263,7 +2271,7 @@ xpc_dictionary_set_string(xpc_object_t xdict, const char *key,
2263 * @function xpc_dictionary_set_uuid2271 * @function xpc_dictionary_set_uuid
2264 *2272 *
2265 * @abstract2273 * @abstract
2266 * Inserts a uuid (primitive) value into an array.2274 * Inserts a UUID (primitive) value into a dictionary.
2267 *2275 *
2268 * @param xdict2276 * @param xdict
2269 * The dictionary which is to be manipulated.2277 * The dictionary which is to be manipulated.
...@@ -2381,7 +2389,7 @@ xpc_dictionary_get_bool(xpc_object_t xdict, const char *key);...@@ -2381,7 +2389,7 @@ xpc_dictionary_get_bool(xpc_object_t xdict, const char *key);
2381 * @function xpc_dictionary_get_int642389 * @function xpc_dictionary_get_int64
2382 *2390 *
2383 * @abstract2391 * @abstract
2384 * Gets an <code>int64</code> primitive value from a dictionary directly.2392 * Gets an <code>int64_t</code> primitive value from a dictionary directly.
2385 *2393 *
2386 * @param xdict2394 * @param xdict
2387 * The dictionary object which is to be examined.2395 * The dictionary object which is to be examined.
...@@ -2403,7 +2411,7 @@ xpc_dictionary_get_int64(xpc_object_t xdict, const char *key);...@@ -2403,7 +2411,7 @@ xpc_dictionary_get_int64(xpc_object_t xdict, const char *key);
2403 * @function xpc_dictionary_get_uint642411 * @function xpc_dictionary_get_uint64
2404 *2412 *
2405 * @abstract2413 * @abstract
2406 * Gets a <code>uint64</code> primitive value from a dictionary directly.2414 * Gets a <code>uint64_t</code> primitive value from a dictionary directly.
2407 *2415 *
2408 * @param xdict2416 * @param xdict
2409 * The dictionary object which is to be examined.2417 * The dictionary object which is to be examined.
...@@ -2456,9 +2464,10 @@ xpc_dictionary_get_double(xpc_object_t xdict, const char *key);...@@ -2456,9 +2464,10 @@ xpc_dictionary_get_double(xpc_object_t xdict, const char *key);
2456 * The key whose value is to be obtained.2464 * The key whose value is to be obtained.
2457 *2465 *
2458 * @result2466 * @result
2459 * The underlying date interval for the specified key. 0 if the value for the2467 * The underlying date interval for the specified key. The interval is with
2460 * specified key is not a date value or if there is no value for the specified2468 * respect to the Unix epoch. XPC dates are in Unix time and are thus unaware
2461 * key.2469 * of local time or leap seconds. 0 if the value for the specified key is not a
2470 * date value or if there is no value for the specified key.
2462 */2471 */
2463__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)2472__OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0)
2464XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL2473XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL_ALL
...@@ -2674,7 +2683,13 @@ xpc_dictionary_copy_mach_send(xpc_object_t xdict, const char *key);...@@ -2674,7 +2683,13 @@ xpc_dictionary_copy_mach_send(xpc_object_t xdict, const char *key);
2674 * bundle's Info.plist under the XPCService dictionary.2683 * bundle's Info.plist under the XPCService dictionary.
2675 *2684 *
2676 * @param handler2685 * @param handler
2677 * The handler with which to accept new connections.2686 * The handler with which to accept new connections. This handler is called for
2687 * each new connection established with the service. The handler must either
2688 * accept the connection by setting an event handler with
2689 * xpc_connection_set_event_handler() and calling xpc_connection_resume(), or
2690 * reject the connection by calling xpc_connection_cancel(). Failure to take
2691 * one of these actions will result in the connection remaining in an undefined
2692 * state, potentially causing resource leaks or transaction issues.
2678 */2693 */
2679API_AVAILABLE(macos(10.7), macCatalyst(5.0))2694API_AVAILABLE(macos(10.7), macCatalyst(5.0))
2680API_UNAVAILABLE(ios)2695API_UNAVAILABLE(ios)
tools/macos-headers.c+6-1
...@@ -124,6 +124,7 @@...@@ -124,6 +124,7 @@
124124
125// macOS system headers125// macOS system headers
126#include <mach/clock.h>126#include <mach/clock.h>
127#include <mach/exception.h>
127#include <mach/mach.h>128#include <mach/mach.h>
128#include <mach/mach_time.h>129#include <mach/mach_time.h>
129#include <mach/thread_state.h>130#include <mach/thread_state.h>
...@@ -177,7 +178,8 @@...@@ -177,7 +178,8 @@
177#include <os/lock.h>178#include <os/lock.h>
178#include <simd/simd.h>179#include <simd/simd.h>
179#include <xpc/xpc.h>180#include <xpc/xpc.h>
180#include <CommonCrypto/CommonDigest.h>181#include <CommonCrypto/CommonCrypto.h>
182#include <CommonCrypto/CommonRandom.h> // Not included by CommonCrypto.h
181183
182#include <objc/message.h>184#include <objc/message.h>
183#include <objc/NSObject.h>185#include <objc/NSObject.h>
...@@ -195,6 +197,9 @@...@@ -195,6 +197,9 @@
195#include <sys/file.h>197#include <sys/file.h>
196#include <malloc/malloc.h>198#include <malloc/malloc.h>
197199
200// Depended on by bdwgc
201#include <mach-o/getsect.h>
202
198// Provided by macOS LibC203// Provided by macOS LibC
199#include <memory.h>204#include <memory.h>
200#include <zlib.h>205#include <zlib.h>