| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
A timing issue was found during testing of the previous commit.
Users should be allowed to send data during the renegotiation.
|
|\
| |
| | |
Kuba/ssl/exp ocsp refactor
|
| | |
|
|/
|
|
|
|
| |
Closes #5899
Whitebox option tests need to be fixed before OTP-26 (but we want the change in RC2).
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
* maint:
ssl: dtls let new accept process handle new connections
Refactor, remove client set
Fix version test
|
| |
| |
| |
| |
| |
| |
| |
| | |
If a user process is listening for new connections let that handle
the "new" connection instead of re-useing the old one.
If the new connection is successfully connected, bring down the old
connection.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- add tc_check_profiles test to ssl_trace_SUITE
- return ok tuple from ssl_trace:start
- OCSP, cert trace profiles
- key update trace profile
- ssl_trace:write/2
- no more budget message
- add tls_sender:init to rle trace profile
- hibernate trace profile
- ssn trace profile
|
|\ \
| |/
| |
| |
| | |
* dgud/ssl/log-abort-crash:
ssl: Add debug logging on error cases
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To ease the debugging add info/debug logs whenever an
error is caught so that is easy to find out what happened.
Also set the default debug level per connection to the application
level, or rather the module ssl level since the application level
is not stored.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split clauses to be seperate functions.
Rename expand_options/2 to split_options/2 which is more what it does.
Remove some already removed (deprecated) options which is handled earlier.
Explicit order and initilize options that other options are dependent on.
Collect functionality (mostly) in one place to make it easier to overview.
This commit have changed error messages for a couple of error cases,
and is also more restrict with checking the options.
{options, incompatible, a, b} => {options, incompatible, [a,b]}
{options, dependency, a,b} => {options, incompatible, [a,^b]}
{conflict_options, a, b} => {options, incompatible, [a,b]}
|
|\
| |
| |
| |
| | |
* ingela/ssl/client-certification/OTP-18145:
ssl: Enhanch handling of unexpected messages
|
| |
| |
| |
| | |
Make better use of gen_statem. Rename flag and values to better names.
|
|\ \
| | |
| | |
| | |
| | | |
* ingela/ssl/protocol-version-TLS-1.3/GH-5950/OTP-18129:
ssl: Reject unsupported previous version with protocol alert
|
| |/
| |
| |
| |
| |
| |
| | |
Change implementation use gen_statem postpone for hello message when users
want to pause handshake instead of legacy "reimplementation" of postpone
Closes #5950
|
| | |
|
| |
| |
| |
| | |
Closes GH-4143
|
|\ \
| |/ |
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| | |
Renegotiating with an Openssl server does not work if the cookie
is not sent.
|
|/
|
|
|
|
|
|
| |
The SNI (Server Name Indication) is a special hello extension
that needs to be processed first as it can change the servers
options available for the connection.
Closes #5341
|
| |
|
|
|
|
|
| |
Set active earlier reduce latency, and avoid that the
process is scheduled out before activating.
|
|
|
|
| |
Do not undo the fragmentation already done.
|
|
|
|
|
| |
Alert counter handling was only initialized on the server,
initialize on both sides.
|
|
|
|
|
|
| |
In case of fake takeover, reset connection to old working one,
i.e. if any alert is generated or coming on the "new" connection,
reset connection_states and state to the saved one.
|
|
|
|
|
| |
Can happen when a computer reboots and connects from the same client
port without the server noticing, should be allowed according to RFC.
|
|
|
|
|
|
|
|
| |
Throw alerts in common handling, so usage can be specialized in
specific modules later, we will need that in dtls.
Throw of alerts have been done before but are now thrown further,
this can be improved even more.
|
|
|
|
| |
Not used (and available in state if needed later).
|
|
|
|
|
|
|
| |
closes #5029
Also optimizes sign/verify handling so that hash calculation can be done in same
call to crypto as sign/verify when possible.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Split tls_connection to tls_connection (TLS-1.0 - TLS-1.2) and
tls_gen_connection (TLS protocol version generic) used as protocol_cb.
Split dtls_connection to dtls_connection (DTLS-1 - DTLS-1.2) and
dtls_gen_connection (DTLS protocol version generic) used as protocol_cb.
Rename ssl_connection -> tls_dtls_connection common code for pre TLS/DTLS-1.3
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create ssl_gen_statem for functionality that is
protocol version independent. tls_connection and dtls_connection
are gen_statem behaviour modules for TLS-1.0-TLS-1.2 and DTLS-1.0-DTLS-1.2.
tls_connection_1_3 is the TLS-1.3 gen_statem behaviour module.
All these state machines have a common state machine help functions in ssl_gen_statem.
The pre TLS-1.3 also have common help functions in ssl_connection.
Rename states init to initial_hello and error to config_error to avoid confusion
with other mechanisms.
|
|
|
|
|
|
| |
The first cert must be the peer cert. For optimal performance the chain
should be ordered. However the option will be used for testing that also
unordered or chains with extraneous cert can be handled.
|
|
|
|
|
| |
Refactor handling of SNI. Implement sending of empty SNI in EE when
the client's SNI is used to guide certificate selection.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implementation design is more like the one for
TLS-1.3 session tickets that is the new mechanism
in in TLS-1.3 that replaces the previous session
reuse machanism.
This make the size of the session table more
manageble as we do not need to relie on adpatation
over time mechanism.
There is also a session ticket extension for
pre TLS-1.3 also that is diffrent and not implemented
by us.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use gen_statem postpone pre TLS-1.3 to handle that
ocsp response info is recived after the certificates
but is needed before handling the certificates.
Pre TLS-1.3 (mainly TLS-1.2) only stapling of the peer cert is supported,
as the extended mechanism to support the whole chain before TLS-1.3 has
been deprecated. For the verify_fun point of view make
pre TLS-1.3 stapling and TLS-1.3 stapling look the same.
In public-key avoid loops to look for issuer cert that can be provided
as input. Add only one API function to support the validation of
the OCSP response.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Let logger format the logs.
Do not log conditions that are not errors of the ssl application as
errors.
|
|
|
|
|
|
|
|
|
|
|
| |
Due to legacy reasons cleaning of the session handling table was
complex and needed to be delayed. However the implementation
evolved many times since and this commit removes the need for the
delay. Hopefully this will also remove the problem with server
session tables that grow quicker than they can shrink under a
heavy load.
This also fixes TLS-1.3 compatibility with pre TLS-1.3 sessions.
|
| |
|
|
|
|
|
|
| |
Retransmissions mechanism for upd makes it possible for handshakes and possible
alerts to have another record version then the negotiated one in the
states certify and abbreviated without beeing invalid messages.
|