Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | No longer a part of session state | lloyd | 2012-09-18 | 1 | -4/+0 |
| | |||||
* | 1.10.3 builds OK with Intel C++ 11.1 | lloyd | 2012-09-17 | 1 | -0/+2 |
| | |||||
* | Document the version checking | lloyd | 2012-09-17 | 2 | -0/+88 |
| | |||||
* | Build the return value of version_string at compile time instead of at | lloyd | 2012-09-14 | 1 | -16/+17 |
| | | | | runtime so it's easy to find in a binary with strings. | ||||
* | Inline Channel::{read,write}_cipher_state, only one caller each | lloyd | 2012-09-14 | 2 | -24/+11 |
| | |||||
* | secure_renegotiation isn't a session value anymore | lloyd | 2012-09-14 | 2 | -8/+0 |
| | |||||
* | Expose to public in TLS::Channel peer_supports_heartbeats, | lloyd | 2012-09-13 | 1 | -6/+16 |
| | | | | heartbeat_sending_allowed, and secure_renegotiation_supported. | ||||
* | Store the cipher states in the handshake state object as shared_ptrs. | lloyd | 2012-09-13 | 4 | -43/+94 |
| | | | | | | One notable change here is that after we send a close_alert, we ignore any data that follows. That is somewhat unfortunate actually, but overall this change is important (for DTLS). | ||||
* | Update creators of Session to new constructor | lloyd | 2012-09-12 | 2 | -2/+0 |
| | |||||
* | It seems other implementations define the secure renegotiation flag to | lloyd | 2012-09-12 | 4 | -20/+11 |
| | | | | | | | | be part of the connection rather than part of the session. That really does make more sense, so go with it. Changes the format of serialized sessions, but we already broke that with the crypto change. | ||||
* | A quite different approach to extension handling, store both inbound | lloyd | 2012-09-12 | 8 | -282/+233 |
| | | | | | | | | | and outbound extensions in an Extension, and pull out values as requested. This is to some extent just a cleanup but also assures us that the client and the server do agree on what extensions were set. Previously it was possible for extensions to mismatch, eg we set a field in the client hello structure but it didn't make it into an extension. | ||||
* | Spelling | lloyd | 2012-09-12 | 6 | -18/+17 |
| | |||||
* | Duplicated extension checks! | lloyd | 2012-09-12 | 1 | -12/+0 |
| | |||||
* | Remove Channel::m_secure_renegotiation, instead derive from current state. | lloyd | 2012-09-12 | 2 | -46/+23 |
| | |||||
* | Clarify that this is an incompatible change | lloyd | 2012-09-12 | 1 | -1/+4 |
| | |||||
* | CBC overwrote (encrypted) the following block in write_record. I | lloyd | 2012-09-12 | 1 | -1/+4 |
| | | | | | | | | | | | | | | missed it before because the buffer was pre-sized to maximum allowable, thus it just encrypted something we never sent. However after the buffer sizes were set to zero, it would start encrypting ... something ... after the block. This would manifest by strange crashes during a full client renegotiation. The problem was that the buffer was sized up a bit for sending the unencrypted messages (client kex, etc) and so we had some wiggle room. However sending an encrypted client kex took more space than that (due to the MAC, etc) so a full renegotiation would cause values to be overwritten. | ||||
* | Formatting | lloyd | 2012-09-11 | 1 | -2/+2 |
| | |||||
* | Clean up the handling of close notify alerts a bit. Also return | lloyd | 2012-09-11 | 1 | -6/+7 |
| | | | | | immediately from received_data when we see a fatal alert - we are uninterested in any further data at that point. | ||||
* | Typo | lloyd | 2012-09-11 | 1 | -1/+1 |
| | |||||
* | Add helper function | lloyd | 2012-09-11 | 2 | -7/+8 |
| | |||||
* | This buffer size does not need to match TLS | lloyd | 2012-09-11 | 1 | -1/+1 |
| | |||||
* | Set m_readbuf_pos == m_readbuf.size(), resizing the vector as needed | lloyd | 2012-09-11 | 5 | -34/+21 |
| | | | | rather than preallocating the maximum possible size. | ||||
* | The write buffer is cleared and rewritten by write_record, so we don't | lloyd | 2012-09-11 | 2 | -6/+5 |
| | | | | | | need to pre-size it. Reorganize Channel members a bit | ||||
* | Pass the record sequence # up to Channel | lloyd | 2012-09-11 | 3 | -12/+13 |
| | |||||
* | Move the record type checks up to Channel as besides that the record | lloyd | 2012-09-11 | 3 | -41/+22 |
| | | | | reader doesn't care what the record type is. | ||||
* | No reason to pass a u16bit by reference | lloyd | 2012-09-10 | 3 | -3/+3 |
| | |||||
* | New logic for DTLS replay detection. Abstracts the sequence handling | lloyd | 2012-09-10 | 6 | -30/+168 |
| | | | | out a bit. Handling of initial server record is pretty nasty. | ||||
* | This note is accurate now | lloyd | 2012-09-09 | 1 | -4/+3 |
| | |||||
* | Consider DTLS v1.0 and v1.2 known | lloyd | 2012-09-09 | 1 | -2/+3 |
| | |||||
* | Remove debug output | lloyd | 2012-09-09 | 1 | -1/+1 |
| | |||||
* | Support both TLS and DTLS in the tls_server example. | lloyd | 2012-09-09 | 2 | -410/+159 |
| | | | | Drop the fairly bogus socket wrapper layer. | ||||
* | Expect a cookie field in a DTLS client hello | lloyd | 2012-09-09 | 1 | -0/+3 |
| | |||||
* | Support DTLS in tls_client. Support client-initiated close_notify (via 'Q') | lloyd | 2012-09-09 | 1 | -98/+103 |
| | |||||
* | Rename function | lloyd | 2012-09-09 | 2 | -16/+16 |
| | |||||
* | Remove redundant Channel::m_current_version | lloyd | 2012-09-09 | 4 | -30/+30 |
| | |||||
* | Create the IO in Channel and then pass it down to new_handshake_state | lloyd | 2012-09-09 | 7 | -37/+39 |
| | | | | as the logic is the same for both cases. | ||||
* | Store the is-SSLv3 flag in the cipher state as the difference is only | lloyd | 2012-09-09 | 2 | -22/+19 |
| | | | | relevent after we've got a cipher state enabled. | ||||
* | Clean up includes | lloyd | 2012-09-09 | 4 | -6/+5 |
| | |||||
* | Also hide Channel::m_handshake_fn | lloyd | 2012-09-09 | 3 | -5/+5 |
| | |||||
* | Hide Channel::m_rng and Channel::m_session_manager, add getters | lloyd | 2012-09-09 | 4 | -23/+28 |
| | |||||
* | Small cleanup | lloyd | 2012-09-08 | 1 | -1/+5 |
| | |||||
* | Only accept a hello request if an active state currently exists. | lloyd | 2012-09-07 | 1 | -4/+2 |
| | | | | | Remove setting HELLO_REQUEST after we see the finished - we'll never see it in this state object. | ||||
* | Per Google's spec the client is not supposed to include a NPN | lloyd | 2012-09-07 | 1 | -0/+4 |
| | | | | extension in renegotiations | ||||
* | This should be inline | lloyd | 2012-09-07 | 1 | -1/+1 |
| | |||||
* | Small doc tweaks | lloyd | 2012-09-07 | 1 | -6/+6 |
| | |||||
* | Add support for key material export | lloyd | 2012-09-07 | 5 | -0/+69 |
| | |||||
* | Remove Channel::m_peer_certs, instead retrieve directly from the state. | lloyd | 2012-09-07 | 6 | -12/+45 |
| | | | | | | | | This also very happily avoids a race in renegotiation. If you first negotiated using cert X, then renegotiated with Y, during the period between the certificate message and the finished message, Channel::peer_cert_chain would return Y instead of X. Now, it returns Y only after the finished message has been verified. | ||||
* | Avoid another instance of pulling the key out of the certificate | lloyd | 2012-09-07 | 3 | -9/+7 |
| | |||||
* | Just dynamic_cast once at the start of process_handshake_msg | lloyd | 2012-09-07 | 2 | -21/+20 |
| | |||||
* | Save the peer public key in the handshake state instead of pulling it | lloyd | 2012-09-07 | 6 | -16/+29 |
| | | | | out of the cert repeatedly. |