<!--
{
  "documentType" : "article",
  "framework" : "Security",
  "identifier" : "/documentation/Security/security-legacy-reference",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Security legacy reference"
}
-->

# Security legacy reference

Learn about legacy APIs.

## Topics

### Module directory service

[`mds_funcs`](/documentation/Security/mds_funcs-c.struct)

[`MDS_Initialize`](/documentation/Security/MDS_Initialize)

[`MDS_Install`](/documentation/Security/MDS_Install)

[`MDS_Terminate`](/documentation/Security/MDS_Terminate)

[`MDS_Uninstall`](/documentation/Security/MDS_Uninstall)

[`MDS_CDSAATTR_ACLSUBJECTTYPES`](/documentation/Security/MDS_CDSAATTR_ACLSUBJECTTYPES)

[`MDS_CDSAATTR_ALG_TYPE`](/documentation/Security/MDS_CDSAATTR_ALG_TYPE)

[`MDS_CDSAATTR_ATTRIBUTE_TYPE`](/documentation/Security/MDS_CDSAATTR_ATTRIBUTE_TYPE)

[`MDS_CDSAATTR_ATTRIBUTE_VALUE`](/documentation/Security/MDS_CDSAATTR_ATTRIBUTE_VALUE)

[`MDS_CDSAATTR_AUTHORITY_REQUEST_TYPE`](/documentation/Security/MDS_CDSAATTR_AUTHORITY_REQUEST_TYPE)

[`MDS_CDSAATTR_AUTHTAGS`](/documentation/Security/MDS_CDSAATTR_AUTHTAGS)

[`MDS_CDSAATTR_BUNDLE_TYPEFORMAT`](/documentation/Security/MDS_CDSAATTR_BUNDLE_TYPEFORMAT)

[`MDS_CDSAATTR_CDSAVERSION`](/documentation/Security/MDS_CDSAATTR_CDSAVERSION)

[`MDS_CDSAATTR_CERT_CLASSNAME`](/documentation/Security/MDS_CDSAATTR_CERT_CLASSNAME)

[`MDS_CDSAATTR_CERT_FIELDNAMES`](/documentation/Security/MDS_CDSAATTR_CERT_FIELDNAMES)

[`MDS_CDSAATTR_CERT_TYPEFORMAT`](/documentation/Security/MDS_CDSAATTR_CERT_TYPEFORMAT)

[`MDS_CDSAATTR_CONJUNCTIVE_OPS`](/documentation/Security/MDS_CDSAATTR_CONJUNCTIVE_OPS)

[`MDS_CDSAATTR_CONTEXT_TYPE`](/documentation/Security/MDS_CDSAATTR_CONTEXT_TYPE)

[`MDS_CDSAATTR_CRL_TYPEFORMAT`](/documentation/Security/MDS_CDSAATTR_CRL_TYPEFORMAT)

[`MDS_CDSAATTR_CSP_CUSTOMFLAGS`](/documentation/Security/MDS_CDSAATTR_CSP_CUSTOMFLAGS)

[`MDS_CDSAATTR_CSP_FLAGS`](/documentation/Security/MDS_CDSAATTR_CSP_FLAGS)

[`MDS_CDSAATTR_CSP_TYPE`](/documentation/Security/MDS_CDSAATTR_CSP_TYPE)

[`MDS_CDSAATTR_DEFAULT_TEMPLATE_TYPE`](/documentation/Security/MDS_CDSAATTR_DEFAULT_TEMPLATE_TYPE)

[`MDS_CDSAATTR_DESC`](/documentation/Security/MDS_CDSAATTR_DESC)

[`MDS_CDSAATTR_DL_TYPE`](/documentation/Security/MDS_CDSAATTR_DL_TYPE)

[`MDS_CDSAATTR_DYNAMIC_FLAG`](/documentation/Security/MDS_CDSAATTR_DYNAMIC_FLAG)

[`MDS_CDSAATTR_EMMSPECVERSION`](/documentation/Security/MDS_CDSAATTR_EMMSPECVERSION)

[`MDS_CDSAATTR_EMM_TYPE`](/documentation/Security/MDS_CDSAATTR_EMM_TYPE)

