aboutsummaryrefslogtreecommitdiffstats
path: root/ssl/ssl_sess.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix an oversight - when checking a potential session ID for conflicts withGeoff Thorpe2001-02-231-2/+2
| | | | | | | | | | | | | | an SSL_CTX's session cache, it is necessary to compare the ssl_version at the same time (a conflict is defined, courtesy of SSL_SESSION_cmp(), as a matching id/id_length pair and a matching ssl_version). However, the SSL_SESSION that will result from the current negotiation does not necessarily have the same ssl version as the "SSL_METHOD" in use by the SSL_CTX - part of the work in a handshake is to agree on an ssl version! This is fixed by having the check function accept an SSL pointer rather than the SSL_CTX it belongs to. [Thanks to Lutz for illuminating the full extent of my stupidity]
* This change allows a callback to be used to override the generation ofGeoff Thorpe2001-02-211-18/+73
| | | | | | | | | | | | | | | | | | | | SSL/TLS session IDs in a server. According to RFC2246, the session ID is an arbitrary value chosen by the server. It can be useful to have some control over this "arbitrary value" so as to choose it in ways that can aid in things like external session caching and balancing (eg. clustering). The default session ID generation is to fill the ID with random data. The callback used by default is built in to ssl_sess.c, but registering a callback in an SSL_CTX or in a particular SSL overrides this. BTW: SSL callbacks will override SSL_CTX callbacks, and a new SSL structure inherits any callback set in its 'parent' SSL_CTX. The header comments describe how this mechanism ticks, and source code comments describe (hopefully) why it ticks the way it does. Man pages are on the way ... [NB: Lutz was also hacking away and helping me to figure out how best to do this.]
* Move all the existing function pointer casts associated with LHASH's twoGeoff Thorpe2001-01-091-1/+3
| | | | | | | "doall" functions to using type-safe wrappers. As and where required, this can be replaced by redeclaring the underlying callbacks to use the underlying "void"-based prototypes (eg. if performance suffers from an extra level of function invocation).
* First step in tidying up the LHASH code. The callback prototypes (andGeoff Thorpe2000-12-011-1/+1
| | | | | | | | | | | | | | | | casts) used in the lhash code are about as horrible and evil as they can be. For starters, the callback prototypes contain empty parameter lists. Yuck. This first change defines clearer prototypes - including "typedef"'d function pointer types to use as "hash" and "compare" callbacks, as well as the callbacks passed to the lh_doall and lh_doall_arg iteration functions. Now at least more explicit (and clear) casting is required in all of the dependant code - and that should be included in this commit. The next step will be to hunt down and obliterate some of the function pointer casting being used when it's not necessary - a particularly evil variant exists in the implementation of lh_doall.
* Store verify_result with sessions to avoid potential security hole.Lutz Jänicke2000-11-291-0/+1
| | | | For the server side this was already done one year ago :-(
* There have been a number of complaints from a number of sources that namesRichard Levitte2000-06-011-3/+3
| | | | | | | | | like Malloc, Realloc and especially Free conflict with already existing names on some operating systems or other packages. That is reason enough to change the names of the OpenSSL memory allocation macros to something that has a better chance of being unique, like prepending them with OPENSSL_. This change includes all the name changes needed throughout all C files.
* Source code cleanups: Use void * rather than char * in lhash,Ulf Möller2000-01-301-7/+6
| | | | eliminate some of the -Wcast-qual warnings (debug-ben-strict target)
* Some comments added, and slight code clean-ups.Bodo Möller2000-01-261-10/+4
|
* Tidy up CRYPTO_EX_DATA structures.Dr. Stephen Henson2000-01-231-5/+5
|
* Check RAND_bytes() return value or use RAND_pseudo_bytes().Ulf Möller2000-01-211-1/+1
|
* Fix SSL_CTX_add_session: When two SSL_SESSIONs have the same ID,Bodo Möller1999-12-291-10/+35
| | | | they can sometimes be different memory structures.
* Restore traditional SSL_get_session behaviour so that s_client and s_serverBodo Möller1999-11-171-0/+13
| | | | don't leak tons of memory.
* Store verify_result with sessions to avoid potential security hole.Bodo Möller1999-11-161-0/+3
|
* This corrects the reference count handling in SSL_get_session.Mark J. Cox1999-11-151-1/+10
| | | | | | | | | | Previously, the returned SSL_SESSION didn't have its reference count incremented so the SSL_SESSION could be freed at any time causing seg-faults if the pointer was subsequently used. Code that uses SSL_get_session must now make a corresponding SSL_SESSION_free() call when it is done to avoid memory leaks (or blocked up session caches). Submitted By: Geoff Thorpe <geoff@eu.c2.net>
* Don't mix real tabs with tabs expanded as 8 spaces -- that'sBodo Möller1999-06-071-5/+5
| | | | a pain to read when using 4-space tabs.
* Don't use NULL-pointer :-/Bodo Möller1999-05-231-2/+3
|
* Comment about bug.Bodo Möller1999-05-231-0/+2
|
* Let ssl_get_prev_session reliably work in multi-threaded settings.Bodo Möller1999-05-231-14/+53
|
* Avoid memory hole when we don't like the session proposed by the clientBodo Möller1999-05-231-5/+5
|
* Additional, more descriptive error message for rejection of a session IDBodo Möller1999-05-171-1/+5
| | | | | because of missing session ID context (so that application programmers are directly pointed to what they should do differently).
* New structure type SESS_CERT used instead of CERT inside SSL_SESSION.Bodo Möller1999-05-131-1/+5
| | | | | | | While modifying the sources, I found some inconsistencies on the use of s->cert vs. s->session->sess_cert; I don't know if those could really have caused problems, but possibly this is a proper bug-fix and not just a clean-up.
* No actual change, but the cert_st member of struct ssl_session_st is nowBodo Möller1999-05-091-1/+1
| | | | | | | | | | | | called sess_cert instead of just cert. This is in preparation of further changes: Probably often when s->session->sess_cert is used, we should use s->cert instead; s->session->sess_cert should be a new structure containing only the stuff that is for just one connection (e.g. the peer's certificate, which the SSL client implementations currently store in s->session->[sess_]cert, which is a very confusing thing to do). Submitted by: Reviewed by: PR:
* Add "static" to function definitionBodo Möller1999-05-011-1/+1
| | | | | | | | | | Submitted by: Anonymous Reviewed by: PR: Submitted by: Reviewed by: PR:
* Fix a couple of cases where an attempt is made to lock an already lockedDr. Stephen Henson1999-04-291-4/+10
| | | | mutex.
* Remove NOPROTO definitions and error code comments.Ulf Möller1999-04-261-6/+0
|
* Change #include filenames from <foo.h> to <openssl.h>.Bodo Möller1999-04-231-2/+2
| | | | | | Submitted by: Reviewed by: PR:
* Change functions to ANSI C.Ulf Möller1999-04-191-63/+23
|
* Fix some warnings. Contributed by Anonymous.Ben Laurie1999-04-161-1/+1
|
* Add type-safe STACKs and SETs.Ben Laurie1999-04-121-1/+1
|
* New option "-showcerts" for s_clientBodo Möller1999-03-311-1/+1
| | | | Slight cleanup in ssl/
* Fix security hole.Ben Laurie1999-03-221-9/+19
|
* Add support for new TLS export ciphersuites.Ben Laurie1999-02-211-2/+2
|
* Updates to the new SSL compression codeMark J. Cox1999-02-161-8/+40
| | | | | | | | | | | | | | [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)] Fix so that the version number in the master secret, when passed via RSA, checks that if TLS was proposed, but we roll back to SSLv3 (because the server will not accept higher), that the version number is 0x03,0x01, not 0x03,0x00 [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)] Submitted by: Reviewed by: PR:
* Accept NULL in *_free.Ben Laurie1999-01-071-0/+3
|
* Import of old SSLeay release: SSLeay 0.9.1b (unreleased)Ralf S. Engelschall1998-12-211-1/+1
|
* Import of old SSLeay release: SSLeay 0.9.0bRalf S. Engelschall1998-12-211-23/+180
|
* Import of old SSLeay release: SSLeay 0.8.1bRalf S. Engelschall1998-12-211-0/+425