Function

SSLSetEnabledCiphers(_:_:_:)

Specifies a restricted set of SSL cipher suites to be enabled by the current SSL session context.

Declaration

func SSLSetEnabledCiphers(_ context: SSLContext, _ ciphers: UnsafePointer<SSLCipherSuite>, _ numCiphers: Int) -> OSStatus

Parameters

context

An SSL session context reference.

ciphers

A pointer to the cipher suites to enable.

numCiphers

The number of cipher suites to enable.

Return Value

A result code. See Secure Transport Result Codes.

Discussion

You can call this function, for example, to limit cipher suites to those that use exportable key sizes or to those supported by a particular protocol version.

This function can be called only when no session is active. The default set of enabled cipher suites is the complete set of supported cipher suites obtained by calling the SSLGetSupportedCiphers(_:_:_:) function.

Call the SSLGetEnabledCiphers(_:_:_:) function to determine which SSL cipher suites are currently enabled.

See Also

Ciphers

func SSLGetNumberSupportedCiphers(SSLContext, UnsafeMutablePointer<Int>) -> OSStatus

Determines the number of cipher suites supported.

Deprecated
func SSLGetNumberEnabledCiphers(SSLContext, UnsafeMutablePointer<Int>) -> OSStatus

Determines the number of cipher suites currently enabled.

Deprecated
func SSLGetNegotiatedCipher(SSLContext, UnsafeMutablePointer<SSLCipherSuite>) -> OSStatus

Retrieves the cipher suite negotiated for this session.

Deprecated
func SSLSetDiffieHellmanParams(SSLContext, UnsafeRawPointer?, Int) -> OSStatus

Specifies Diffie-Hellman parameters for a given context.

Deprecated
enum tls_ciphersuite_group_t

Groups that collect ciphersuites of comparable security properties.

Beta
enum tls_ciphersuite_t

The collection of valid ciphersuites.

Beta
typealias SSLCipherSuite

A type for storing cipher suite values.

enum SSLCiphersuiteGroup

A mechanism for grouping related cipher suites.

SSL Cipher Suite Values

Recognize the set of valid SSL cipher suite values.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software