Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/asio/ssl/context_base.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 // | |
2 // ssl/context_base.hpp | |
3 // ~~~~~~~~~~~~~~~~~~~~ | |
4 // | |
5 // Copyright (c) 2003-2013 Christopher M. Kohlhoff (chris at kohlhoff dot com) | |
6 // | |
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying | |
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 // | |
10 | |
11 #ifndef BOOST_ASIO_SSL_CONTEXT_BASE_HPP | |
12 #define BOOST_ASIO_SSL_CONTEXT_BASE_HPP | |
13 | |
14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) | |
15 # pragma once | |
16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) | |
17 | |
18 #include <boost/asio/detail/config.hpp> | |
19 #include <boost/asio/ssl/detail/openssl_types.hpp> | |
20 | |
21 #include <boost/asio/detail/push_options.hpp> | |
22 | |
23 namespace boost { | |
24 namespace asio { | |
25 namespace ssl { | |
26 | |
27 /// The context_base class is used as a base for the basic_context class | |
28 /// template so that we have a common place to define various enums. | |
29 class context_base | |
30 { | |
31 public: | |
32 /// Different methods supported by a context. | |
33 enum method | |
34 { | |
35 /// Generic SSL version 2. | |
36 sslv2, | |
37 | |
38 /// SSL version 2 client. | |
39 sslv2_client, | |
40 | |
41 /// SSL version 2 server. | |
42 sslv2_server, | |
43 | |
44 /// Generic SSL version 3. | |
45 sslv3, | |
46 | |
47 /// SSL version 3 client. | |
48 sslv3_client, | |
49 | |
50 /// SSL version 3 server. | |
51 sslv3_server, | |
52 | |
53 /// Generic TLS version 1. | |
54 tlsv1, | |
55 | |
56 /// TLS version 1 client. | |
57 tlsv1_client, | |
58 | |
59 /// TLS version 1 server. | |
60 tlsv1_server, | |
61 | |
62 /// Generic SSL/TLS. | |
63 sslv23, | |
64 | |
65 /// SSL/TLS client. | |
66 sslv23_client, | |
67 | |
68 /// SSL/TLS server. | |
69 sslv23_server, | |
70 | |
71 /// Generic TLS version 1.1. | |
72 tlsv11, | |
73 | |
74 /// TLS version 1.1 client. | |
75 tlsv11_client, | |
76 | |
77 /// TLS version 1.1 server. | |
78 tlsv11_server, | |
79 | |
80 /// Generic TLS version 1.2. | |
81 tlsv12, | |
82 | |
83 /// TLS version 1.2 client. | |
84 tlsv12_client, | |
85 | |
86 /// TLS version 1.2 server. | |
87 tlsv12_server | |
88 }; | |
89 | |
90 /// Bitmask type for SSL options. | |
91 typedef long options; | |
92 | |
93 #if defined(GENERATING_DOCUMENTATION) | |
94 /// Implement various bug workarounds. | |
95 static const long default_workarounds = implementation_defined; | |
96 | |
97 /// Always create a new key when using tmp_dh parameters. | |
98 static const long single_dh_use = implementation_defined; | |
99 | |
100 /// Disable SSL v2. | |
101 static const long no_sslv2 = implementation_defined; | |
102 | |
103 /// Disable SSL v3. | |
104 static const long no_sslv3 = implementation_defined; | |
105 | |
106 /// Disable TLS v1. | |
107 static const long no_tlsv1 = implementation_defined; | |
108 | |
109 /// Disable compression. Compression is disabled by default. | |
110 static const long no_compression = implementation_defined; | |
111 #else | |
112 BOOST_ASIO_STATIC_CONSTANT(long, default_workarounds = SSL_OP_ALL); | |
113 BOOST_ASIO_STATIC_CONSTANT(long, single_dh_use = SSL_OP_SINGLE_DH_USE); | |
114 BOOST_ASIO_STATIC_CONSTANT(long, no_sslv2 = SSL_OP_NO_SSLv2); | |
115 BOOST_ASIO_STATIC_CONSTANT(long, no_sslv3 = SSL_OP_NO_SSLv3); | |
116 BOOST_ASIO_STATIC_CONSTANT(long, no_tlsv1 = SSL_OP_NO_TLSv1); | |
117 # if defined(SSL_OP_NO_COMPRESSION) | |
118 BOOST_ASIO_STATIC_CONSTANT(long, no_compression = SSL_OP_NO_COMPRESSION); | |
119 # else // defined(SSL_OP_NO_COMPRESSION) | |
120 BOOST_ASIO_STATIC_CONSTANT(long, no_compression = 0x20000L); | |
121 # endif // defined(SSL_OP_NO_COMPRESSION) | |
122 #endif | |
123 | |
124 /// File format types. | |
125 enum file_format | |
126 { | |
127 /// ASN.1 file. | |
128 asn1, | |
129 | |
130 /// PEM file. | |
131 pem | |
132 }; | |
133 | |
134 #if !defined(GENERATING_DOCUMENTATION) | |
135 // The following types and constants are preserved for backward compatibility. | |
136 // New programs should use the equivalents of the same names that are defined | |
137 // in the boost::asio::ssl namespace. | |
138 typedef int verify_mode; | |
139 BOOST_ASIO_STATIC_CONSTANT(int, verify_none = SSL_VERIFY_NONE); | |
140 BOOST_ASIO_STATIC_CONSTANT(int, verify_peer = SSL_VERIFY_PEER); | |
141 BOOST_ASIO_STATIC_CONSTANT(int, | |
142 verify_fail_if_no_peer_cert = SSL_VERIFY_FAIL_IF_NO_PEER_CERT); | |
143 BOOST_ASIO_STATIC_CONSTANT(int, verify_client_once = SSL_VERIFY_CLIENT_ONCE); | |
144 #endif | |
145 | |
146 /// Purpose of PEM password. | |
147 enum password_purpose | |
148 { | |
149 /// The password is needed for reading/decryption. | |
150 for_reading, | |
151 | |
152 /// The password is needed for writing/encryption. | |
153 for_writing | |
154 }; | |
155 | |
156 protected: | |
157 /// Protected destructor to prevent deletion through this type. | |
158 ~context_base() | |
159 { | |
160 } | |
161 }; | |
162 | |
163 } // namespace ssl | |
164 } // namespace asio | |
165 } // namespace boost | |
166 | |
167 #include <boost/asio/detail/pop_options.hpp> | |
168 | |
169 #endif // BOOST_ASIO_SSL_CONTEXT_BASE_HPP |