summaryrefslogtreecommitdiffstats
path: root/ssl/ssl.h
AgeCommit message (Collapse)Author
2013-11-02Extend SSL_CONFDr. Stephen Henson
Extend SSL_CONF to return command value types. Add certificate and key options. Update documentation. (cherry picked from commit ec2f7e568ea18a22ab57326fffe78ef2aa6884f5)
2013-10-20Do not include a timestamp in the Client/ServerHello Random field.Nick Mathewson
Instead, send random bytes, unless SSL_SEND_{CLIENT,SERVER}RANDOM_MODE is set. This is a forward-port of commits: 4af793036f6ef4f0a1078e5d7155426a98d50e37 f4c93b46edb51da71f09eda99e83eaf193a33c08 3da721dac9382c48812c8eba455528fd59af2eef 2583270191a8b27eed303c03ece1da97b9b69fd3 While the gmt_unix_time record was added in an ostensible attempt to mitigate the dangers of a bad RNG, its presence leaks the host's view of the current time in the clear. This minor leak can help fingerprint TLS instances across networks and protocols... and what's worse, it's doubtful thet the gmt_unix_time record does any good at all for its intended purpose, since: * It's quite possible to open two TLS connections in one second. * If the PRNG output is prone to repeat itself, ephemeral handshakes (and who knows what else besides) are broken.
2013-10-01Merge remote-tracking branch 'agl/1.0.2alpn' into agl-alpnBen Laurie
Conflicts: ssl/ssl3.h ssl/t1_lib.c
2013-09-24Show useful errors.Ben Laurie
2013-09-18Suite B support for DTLS 1.2Dr. Stephen Henson
Check for Suite B support using method flags instead of version numbers: anything supporting TLS 1.2 cipher suites will also support Suite B. Return an error if an attempt to use DTLS 1.0 is made in Suite B mode. (cherry picked from commit 4544f0a69161a37ee3edce3cc1bc34c3678a4d64)
2013-09-18Dual DTLS version methods.Dr. Stephen Henson
Add new methods DTLS_*_method() which support both DTLS 1.0 and DTLS 1.2 and pick the highest version the peer supports during negotiation. As with SSL/TLS options can change this behaviour specifically SSL_OP_NO_DTLSv1 and SSL_OP_NO_DTLSv1_2. (cherry picked from commit c6913eeb762edffddecaaba5c84909d7a7962927) Conflicts: CHANGES
2013-09-18Provisional DTLS 1.2 support.Dr. Stephen Henson
Add correct flags for DTLS 1.2, update s_server and s_client to handle DTLS 1.2 methods. Currently no support for version negotiation: i.e. if client/server selects DTLS 1.2 it is that or nothing. (cherry picked from commit c3b344e36a088283731b4f65a70e85b100f55686) Conflicts: apps/s_server.c
2013-09-16Don't prefer ECDHE-ECDSA ciphers when the client appears to be Safari on OS X.Rob Stradling
OS X 10.8..10.8.3 has broken support for ECDHE-ECDSA ciphers.
2013-09-13Support ALPN.Adam Langley
This change adds support for ALPN[1] in OpenSSL. ALPN is the IETF blessed version of NPN and we'll be supporting both ALPN and NPN for some time yet. Cherry-picked from 6f017a8f9db3a79f3a3406cf8d493ccd346db691. [1] https://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-00
2013-07-03Trying cherrypick:Trevor
Add support for arbitrary TLS extensions. Contributed by Trevor Perrin. Conflicts: CHANGES ssl/ssl.h ssl/ssltest.c test/testssl Fix compilation due to #endif. Cherrypicking more stuff. Cleanup of custom extension stuff. serverinfo rejects non-empty extensions. Omit extension if no relevant serverinfo data. Improve error-handling in serverinfo callback. Cosmetic cleanups. s_client documentation. s_server documentation. SSL_CTX_serverinfo documentation. Cleaup -1 and NULL callback handling for custom extensions, add tests. Cleanup ssl_rsa.c serverinfo code. Whitespace cleanup. Improve comments in ssl.h for serverinfo. Whitespace. Cosmetic cleanup. Reject non-zero-len serverinfo extensions. Whitespace. Make it build. Conflicts: test/testssl
2013-06-04Fix missing/incorrect prototype.Ben Laurie
2013-05-15RFC6689 support: add missing commit (git noob alert).Andy Polyakov
2013-01-15Add support for broken protocol tests (backport from master branch)Dr. Stephen Henson
2012-12-29add SSL_CONF functions and documentation (backport from HEAD)Dr. Stephen Henson
2012-12-26SSL/TLS record tracing code (backport from HEAD).Dr. Stephen Henson
2012-12-26Add support for printing out and retrieving EC point formats extension.Dr. Stephen Henson
(backport from HEAD)
2012-12-26return error if Suite B mode is selected and TLS 1.2 can't be used.Dr. Stephen Henson
(backport from HEAD)
2012-12-26Add ctrl and utility functions to retrieve raw cipher list sent by client inDr. Stephen Henson
client hello message. Previously this could only be retrieved on an initial connection and it was impossible to determine the cipher IDs of any uknown ciphersuites. (backport from HEAD)
2012-12-26new ctrl to retrive value of received temporary key in server key exchange ↵Dr. Stephen Henson
message, print out details in s_client (backport from HEAD)
2012-12-26store and print out message digest peer signed with in TLS 1.2Dr. Stephen Henson
(backport from HEAD)
2012-12-26perform sanity checks on server certificate type as soon as it is received ↵Dr. Stephen Henson
instead of waiting until server key exchange (backport from HEAD)
2012-12-26give more meaningful error if presented with wrong certificate type by serverDr. Stephen Henson
(backport from HEAD)
2012-12-26Add three Suite B modes to TLS code, supporting RFC6460.Dr. Stephen Henson
(backport from HEAD)
2012-12-26Make tls1_check_chain return a set of flags indicating checks passedDr. Stephen Henson
by a certificate chain. Add additional tests to handle client certificates: checks for matching certificate type and issuer name comparison. Print out results of checks for each candidate chain tested in s_server/s_client. (backport from HEAD)
2012-12-26Abort handshake if signature algorithm used not supported by peer.Dr. Stephen Henson
(backport from HEAD)
2012-12-26check EC tmp key matches preferencesDr. Stephen Henson
(backport from HEAD)
2012-12-26typoDr. Stephen Henson
2012-12-26Add support for certificate stores in CERT structure. This makes itDr. Stephen Henson
possible to have different stores per SSL structure or one store in the parent SSL_CTX. Include distint stores for certificate chain verification and chain building. New ctrl SSL_CTRL_BUILD_CERT_CHAIN to build and store a certificate chain in CERT structure: returing an error if the chain cannot be built: this will allow applications to test if a chain is correctly configured. Note: if the CERT based stores are not set then the parent SSL_CTX store is used to retain compatibility with existing behaviour. (backport from HEAD)
2012-12-26Add new ctrl to retrieve client certificate types, print outDr. Stephen Henson
details in s_client. Also add ctrl to set client certificate types. If not used sensible values will be included based on supported signature algorithms: for example if we don't include any DSA signing algorithms the DSA certificate type is omitted. Fix restriction in old code where certificate types would be truncated if it exceeded TLS_CT_NUMBER. (backport from HEAD)
2012-12-26new function SSL_is_server to which returns 1 is the corresponding SSL ↵Dr. Stephen Henson
context is for a server (backport from HEAD)
2012-12-26Separate client and server permitted signature algorithm support: by defaultDr. Stephen Henson
the permitted signature algorithms for server and client authentication are the same but it is now possible to set different algorithms for client authentication only. (backport from HEAD)
2012-12-26Add certificate callback. If set this is called whenever a certificateDr. Stephen Henson
is required by client or server. An application can decide which certificate chain to present based on arbitrary criteria: for example supported signature algorithms. Add very simple example to s_server. This fixes many of the problems and restrictions of the existing client certificate callback: for example you can now clear existing certificates and specify the whole chain. (backport from HEAD)
2012-12-26Add new "valid_flags" field to CERT_PKEY structure which determines whatDr. Stephen Henson
the certificate can be used for (if anything). Set valid_flags field in new tls1_check_chain function. Simplify ssl_set_cert_masks which used to have similar checks in it. Add new "cert_flags" field to CERT structure and include a "strict mode". This enforces some TLS certificate requirements (such as only permitting certificate signature algorithms contained in the supported algorithms extension) which some implementations ignore: this option should be used with caution as it could cause interoperability issues. (backport from HEAD)
2012-12-26Reorganise supported signature algorithm extension processing.Dr. Stephen Henson
Only store encoded versions of peer and configured signature algorithms. Determine shared signature algorithms and cache the result along with NID equivalents of each algorithm. (backport from HEAD)
2012-12-26Add support for application defined signature algorithms for use withDr. Stephen Henson
TLS v1.2. These are sent as an extension for clients and during a certificate request for servers. TODO: add support for shared signature algorithms, respect shared algorithms when deciding which ciphersuites and certificates to permit. (backport from HEAD)
2012-12-26Make it possible to delete all certificates from an SSL structure.Dr. Stephen Henson
(backport from HEAD)
2012-06-07Rearrange and test authz extension.Ben Laurie
2012-06-03Reduce version skew: trivia (I hope).Ben Laurie
2012-05-29Don't insert in the middle.Ben Laurie
2012-05-29RFC 5878 support.Ben Laurie
2012-04-25Change value of SSL_OP_NO_TLSv1_1 to avoid clash with SSL_OP_ALL andDr. Stephen Henson
OpenSSL 1.0.0. Add CHANGES entry noting the consequences.
2012-04-24Submitted by: Peter Sylvester <peter.sylvester@edelweb.fr>Dr. Stephen Henson
Reviewed by: steve Improved localisation of TLS extension handling and code tidy.
2012-04-18correct error codeDr. Stephen Henson
2012-04-06Add support for automatic ECDH temporary key parameter selection. WhenDr. Stephen Henson
enabled instead of requiring an application to hard code a (possibly inappropriate) parameter set and delve into EC internals we just automatically use the preferred curve. (backport from HEAD)
2012-04-06Initial revision of ECC extension handling.Dr. Stephen Henson
Tidy some code up. Don't allocate a structure to handle ECC extensions when it is used for default values. Make supported curves configurable. Add ctrls to retrieve shared curves: not fully integrated with rest of ECC code yet. (backport from HEAD)
2012-04-06New ctrls to retrieve supported signature algorithms and curves andDr. Stephen Henson
extensions to s_client and s_server to print out retrieved valued. Extend CERT structure to cache supported signature algorithm data. (backport from HEAD)
2012-04-06Add support for distinct certificate chains per key type and per SSLDr. Stephen Henson
structure. Before this the only way to add a custom chain was in the parent SSL_CTX (which is shared by all key types and SSL structures) or rely on auto chain building (which is performed on each handshake) from the trust store. (backport from HEAD)
2012-04-06Backport: tidy/enhance certificate chain output code (from HEAD)Dr. Stephen Henson
2012-04-06Backport support for fixed DH ciphersuites (from HEAD)Dr. Stephen Henson
2012-02-22ABI compliance fixes.Dr. Stephen Henson
Move new structure fields to end of structures. Import library codes from 1.0.0 and recreate new ones.