---
title: Secure Transport
framework: security
role: collectionGroup
role_heading: API Collection
path: security/secure-transport
---

# Secure Transport

Secure network communication using standardized transport layer security mechanisms.

## Overview

Overview The Security.SecureTransport API gives you access to Apple’s implementation of Secure Sockets Layer version 3.0 (SSLv3), Transport Layer Security (TLS) versions 1.0 through 1.2, and Datagram Transport Layer Security (DTLS) version 1.0. This API imposes no transport layer dependencies. You can use it with BSD Sockets and other protocols. To use this API, you provide callback functions to perform I/O on the underlying network connections. You are also responsible for setting up raw network connections. You pass in an opaque reference to the underlying (connected) entity at the start of an SSL session in the form of an SSLConnectionRef object. important: This API is considered legacy. Use the Network framework instead.

## Topics

### First Steps

- [Using the Secure Socket Layer for Network Communication](security/using-the-secure-socket-layer-for-network-communication.md)

### Session Context

- [SSLCreateContext(_:_:_:)](security/sslcreatecontext(_:_:_:).md)
- [SSLProtocolSide](security/sslprotocolside.md)
- [SSLConnectionType](security/sslconnectiontype.md)
- [SSLContext](security/sslcontext.md)
- [SSLContextGetTypeID()](security/sslcontextgettypeid().md)

### Context Options

- [SSLSetSessionOption(_:_:_:)](security/sslsetsessionoption(_:_:_:).md)
- [SSLGetSessionOption(_:_:_:)](security/sslgetsessionoption(_:_:_:).md)
- [SSLSessionOption](security/sslsessionoption.md)

### Context Callbacks

- [SSLSetIOFuncs(_:_:_:)](security/sslsetiofuncs(_:_:_:).md)
- [SSLReadFunc](security/sslreadfunc.md)
- [SSLWriteFunc](security/sslwritefunc.md)

### Session Configuration

- [SSLSetSessionConfig(_:_:)](security/sslsetsessionconfig(_:_:).md)
- [SSLSetClientSideAuthenticate(_:_:)](security/sslsetclientsideauthenticate(_:_:).md)
- [SSLConfig](security/sslconfig.md)
- [SSLAuthenticate](security/sslauthenticate.md)

### I/O Connections

- [SSLSetConnection(_:_:)](security/sslsetconnection(_:_:).md)
- [SSLGetConnection(_:_:)](security/sslgetconnection(_:_:).md)
- [SSLConnectionRef](security/sslconnectionref.md)

### Session State

- [SSLHandshake(_:)](security/sslhandshake(_:).md)
- [SSLReHandshake(_:)](security/sslrehandshake(_:).md)
- [SSLClose(_:)](security/sslclose(_:).md)
- [SSLSetPeerID(_:_:_:)](security/sslsetpeerid(_:_:_:).md)
- [SSLGetPeerID(_:_:_:)](security/sslgetpeerid(_:_:_:).md)
- [SSLGetSessionState(_:_:)](security/sslgetsessionstate(_:_:).md)
- [SSLSessionState](security/sslsessionstate.md)
- [SSLSetError(_:_:)](security/sslseterror(_:_:).md)

### Read Operations

- [SSLRead(_:_:_:_:)](security/sslread(_:_:_:_:).md)
- [SSLGetBufferedReadSize(_:_:)](security/sslgetbufferedreadsize(_:_:).md)

### Write Operations

- [SSLWrite(_:_:_:_:)](security/sslwrite(_:_:_:_:).md)
- [SSLGetDatagramWriteSize(_:_:)](security/sslgetdatagramwritesize(_:_:).md)
- [SSLGetMaxDatagramRecordSize(_:_:)](security/sslgetmaxdatagramrecordsize(_:_:).md)
- [SSLSetMaxDatagramRecordSize(_:_:)](security/sslsetmaxdatagramrecordsize(_:_:).md)
- [SSLSetDatagramHelloCookie(_:_:_:)](security/sslsetdatagramhellocookie(_:_:_:).md)

### The Peer Domain Name