[`MDS_CDSAATTR_EMM_VENDOR`](/documentation/Security/MDS_CDSAATTR_EMM_VENDOR)

[`MDS_CDSAATTR_EMM_VERSION`](/documentation/Security/MDS_CDSAATTR_EMM_VERSION)

[`MDS_CDSAATTR_GROUP_ID`](/documentation/Security/MDS_CDSAATTR_GROUP_ID)

[`MDS_CDSAATTR_INTERFACE_GUID`](/documentation/Security/MDS_CDSAATTR_INTERFACE_GUID)

[`MDS_CDSAATTR_MANIFEST`](/documentation/Security/MDS_CDSAATTR_MANIFEST)

[`MDS_CDSAATTR_MODULE_ID`](/documentation/Security/MDS_CDSAATTR_MODULE_ID)

[`MDS_CDSAATTR_MODULE_NAME`](/documentation/Security/MDS_CDSAATTR_MODULE_NAME)

[`MDS_CDSAATTR_MULTITHREAD_FLAG`](/documentation/Security/MDS_CDSAATTR_MULTITHREAD_FLAG)

[`MDS_CDSAATTR_NATIVE_SERVICES`](/documentation/Security/MDS_CDSAATTR_NATIVE_SERVICES)

[`MDS_CDSAATTR_OID`](/documentation/Security/MDS_CDSAATTR_OID)

[`MDS_CDSAATTR_PATH`](/documentation/Security/MDS_CDSAATTR_PATH)

[`MDS_CDSAATTR_POLICY_STMT`](/documentation/Security/MDS_CDSAATTR_POLICY_STMT)

[`MDS_CDSAATTR_PRODUCT_CUSTOMFLAGS`](/documentation/Security/MDS_CDSAATTR_PRODUCT_CUSTOMFLAGS)

[`MDS_CDSAATTR_PRODUCT_DESC`](/documentation/Security/MDS_CDSAATTR_PRODUCT_DESC)

[`MDS_CDSAATTR_PRODUCT_FLAGS`](/documentation/Security/MDS_CDSAATTR_PRODUCT_FLAGS)

[`MDS_CDSAATTR_PRODUCT_VENDOR`](/documentation/Security/MDS_CDSAATTR_PRODUCT_VENDOR)

[`MDS_CDSAATTR_PRODUCT_VERSION`](/documentation/Security/MDS_CDSAATTR_PRODUCT_VERSION)

[`MDS_CDSAATTR_PROTOCOL`](/documentation/Security/MDS_CDSAATTR_PROTOCOL)

[`MDS_CDSAATTR_QUERY_LIMITS`](/documentation/Security/MDS_CDSAATTR_QUERY_LIMITS)

[`MDS_CDSAATTR_READER_CUSTOMFLAGS`](/documentation/Security/MDS_CDSAATTR_READER_CUSTOMFLAGS)

[`MDS_CDSAATTR_READER_DESC`](/documentation/Security/MDS_CDSAATTR_READER_DESC)

[`MDS_CDSAATTR_READER_FLAGS`](/documentation/Security/MDS_CDSAATTR_READER_FLAGS)

[`MDS_CDSAATTR_READER_FWVERSION`](/documentation/Security/MDS_CDSAATTR_READER_FWVERSION)

[`MDS_CDSAATTR_READER_SERIALNUMBER`](/documentation/Security/MDS_CDSAATTR_READER_SERIALNUMBER)

[`MDS_CDSAATTR_READER_VENDOR`](/documentation/Security/MDS_CDSAATTR_READER_VENDOR)

[`MDS_CDSAATTR_READER_VERSION`](/documentation/Security/MDS_CDSAATTR_READER_VERSION)

[`MDS_CDSAATTR_RELATIONAL_OPS`](/documentation/Security/MDS_CDSAATTR_RELATIONAL_OPS)

[`MDS_CDSAATTR_REQCREDENTIALS`](/documentation/Security/MDS_CDSAATTR_REQCREDENTIALS)

[`MDS_CDSAATTR_RETRIEVALMODE`](/documentation/Security/MDS_CDSAATTR_RETRIEVALMODE)

