2 * Copyright (c) 2012,2014 Apple Inc. All Rights Reserved.
4 * @APPLE_LICENSE_HEADER_START@
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
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.
21 * @APPLE_LICENSE_HEADER_END@
25 #ifndef __TLSSOCKET_H__
26 #define __TLSSOCKET_H__
28 #include <Security/SecureTransportPriv.h>
31 Attach the TLS socket filter.
33 This makes a socket a TLS socket by attaching the TLS socket filter to that socket.
34 Return a positive TLS handle or a negative error.
35 The return TLS handle can be used to route VPN data directly through this TLS
38 int TLSSocket_Attach(int socket
);
41 Detach the TLS socket filter.
43 Return 0 or negative error.
44 If the TLS Socket is used with SecureTransport, one should make sure
45 to tear down the SecureTransport session before calling this.
46 It is not required to use this, as closing the socket would have the same effect.
48 int TLSSocket_Detach(int socket
);
51 Secure Transport Record Layer functions for TLS Sockets.
53 To use SecureTransport with a TLS kernel socket, pass this to SSLSetRecordFuncs and
54 the socket descriptor to SSLSetRecordContext
56 const struct SSLRecordFuncs TLSSocket_Funcs
;