| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
expense of significant complexity. Needs careful testing for corner
cases and malicious inputs, but seems to work well with randomly
chosen segmentations in a correctly formatted stream at least.
|
|
|
|
|
| |
enforce the 2^14 byte plaintext limit in the reader (previously only
the 2^14+2048 byte ciphertext size limit was enforced).
|
|\
| |
| |
| |
| |
| | |
423204c45c686bfba0058cdc65b40b5bdfae5fb8)
to branch 'net.randombit.botan.tls-state-machine' (head 3eb85687ada277da96946fa38a8f6993977583f0)
|
| |
| |
| |
| |
| | |
by TLS (relies on the finished message check). Add a class for reading
files created by GnuTLS's srptool.
|
| |
| |
| |
| |
| | |
loop (size_t overflow), likely causing a segfault. Not exploitable as
far as I can tell, beyond the obvious crashing.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently has the same behavior in client and server; if we got a
NO_RENEGOTIATION alert, and we appear to be renegotiating, delete the
state if it exists.
Noticed when talking to OpenSSL 0.9.8g which rejects all renegotiation
requests.
|
| |
| |
| |
| | |
traffic.
|
| | |
|
| |
| |
| |
| |
| | |
completes. The client gets a callback when the handshake is complete
so they can know exactly when it's OK to send.
|
| |
| |
| |
| | |
per-se, it's a notification by the client. Rename accordingly.
|
| |
| |
| |
| |
| |
| | |
a timestamp. Instead we used random values for all, but hypothetically
it would be useful for the timestamp to be correct in case someone
decides to interpret that field. Which they hopefully won't.
|
| |
| |
| |
| |
| |
| | |
Add support for NPN on the server side. Server is initialized with the
list of protocols it wants to offer, once the handshake completes the
client requested protocol is available via a getter.
|
| |
| |
| |
| | |
tested with google.com:443
|
| | |
|
| |
| |
| |
| |
| | |
the cache. The current handshake will complete, but the session can
not be resumed later.
|
| | |
|
| |
| |
| |
| | |
specifying if the session should be saved to the session cache.
|
| |
| |
| |
| |
| | |
what certs, keys, etc are available to the app. Needs polishing but it
seems like it should be sound.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
untested though.
|
| |
| |
| |
| | |
its own file. Rename tls_state to tls_handshake_state.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add a new callback that is called with the session info when a
handshake completes. Currently only called on the server side as
the client doesn't have session resumption yet.
Rename CipherSuite to TLS_Cipher_Suite.
|
| |
| |
| |
| |
| |
| |
| | |
on the client side at the moment. Tested with gnutls-cli --recordsize.
Save the fragment size and the secure renegotiation flags in the
session state.
|
| |
| |
| |
| |
| | |
has been completed and if the connection has been definitely closed by
a fatal alert or a close notify.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
client and server. Server side can handle SCSV values as well,
client always sends the extension instead.
Handle an empty SNI extension coming back from the server - this is
used to indicate that it understood the name. Also add better checking
for extensions by passing in what the supposed size of the extension
is.
Only send the secure negotiation extension in the server hello if the
client indicated support for it.
|
| | |
|
| |
| |
| |
| |
| | |
extension (client side only at the moment). Add an interface that
allows applications to request renegotiation.
|
| |
| |
| |
| | |
meant up until this point, renegotiation never worked. :(
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add support for sending and reading the SRP identifier extension.
Add some helper classes for managing TLS extensions
Add ciphersuite codes for SRP key exchange.
|
| | |
|
| |
| |
| |
| | |
client cert and they don't have one.
|
| | |
|
| |
| |
| |
| |
| |
| | |
only be affected if the attacker can modify the handshake messages, which
seems fairly unlikely, and some implementations are known to be unhappy
with fragmented handshakes.
|
| |
| |
| |
| |
| |
| |
| |
| | |
send out inputs as they are available. Thus, flushing is never
required, and we avoid some unnecessary copying.
If we are using a CBC mode cipher in SSLv3/TLSv1.0, send a 1-byte
fragment to start to prevent the adaptive plaintext attack.
|
| | |
|
| |
| |
| |
| |
| |
| | |
collects all the data into a single buffer and encrypts it in one
go. Once the support is there for in-place encryption in the cipher
modes this will help out substantially.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
hashing.
|