[`MDS_CDSAATTR_ROOTCERT`](/documentation/Security/MDS_CDSAATTR_ROOTCERT)

[`MDS_CDSAATTR_ROOTCERT_TYPEFORMAT`](/documentation/Security/MDS_CDSAATTR_ROOTCERT_TYPEFORMAT)

[`MDS_CDSAATTR_SAMPLETYPES`](/documentation/Security/MDS_CDSAATTR_SAMPLETYPES)

[`MDS_CDSAATTR_SC_CUSTOMFLAGS`](/documentation/Security/MDS_CDSAATTR_SC_CUSTOMFLAGS)

[`MDS_CDSAATTR_SC_DESC`](/documentation/Security/MDS_CDSAATTR_SC_DESC)

[`MDS_CDSAATTR_SC_FLAGS`](/documentation/Security/MDS_CDSAATTR_SC_FLAGS)

[`MDS_CDSAATTR_SC_FWVERSION`](/documentation/Security/MDS_CDSAATTR_SC_FWVERSION)

[`MDS_CDSAATTR_SC_SERIALNUMBER`](/documentation/Security/MDS_CDSAATTR_SC_SERIALNUMBER)

[`MDS_CDSAATTR_SC_VENDOR`](/documentation/Security/MDS_CDSAATTR_SC_VENDOR)

[`MDS_CDSAATTR_SC_VERSION`](/documentation/Security/MDS_CDSAATTR_SC_VERSION)

[`MDS_CDSAATTR_SERVICE_MASK`](/documentation/Security/MDS_CDSAATTR_SERVICE_MASK)

[`MDS_CDSAATTR_SERVICE_TYPE`](/documentation/Security/MDS_CDSAATTR_SERVICE_TYPE)

[`MDS_CDSAATTR_SSID`](/documentation/Security/MDS_CDSAATTR_SSID)

[`MDS_CDSAATTR_STANDARD_DESC`](/documentation/Security/MDS_CDSAATTR_STANDARD_DESC)

[`MDS_CDSAATTR_STANDARD_VERSION`](/documentation/Security/MDS_CDSAATTR_STANDARD_VERSION)

[`MDS_CDSAATTR_TEMPLATE_FIELD_NAMES`](/documentation/Security/MDS_CDSAATTR_TEMPLATE_FIELD_NAMES)

[`MDS_CDSAATTR_USEETAG`](/documentation/Security/MDS_CDSAATTR_USEETAG)

[`MDS_CDSAATTR_USEE_TAGS`](/documentation/Security/MDS_CDSAATTR_USEE_TAGS)

[`MDS_CDSAATTR_VALUE`](/documentation/Security/MDS_CDSAATTR_VALUE)

[`MDS_CDSAATTR_VENDOR`](/documentation/Security/MDS_CDSAATTR_VENDOR)

[`MDS_CDSAATTR_XLATIONTYPEFORMAT`](/documentation/Security/MDS_CDSAATTR_XLATIONTYPEFORMAT)

[`MDS_CDSADIR_AC_PRIMARY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_AC_PRIMARY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_AC_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_AC_PRIMARY_RECORDTYPE)

[`MDS_CDSADIR_CL_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CL_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CL_ENCAPSULATED_PRODUCT_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CL_ENCAPSULATED_PRODUCT_RECORDTYPE)

[`MDS_CDSADIR_CL_PRIMARY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CL_PRIMARY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CL_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CL_PRIMARY_RECORDTYPE)

[`MDS_CDSADIR_COMMON_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_COMMON_NUM_ATTRIBUTES)

[`MDS_CDSADIR_COMMON_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_COMMON_RECORDTYPE)

[`MDS_CDSADIR_CSP_CAPABILITY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CSP_CAPABILITY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CSP_CAPABILITY_RECORDTYPE)

[`MDS_CDSADIR_CSP_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CSP_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CSP_ENCAPSULATED_PRODUCT_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CSP_ENCAPSULATED_PRODUCT_RECORDTYPE)

[`MDS_CDSADIR_CSP_PRIMARY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CSP_PRIMARY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CSP_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CSP_PRIMARY_RECORDTYPE)

