]>
Commit | Line | Data |
---|---|---|
d8f41ccd A |
1 | /* |
2 | * Copyright (c) 2002,2005-2007,2010-2011,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 | * tls_record.h - Declarations of record layer callout struct to provide indirect calls to | |
26 | * SSLv3 and TLS routines. | |
27 | */ | |
28 | ||
29 | #ifndef _TLS_RECORD_INTERNAL_H_ | |
30 | #define _TLS_RECORD_INTERNAL_H_ | |
31 | ||
32 | #ifdef __cplusplus | |
33 | extern "C" { | |
34 | #endif | |
35 | ||
36 | // #include "sslRecord.h" | |
37 | ||
38 | #include "sslTypes.h" | |
d8f41ccd A |
39 | #include "sslMemory.h" |
40 | #include "SSLRecordInternal.h" | |
5c19dc3a | 41 | #include "sslContext.h" |
d8f41ccd A |
42 | |
43 | #include <tls_record.h> | |
44 | ||
45 | struct SSLRecordInternalContext; | |
46 | ||
47 | typedef struct WaitingRecord | |
48 | { struct WaitingRecord *next; | |
49 | size_t sent; | |
50 | /* | |
51 | * These two fields replace a dynamically allocated SSLBuffer; | |
52 | * the payload to write is contained in the variable-length | |
53 | * array data[]. | |
54 | */ | |
55 | size_t length; | |
56 | uint8_t data[1]; | |
57 | } WaitingRecord; | |
58 | ||
59 | ||
60 | struct SSLRecordInternalContext | |
61 | { | |
62 | tls_record_t filter; | |
d8f41ccd | 63 | |
5c19dc3a A |
64 | /* Reference back to the SSLContext */ |
65 | SSLContextRef sslCtx; | |
66 | ||
d8f41ccd A |
67 | /* buffering */ |
68 | SSLBuffer partialReadBuffer; | |
69 | size_t amountRead; | |
70 | ||
71 | WaitingRecord *recordWriteQueue; | |
72 | }; | |
73 | ||
74 | #ifdef __cplusplus | |
75 | } | |
76 | #endif | |
77 | ||
78 | #endif /* _TLS_SSL_H_ */ |