Vincent Hanquez
8653d49a42
catch Error_EOF exception and return empty data.
2014-03-23 10:55:39 +00:00
Vincent Hanquez
beb4e7c67d
fix socket backend to stop looping when not receiving data
...
a endless loop would occur when empty of data is received
2014-03-23 10:55:03 +00:00
Vincent Hanquez
ffd061ef95
Add a way to delay interpreting the SKX structure until actually needed.
...
In some case, with efficient servers, we end up parsing the SKX structure
without having yet set the pending cipher. The cipher key exchange type
being unknown at this stage, lead to not knowing how to parse the SKX
structure.
Fix it by keeping the byte un-interpreted when the cipher key exchange
is not known, and properly parse later on.
Fix #53 .
2014-03-23 07:08:43 +00:00
Vincent Hanquez
410bc95951
Enable SSL3 protocol version by default.
2014-03-23 06:16:16 +00:00
Vincent Hanquez
14eb3c686c
Accept non-fatal UnrecognizedName alert after ClientHello.
...
Misconfigured servers send an "Unrecognized Name" warning in the SSL
handshake which is ignored by most clients. Some stack would fail the same
way (i.e. Java 7 with SNI enabled).
Improve state machine slightly.
Fix #53 .
2014-03-23 06:07:25 +00:00
Vincent Hanquez
7d0e1d5267
Allow handshake records to be split across records.
...
* Store continuations in record state
* parse handshake records one by one.
2014-03-22 06:54:37 +00:00
Vincent Hanquez
14c3325c75
put the type of the handshake for the parsing of handshake message.
2014-03-22 05:51:51 +00:00
Vincent Hanquez
8088d3e265
Export the partial capability and wrap it in a easier layer.
...
now runGet has the ability to return partial result and unparsed bytes.
2014-03-22 05:50:09 +00:00
Vincent Hanquez
53d028d208
remove old code commented
2014-03-21 11:16:07 +00:00
Vincent Hanquez
cacab68840
use byteable to get a -> Bytestring function.
2014-03-21 11:09:12 +00:00
Reto Hablützel
53a09a45a3
Fixed typos in documentation
2014-02-21 10:50:54 +01:00
Vincent Hanquez
331651b0ca
add a way to get credentials from memory instead of from files.
2014-01-29 04:41:47 +00:00
Vincent Hanquez
a59f8b334a
clarify the documentation on what's expected from LoadX509
2014-01-29 04:41:18 +00:00
Vincent Hanquez
47c7243385
When the KeyUsage extension is not here, no restrictions apply on the key
2014-01-27 09:56:51 +00:00
Vincent Hanquez
8b03b9ca86
add Network.TLS.Extra for best compatibility with tls-extra removal
2014-01-27 04:03:26 +00:00
Vincent Hanquez
182ef6a096
fold tls-extra ciphers in tls.
2014-01-27 03:51:02 +00:00
Vincent Hanquez
c6117b96f3
misc realignement
2014-01-27 03:50:20 +00:00
Vincent Hanquez
ad6ed6beac
add some Show and Eq instances
2014-01-27 03:50:04 +00:00
Vincent Hanquez
51d9c999f0
align properly
2014-01-26 14:15:30 +00:00
Vincent Hanquez
86375aaa57
move onHandshake to a serverHooks, and remove CommonHooks everywhere.
...
export modifyHooks as contextModifyHooks
2014-01-26 07:02:43 +00:00
Vincent Hanquez
251a0b2193
move logging into dynamic hooks
2014-01-26 06:50:47 +00:00
Vincent Hanquez
8dccb7d7bd
document hooks
2014-01-26 06:38:53 +00:00
Vincent Hanquez
11575711bc
add dynamic recv certificate hook and remove the static one.
2014-01-26 06:37:17 +00:00
Vincent Hanquez
4e5ff7f53d
Change the way parameters are created.
...
This is still WIP and this commit is truly horrific. Sadly, it's just
too much effort to do clean commit with this, and it doesn't mix with
experimentation either.
2014-01-25 16:51:51 +00:00
Vincent Hanquez
68594044c7
remove connectVersion.
2014-01-17 07:11:07 +00:00
Vincent Hanquez
f0bc03863b
add a way to get information about a context.
...
WIP need to include certificate information.
2014-01-17 07:10:28 +00:00
Vincent Hanquez
2d1aeb76c2
make compression an instance of Eq.
2014-01-17 07:09:50 +00:00
Vincent Hanquez
439ea6ba85
use the backend class completely and mark contextNewOnX symbols as deprecated
2014-01-17 06:55:33 +00:00
Vincent Hanquez
eb90d5be00
define failOnEitherError
2014-01-16 10:48:47 +00:00
Vincent Hanquez
aa8856c68a
remove connectVersion as it should be the maximum of allowedVersions
2014-01-12 07:15:16 +00:00
Vincent Hanquez
50797bae50
cleanup import
2014-01-10 08:30:30 +00:00
Vincent Hanquez
453fab50ed
split Backend and introduce a new HasBackend class
...
the HasBackend class allow to not have multiples contextNewOnX calls,
but instead will favor only one contextNew that can take all HasBackend types.
2014-01-10 07:01:34 +00:00
Vincent Hanquez
614b5b4c6b
split parameters from context
2014-01-05 11:14:17 +00:00
Vincent Hanquez
8a05317d40
slightly better error when no ciphers are available
2014-01-02 06:09:09 +00:00
Vincent Hanquez
323fb95fbe
consistent style in record structure.
2013-12-28 15:26:33 +00:00
Vincent Hanquez
85f436afe6
add a system to filter cipher that we can't use because we don't have the right credentials loaded.
2013-12-28 15:25:13 +00:00
Vincent Hanquez
acf9708199
use the new credentials system to be able to handle RSA and DSS certificate at the same time.
2013-12-28 15:24:20 +00:00
Vincent Hanquez
9a05ac9553
limit the X509 import list of what we need
2013-12-28 15:20:07 +00:00
Vincent Hanquez
f72293d32f
properly do DSS/RSA in DHE methods.
2013-12-28 15:19:39 +00:00
Vincent Hanquez
a111d703a4
simplify the handshake key state.
...
we don't need to differentiate client/server, as a remote key will always be public and
the private key always local.
2013-12-28 15:17:42 +00:00
Vincent Hanquez
64946c8fb8
error in serverKeyXchg with RSA.
2013-12-28 15:15:06 +00:00
Vincent Hanquez
761ba1ac5c
add support for DSS signature.
2013-12-28 15:14:09 +00:00
Vincent Hanquez
b3068deec8
add support for DSA signing and verification.
2013-12-28 15:13:43 +00:00
Vincent Hanquez
8e6a6d9456
add a credentials module
2013-12-28 15:12:14 +00:00
Vincent Hanquez
08997c96f0
default the version if not set which allow to report very early error (e.g. no cipher in common) properly
2013-12-28 15:09:25 +00:00
Vincent Hanquez
891cf168ac
add simple method to get the certificate leaf.
2013-12-28 15:07:20 +00:00
Vincent Hanquez
02dd7b8aa7
add support for DHE (only with RSA signing so far)
2013-12-11 16:39:25 +08:00
Vincent Hanquez
a223673eed
make HandshakeM an instance of Applicative.
2013-12-11 16:36:35 +08:00
Vincent Hanquez
2a09d51ba5
cleanup imports
2013-12-11 16:36:16 +08:00
Vincent Hanquez
64d2ba9cd7
add better methods for making DigitallySigned data structure and veryfying them
2013-12-11 16:34:45 +08:00