[`MDS_CDSADIR_CSP_SC_INFO_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CSP_SC_INFO_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CSP_SC_INFO_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CSP_SC_INFO_RECORDTYPE)

[`MDS_CDSADIR_CSSM_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_CSSM_NUM_ATTRIBUTES)

[`MDS_CDSADIR_CSSM_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_CSSM_RECORDTYPE)

[`MDS_CDSADIR_DL_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_DL_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES)

[`MDS_CDSADIR_DL_ENCAPSULATED_PRODUCT_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_DL_ENCAPSULATED_PRODUCT_RECORDTYPE)

[`MDS_CDSADIR_DL_PRIMARY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_DL_PRIMARY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_DL_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_DL_PRIMARY_RECORDTYPE)

[`MDS_CDSADIR_EMM_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_EMM_NUM_ATTRIBUTES)

[`MDS_CDSADIR_EMM_PRIMARY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_EMM_PRIMARY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_EMM_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_EMM_PRIMARY_RECORDTYPE)

[`MDS_CDSADIR_EMM_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_EMM_RECORDTYPE)

[`MDS_CDSADIR_KRMM_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_KRMM_RECORDTYPE)

[`MDS_CDSADIR_KR_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_KR_PRIMARY_RECORDTYPE)

[`MDS_CDSADIR_MDS_SCHEMA_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_MDS_SCHEMA_ATTRIBUTES)

[`MDS_CDSADIR_MDS_SCHEMA_INDEXES`](/documentation/Security/MDS_CDSADIR_MDS_SCHEMA_INDEXES)

[`MDS_CDSADIR_MDS_SCHEMA_RELATIONS`](/documentation/Security/MDS_CDSADIR_MDS_SCHEMA_RELATIONS)

[`MDS_CDSADIR_NUM_RELATIONS`](/documentation/Security/MDS_CDSADIR_NUM_RELATIONS)

[`MDS_CDSADIR_SCHEMA_ATTRIBUTES_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_SCHEMA_ATTRIBUTES_NUM_ATTRIBUTES)

[`MDS_CDSADIR_SCHEMA_INDEXES_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_SCHEMA_INDEXES_NUM_ATTRIBUTES)

[`MDS_CDSADIR_SCHEMA_RELATONS_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_SCHEMA_RELATONS_NUM_ATTRIBUTES)

[`MDS_CDSADIR_TP_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_TP_ENCAPSULATED_PRODUCT_NUM_ATTRIBUTES)

[`MDS_CDSADIR_TP_ENCAPSULATED_PRODUCT_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_TP_ENCAPSULATED_PRODUCT_RECORDTYPE)

[`MDS_CDSADIR_TP_OIDS_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_TP_OIDS_NUM_ATTRIBUTES)