- [SSLSetPeerDomainName(_:_:_:)](security/sslsetpeerdomainname(_:_:_:).md)
- [SSLGetPeerDomainNameLength(_:_:)](security/sslgetpeerdomainnamelength(_:_:).md)
- [SSLGetPeerDomainName(_:_:_:)](security/sslgetpeerdomainname(_:_:_:).md)
- [SSLCopyRequestedPeerName(_:_:_:)](security/sslcopyrequestedpeername(_:_:_:).md)
- [SSLCopyRequestedPeerNameLength(_:_:)](security/sslcopyrequestedpeernamelength(_:_:).md)

### Versions

- [SSLSetProtocolVersionMax(_:_:)](security/sslsetprotocolversionmax(_:_:).md)
- [SSLSetProtocolVersionMin(_:_:)](security/sslsetprotocolversionmin(_:_:).md)
- [SSLGetProtocolVersionMax(_:_:)](security/sslgetprotocolversionmax(_:_:).md)
- [SSLGetProtocolVersionMin(_:_:)](security/sslgetprotocolversionmin(_:_:).md)
- [SSLGetNegotiatedProtocolVersion(_:_:)](security/sslgetnegotiatedprotocolversion(_:_:).md)
- [tls_protocol_version_t](security/tls_protocol_version_t.md)
- [SSLProtocol](security/sslprotocol.md)

### Application Layer Protocols

- [SSLCopyALPNProtocols(_:_:)](security/sslcopyalpnprotocols(_:_:).md)
- [SSLSetALPNProtocols(_:_:)](security/sslsetalpnprotocols(_:_:).md)

### Ciphers

- [SSLGetNumberSupportedCiphers(_:_:)](security/sslgetnumbersupportedciphers(_:_:).md)
- [SSLGetSupportedCiphers(_:_:_:)](security/sslgetsupportedciphers(_:_:_:).md)
- [SSLSetEnabledCiphers(_:_:_:)](security/sslsetenabledciphers(_:_:_:).md)
- [SSLGetNumberEnabledCiphers(_:_:)](security/sslgetnumberenabledciphers(_:_:).md)
- [SSLGetEnabledCiphers(_:_:_:)](security/sslgetenabledciphers(_:_:_:).md)
- [SSLGetNegotiatedCipher(_:_:)](security/sslgetnegotiatedcipher(_:_:).md)
- [SSLSetDiffieHellmanParams(_:_:_:)](security/sslsetdiffiehellmanparams(_:_:_:).md)
- [SSLGetDiffieHellmanParams(_:_:_:)](security/sslgetdiffiehellmanparams(_:_:_:).md)
- [tls_ciphersuite_group_t](security/tls_ciphersuite_group_t.md)
- [tls_ciphersuite_t](security/tls_ciphersuite_t.md)
- [SSLCipherSuite](security/sslciphersuite.md)
- [SSLCiphersuiteGroup](security/sslciphersuitegroup.md)
- [SSL Cipher Suite Values](security/ssl-cipher-suite-values.md)

### Root Certificates

- [SSLSetCertificateAuthorities(_:_:_:)](security/sslsetcertificateauthorities(_:_:_:).md)
- [SSLCopyCertificateAuthorities(_:_:)](security/sslcopycertificateauthorities(_:_:).md)

### Authentication

- [SSLAddDistinguishedName(_:_:_:)](security/ssladddistinguishedname(_:_:_:).md)
- [SSLCopyDistinguishedNames(_:_:)](security/sslcopydistinguishednames(_:_:).md)
- [SSLSetCertificate(_:_:)](security/sslsetcertificate(_:_:).md)
- [SSLGetClientCertificateState(_:_:)](security/sslgetclientcertificatestate(_:_:).md)
- [SSLCopyPeerTrust(_:_:)](security/sslcopypeertrust(_:_:).md)
- [SSLClientCertificateState](security/sslclientcertificatestate.md)
- [SSLSetOCSPResponse(_:_:)](security/sslsetocspresponse(_:_:).md)
- [SSLSetSessionTicketsEnabled(_:_:)](security/sslsetsessionticketsenabled(_:_:).md)

### Result Codes

- [Secure Transport Result Codes](security/secure-transport-result-codes.md)

### Legacy Operations

- [SSLSetEncryptionCertificate(_:_:)](security/sslsetencryptioncertificate(_:_:).md)