[`MDS_CDSADIR_TP_OIDS_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_TP_OIDS_RECORDTYPE)

[`MDS_CDSADIR_TP_PRIMARY_NUM_ATTRIBUTES`](/documentation/Security/MDS_CDSADIR_TP_PRIMARY_NUM_ATTRIBUTES)

[`MDS_CDSADIR_TP_PRIMARY_RECORDTYPE`](/documentation/Security/MDS_CDSADIR_TP_PRIMARY_RECORDTYPE)

[`MDS_CDSA_DIRECTORY_NAME`](/documentation/Security/MDS_CDSA_DIRECTORY_NAME)

[`MDS_CDSA_SCHEMA_START`](/documentation/Security/MDS_CDSA_SCHEMA_START)

[`MDS_OBJECT_DIRECTORY_NAME`](/documentation/Security/MDS_OBJECT_DIRECTORY_NAME)

[`MDS_OBJECT_NUM_ATTRIBUTES`](/documentation/Security/MDS_OBJECT_NUM_ATTRIBUTES)

[`MDS_OBJECT_NUM_RELATIONS`](/documentation/Security/MDS_OBJECT_NUM_RELATIONS)

[`MDS_OBJECT_RECORDTYPE`](/documentation/Security/MDS_OBJECT_RECORDTYPE)

[`MDS_DB_HANDLE`](/documentation/Security/MDS_DB_HANDLE)

[`MDS_FUNCS`](/documentation/Security/MDS_FUNCS-c.typealias)

[`MDS_FUNCS_PTR`](/documentation/Security/MDS_FUNCS_PTR)

[`MDS_HANDLE`](/documentation/Security/MDS_HANDLE)

### Protocols

[`OS_sec_certificate`](/documentation/Security/OS_sec_certificate)

[`OS_sec_identity`](/documentation/Security/OS_sec_identity)

[`OS_sec_object`](/documentation/Security/OS_sec_object)

A `sec_object` is a generic, ARC-able type wrapper for common CoreFoundation Security types.

[`OS_sec_protocol_metadata`](/documentation/Security/OS_sec_protocol_metadata)

A `sec_protocol_metadata` instance conatins read-only properties of a connected and configured
security protocol. Clients use this object to read information about a protocol instance. Properties
include, for example, the negotiated TLS version, ciphersuite, and peer certificates.

[`OS_sec_protocol_options`](/documentation/Security/OS_sec_protocol_options)

A `sec_protocol_options` instance is a container of options for security protocol instances,
such as TLS. Protocol options are used to configure security protocols in the network stack.
For example, clients may set the maximum and minimum allowed TLS versions through protocol
options.

[`OS_sec_trust`](/documentation/Security/OS_sec_trust)

These are os_object compatible and ARC-able wrappers around existing CoreFoundation
Security types, including: SecTrustRef, SecIdentityRef, and SecCertificateRef. They allow
clients to use these types in os_object-type APIs and data structures. The underlying
CoreFoundation types may be extracted and used by clients as needed.

### Variables

[`gGuidAppleCSP`](/documentation/Security/gGuidAppleCSP)

[`gGuidAppleCSPDL`](/documentation/Security/gGuidAppleCSPDL)

[`gGuidAppleDotMacDL`](/documentation/Security/gGuidAppleDotMacDL)

[`gGuidAppleDotMacTP`](/documentation/Security/gGuidAppleDotMacTP)

[`gGuidAppleFileDL`](/documentation/Security/gGuidAppleFileDL)

[`gGuidAppleLDAPDL`](/documentation/Security/gGuidAppleLDAPDL)

[`gGuidAppleSdCSPDL`](/documentation/Security/gGuidAppleSdCSPDL)

[`gGuidAppleX509CL`](/documentation/Security/gGuidAppleX509CL)

[`gGuidAppleX509TP`](/documentation/Security/gGuidAppleX509TP)

[`gGuidCssm`](/documentation/Security/gGuidCssm)

### Functions

[`sec_certificate_copy_ref(_:)`](/documentation/Security/sec_certificate_copy_ref(_:))

[`sec_certificate_create(_:)`](/documentation/Security/sec_certificate_create(_:))

[`sec_identity_access_certificates(_:_:)`](/documentation/Security/sec_identity_access_certificates(_:_:))

[`sec_identity_copy_certificates_ref(_:)`](/documentation/Security/sec_identity_copy_certificates_ref(_:))

[`sec_identity_copy_ref(_:)`](/documentation/Security/sec_identity_copy_ref(_:))

[`sec_identity_create(_:)`](/documentation/Security/sec_identity_create(_:))

[`sec_identity_create_with_certificates(_:_:)`](/documentation/Security/sec_identity_create_with_certificates(_:_:))

[`sec_protocol_metadata_access_distinguished_names(_:_:)`](/documentation/Security/sec_protocol_metadata_access_distinguished_names(_:_:))

[`sec_protocol_metadata_access_ocsp_response(_:_:)`](/documentation/Security/sec_protocol_metadata_access_ocsp_response(_:_:))

[`sec_protocol_metadata_access_peer_certificate_chain(_:_:)`](/documentation/Security/sec_protocol_metadata_access_peer_certificate_chain(_:_:))

[`sec_protocol_metadata_access_pre_shared_keys(_:_:)`](/documentation/Security/sec_protocol_metadata_access_pre_shared_keys(_:_:))

[`sec_protocol_metadata_access_supported_signature_algorithms(_:_:)`](/documentation/Security/sec_protocol_metadata_access_supported_signature_algorithms(_:_:))

[`sec_protocol_metadata_challenge_parameters_are_equal(_:_:)`](/documentation/Security/sec_protocol_metadata_challenge_parameters_are_equal(_:_:))

[`sec_protocol_metadata_copy_peer_public_key(_:)`](/documentation/Security/sec_protocol_metadata_copy_peer_public_key(_:))

[`sec_protocol_metadata_create_secret(_:_:_:_:)`](/documentation/Security/sec_protocol_metadata_create_secret(_:_:_:_:))

[`sec_protocol_metadata_create_secret_with_context(_:_:_:_:_:_:)`](/documentation/Security/sec_protocol_metadata_create_secret_with_context(_:_:_:_:_:_:))

[`sec_protocol_metadata_get_early_data_accepted(_:)`](/documentation/Security/sec_protocol_metadata_get_early_data_accepted(_:))

[`sec_protocol_metadata_get_negotiated_ciphersuite(_:)`](/documentation/Security/sec_protocol_metadata_get_negotiated_ciphersuite(_:))

[`sec_protocol_metadata_get_negotiated_protocol(_:)`](/documentation/Security/sec_protocol_metadata_get_negotiated_protocol(_:))

[`sec_protocol_metadata_get_negotiated_protocol_version(_:)`](/documentation/Security/sec_protocol_metadata_get_negotiated_protocol_version(_:))

[`sec_protocol_metadata_get_negotiated_tls_ciphersuite(_:)`](/documentation/Security/sec_protocol_metadata_get_negotiated_tls_ciphersuite(_:))

[`sec_protocol_metadata_get_negotiated_tls_protocol_version(_:)`](/documentation/Security/sec_protocol_metadata_get_negotiated_tls_protocol_version(_:))

[`sec_protocol_metadata_get_server_name(_:)`](/documentation/Security/sec_protocol_metadata_get_server_name(_:))

[`sec_protocol_metadata_peers_are_equal(_:_:)`](/documentation/Security/sec_protocol_metadata_peers_are_equal(_:_:))

[`sec_protocol_options_add_pre_shared_key(_:_:_:)`](/documentation/Security/sec_protocol_options_add_pre_shared_key(_:_:_:))

[`sec_protocol_options_add_tls_application_protocol(_:_:)`](/documentation/Security/sec_protocol_options_add_tls_application_protocol(_:_:))

[`sec_protocol_options_add_tls_ciphersuite(_:_:)`](/documentation/Security/sec_protocol_options_add_tls_ciphersuite(_:_:))

[`sec_protocol_options_add_tls_ciphersuite_group(_:_:)`](/documentation/Security/sec_protocol_options_add_tls_ciphersuite_group(_:_:))

[`sec_protocol_options_append_tls_ciphersuite(_:_:)`](/documentation/Security/sec_protocol_options_append_tls_ciphersuite(_:_:))

[`sec_protocol_options_append_tls_ciphersuite_group(_:_:)`](/documentation/Security/sec_protocol_options_append_tls_ciphersuite_group(_:_:))

[`sec_protocol_options_are_equal(_:_:)`](/documentation/Security/sec_protocol_options_are_equal(_:_:))

[`sec_protocol_options_get_default_max_dtls_protocol_version()`](/documentation/Security/sec_protocol_options_get_default_max_dtls_protocol_version())

[`sec_protocol_options_get_default_max_tls_protocol_version()`](/documentation/Security/sec_protocol_options_get_default_max_tls_protocol_version())

[`sec_protocol_options_get_default_min_dtls_protocol_version()`](/documentation/Security/sec_protocol_options_get_default_min_dtls_protocol_version())

[`sec_protocol_options_get_default_min_tls_protocol_version()`](/documentation/Security/sec_protocol_options_get_default_min_tls_protocol_version())

[`sec_protocol_options_get_enable_encrypted_client_hello`](/documentation/Security/sec_protocol_options_get_enable_encrypted_client_hello)

[`sec_protocol_options_get_quic_use_legacy_codepoint`](/documentation/Security/sec_protocol_options_get_quic_use_legacy_codepoint)

[`sec_protocol_options_set_challenge_block(_:_:_:)`](/documentation/Security/sec_protocol_options_set_challenge_block(_:_:_:))

[`sec_protocol_options_set_enable_encrypted_client_hello`](/documentation/Security/sec_protocol_options_set_enable_encrypted_client_hello)

[`sec_protocol_options_set_key_update_block(_:_:_:)`](/documentation/Security/sec_protocol_options_set_key_update_block(_:_:_:))

[`sec_protocol_options_set_local_identity(_:_:)`](/documentation/Security/sec_protocol_options_set_local_identity(_:_:))

[`sec_protocol_options_set_max_tls_protocol_version(_:_:)`](/documentation/Security/sec_protocol_options_set_max_tls_protocol_version(_:_:))

[`sec_protocol_options_set_min_tls_protocol_version(_:_:)`](/documentation/Security/sec_protocol_options_set_min_tls_protocol_version(_:_:))

[`sec_protocol_options_set_peer_authentication_optional`](/documentation/Security/sec_protocol_options_set_peer_authentication_optional)

[`sec_protocol_options_set_peer_authentication_required(_:_:)`](/documentation/Security/sec_protocol_options_set_peer_authentication_required(_:_:))

[`sec_protocol_options_set_pre_shared_key_selection_block(_:_:_:)`](/documentation/Security/sec_protocol_options_set_pre_shared_key_selection_block(_:_:_:))

[`sec_protocol_options_set_quic_use_legacy_codepoint`](/documentation/Security/sec_protocol_options_set_quic_use_legacy_codepoint)

[`sec_protocol_options_set_tls_diffie_hellman_parameters(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_diffie_hellman_parameters(_:_:))

[`sec_protocol_options_set_tls_false_start_enabled(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_false_start_enabled(_:_:))

[`sec_protocol_options_set_tls_is_fallback_attempt(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_is_fallback_attempt(_:_:))

[`sec_protocol_options_set_tls_max_version(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_max_version(_:_:))

[`sec_protocol_options_set_tls_min_version(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_min_version(_:_:))

[`sec_protocol_options_set_tls_ocsp_enabled(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_ocsp_enabled(_:_:))

[`sec_protocol_options_set_tls_pre_shared_key_identity_hint(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_pre_shared_key_identity_hint(_:_:))

[`sec_protocol_options_set_tls_renegotiation_enabled(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_renegotiation_enabled(_:_:))

[`sec_protocol_options_set_tls_resumption_enabled(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_resumption_enabled(_:_:))

[`sec_protocol_options_set_tls_sct_enabled(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_sct_enabled(_:_:))

[`sec_protocol_options_set_tls_server_name(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_server_name(_:_:))

[`sec_protocol_options_set_tls_tickets_enabled(_:_:)`](/documentation/Security/sec_protocol_options_set_tls_tickets_enabled(_:_:))

[`sec_protocol_options_set_verify_block(_:_:_:)`](/documentation/Security/sec_protocol_options_set_verify_block(_:_:_:))

[`sec_release(_:)`](/documentation/Security/sec_release(_:))

[`sec_retain(_:)`](/documentation/Security/sec_retain(_:))

[`sec_trust_copy_ref(_:)`](/documentation/Security/sec_trust_copy_ref(_:))

[`sec_trust_create(_:)`](/documentation/Security/sec_trust_create(_:))

### Macros

[`SECUREDOWNLOAD_API_DEPRECATED`](/documentation/Security/SECUREDOWNLOAD_API_DEPRECATED)

[`SEC_ASN1_API_DEPRECATED`](/documentation/Security/SEC_ASN1_API_DEPRECATED)

[`SEC_ASSUME_NONNULL_BEGIN`](/documentation/Security/SEC_ASSUME_NONNULL_BEGIN)

[`SEC_ASSUME_NONNULL_END`](/documentation/Security/SEC_ASSUME_NONNULL_END)

[`SEC_DEPRECATED_ATTRIBUTE`](/documentation/Security/SEC_DEPRECATED_ATTRIBUTE)

[`SEC_HAS_LIBDER`](/documentation/Security/SEC_HAS_LIBDER)

[`SEC_OBJECT_DECL`](/documentation/Security/SEC_OBJECT_DECL)

[`SEC_RETURNS_RETAINED`](/documentation/Security/SEC_RETURNS_RETAINED)

[`SEC_SUFFIX_LEGACYMAC`](/documentation/Security/SEC_SUFFIX_LEGACYMAC)

[`SecCEGeneralNameType`](/documentation/Security/SecCEGeneralNameType)

[`errSSLClientAuthCompleted`](/documentation/Security/errSSLClientAuthCompleted)

[`errSSLLast`](/documentation/Security/errSSLLast)

[`errSSLServerAuthCompleted`](/documentation/Security/errSSLServerAuthCompleted)

The server certificate is either valid or was ignored if verification is disabled.

[`errSecErrnoBase`](/documentation/Security/errSecErrnoBase)

[`errSecErrnoLimit`](/documentation/Security/errSecErrnoLimit)

[`kKeychainSuffix`](/documentation/Security/kKeychainSuffix)

[`kSystemKeychainDir`](/documentation/Security/kSystemKeychainDir)

[`kSystemKeychainName`](/documentation/Security/kSystemKeychainName)

[`kSystemKeychainPath`](/documentation/Security/kSystemKeychainPath)

[`kSystemUnlockFile`](/documentation/Security/kSystemUnlockFile)

### Type aliases

[`SecAsn1Template`](/documentation/Security/SecAsn1Template)

A structure that defines one element of a BER or DER encoding.

[`sec_certificate_t`](/documentation/Security/sec_certificate_t)

[`sec_identity_t`](/documentation/Security/sec_identity_t)

[`sec_object_t`](/documentation/Security/sec_object_t)

A `sec_object` is a generic, ARC-able type wrapper for common CoreFoundation Security types.

[`sec_protocol_challenge_complete_t`](/documentation/Security/sec_protocol_challenge_complete_t)

[`sec_protocol_challenge_t`](/documentation/Security/sec_protocol_challenge_t)

[`sec_protocol_key_update_complete_t`](/documentation/Security/sec_protocol_key_update_complete_t)

[`sec_protocol_key_update_t`](/documentation/Security/sec_protocol_key_update_t)

[`sec_protocol_metadata_t`](/documentation/Security/sec_protocol_metadata_t)

A `sec_protocol_metadata` instance conatins read-only properties of a connected and configured
security protocol. Clients use this object to read information about a protocol instance. Properties
include, for example, the negotiated TLS version, ciphersuite, and peer certificates.

[`sec_protocol_options_t`](/documentation/Security/sec_protocol_options_t)

A `sec_protocol_options` instance is a container of options for security protocol instances,
such as TLS. Protocol options are used to configure security protocols in the network stack.
For example, clients may set the maximum and minimum allowed TLS versions through protocol
options.

[`sec_protocol_pre_shared_key_selection_complete_t`](/documentation/Security/sec_protocol_pre_shared_key_selection_complete_t)

[`sec_protocol_pre_shared_key_selection_t`](/documentation/Security/sec_protocol_pre_shared_key_selection_t)

[`sec_protocol_verify_complete_t`](/documentation/Security/sec_protocol_verify_complete_t)

[`sec_protocol_verify_t`](/documentation/Security/sec_protocol_verify_t)

[`sec_trust_t`](/documentation/Security/sec_trust_t)

These are os_object compatible and ARC-able wrappers around existing CoreFoundation
Security types, including: SecTrustRef, SecIdentityRef, and SecCertificateRef. They allow
clients to use these types in os_object-type APIs and data structures. The underlying
CoreFoundation types may be extracted and used by clients as needed.

[`sint16`](/documentation/Security/sint16)

[`sint32`](/documentation/Security/sint32)

[`sint64`](/documentation/Security/sint64)

[`sint8`](/documentation/Security/sint8)

[`uint16`](/documentation/Security/uint16)

[`uint32`](/documentation/Security/uint32)

[`uint64`](/documentation/Security/uint64)

[`uint8`](/documentation/Security/uint8)

### Enumerations

[`extension_data_format`](/documentation/Security/extension_data_format)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)