Vincent Hanquez
34b186b852
differentiate set master secret from a premaster secret or an already existing master secret
2011-12-20 07:30:19 +00:00
Vincent Hanquez
5601170a1f
clean up handshake states after handshake is done.
2011-12-12 08:43:52 +00:00
Vincent Hanquez
ccb94cea50
Merge branch 'master' into session
2011-12-06 00:23:18 +00:00
Vincent Hanquez
86335f18ce
split context structure and accessor out of Core.
2011-12-06 00:15:00 +00:00
Vincent Hanquez
a269d84256
fix client side encoding of client key exchange on RSA.
2011-12-06 00:12:00 +00:00
Vincent Hanquez
4ef7b0098f
Merge branch 'master' into session
...
Conflicts:
Network/TLS/Core.hs
2011-12-01 22:33:53 +00:00
Vincent Hanquez
9ec505a59a
Merge branch 'hsm'
...
Conflicts:
Network/TLS/Core.hs
2011-12-01 08:55:44 +00:00
Vincent Hanquez
adf45a537d
handle digest update after processing the packet
2011-12-01 08:42:43 +00:00
Vincent Hanquez
e1fea031af
consider clientkeyxchg as an opaque structure in internal layers, and make/process the content in higher layer.
2011-12-01 08:41:01 +00:00
Vincent Hanquez
eba62f6f74
append actual raised exception in the error.
2011-12-01 08:36:56 +00:00
Vincent Hanquez
3bdad41e21
consume ServerKeyExchange if it show up.
2011-12-01 08:34:41 +00:00
Vincent Hanquez
d6a198dad5
split recvRecord out of recvPacket.
2011-11-30 22:01:31 +00:00
Vincent Hanquez
2a685b2601
remove the state machine is favor of a straightforward pattern matching state machine.
...
simplify code massively and make it easy to support other packet flow later.
2011-11-29 08:59:41 +00:00
Vincent Hanquez
0f4c6a0c47
refactor to be able to modify state machine mechanism
2011-11-28 08:01:19 +00:00
Vincent Hanquez
23113e3d3b
separate code path on client to be able to handle session resume
2011-11-13 11:12:26 +00:00
Vincent Hanquez
63110fb5ce
add a wrapper to recvPacket to only receive handshake types.
2011-11-13 11:11:39 +00:00
Vincent Hanquez
0f4c448bf2
move comment where it should be.
2011-11-13 08:53:00 +00:00
Vincent Hanquez
ba4a2de730
separate code path on server when doing a session resume.
2011-11-12 16:15:05 +00:00
Vincent Hanquez
297f0d351b
Check handshake policy on server during a new client handshake.
...
It allows server to detect clients that want to abuse single handledly
the server resources by issuing handshakes.
The callback get some measurements on the number of bytes received and sent
since last handshake and also the number of handshake on this context.
2011-11-12 11:05:12 +00:00
Vincent Hanquez
63fabf9956
add some measurements of bytes received/sent and number of handshakes per context.
2011-11-11 19:05:17 +00:00
Vincent Hanquez
905aff7564
fix typo in error message
2011-10-08 09:41:09 +01:00
Vincent Hanquez
273d5285c2
allow definition of client and server with different connection/operations type
2011-09-29 09:22:27 +01:00
Vincent Hanquez
dff8e03476
curry the connection
2011-09-29 09:14:02 +01:00
Vincent Hanquez
9b099fd0ff
vectorized the actual connection type, so one could use Socket or Fd as long as handles.
2011-09-29 08:29:28 +01:00
Vincent Hanquez
7d6116c20b
put TLS12 in default allowed versions
2011-09-29 08:27:55 +01:00
Vincent Hanquez
b6a1b3ed14
misc cleanup
2011-08-13 07:56:17 +01:00
Vincent Hanquez
3c02e9acfc
Create a record type to help type safety
2011-08-12 18:41:49 +01:00
Vincent Hanquez
abc571223a
Change compression API to work properly.
...
- distinguish compression from decompression
- add a context
- move from a record structure to typeclass + wrapping data for hiding the existential quantification.
2011-08-12 18:31:58 +01:00
Vincent Hanquez
28e04f8849
Use the encode function to encode the secure renegotiation extension.
...
fix a bug on the client side when secure renegotiation is enabled on client and server.
2011-06-19 21:23:01 +01:00
Vincent Hanquez
c27fc6187d
properly encode/decode secure renegotiation extension
2011-06-13 08:33:14 +01:00
Vincent Hanquez
d2e6235410
throw proper error with partial packets and EOF
2011-06-13 08:19:29 +01:00
Vincent Hanquez
1b8474d388
create a sendClientKeyXchg
2011-06-12 21:55:22 +01:00
Vincent Hanquez
02f77a1225
set server and client parameter directly in core, not in the sending processing layer.
2011-06-12 21:42:55 +01:00
Vincent Hanquez
2d33ea3fad
separate the IO operation from the decoding.
2011-06-12 21:40:02 +01:00
Vincent Hanquez
69a40eb656
use throwCore instead of error
2011-06-12 21:39:34 +01:00
Vincent Hanquez
30d52f0398
fix comment
2011-06-12 21:39:17 +01:00
Vincent Hanquez
1358a2ef56
throw error if recvPacket errors instead of ignoring it.
2011-06-12 21:38:18 +01:00
Vincent Hanquez
5207a41a57
reflect the fact in types that the record layer record returns list of same header type.
2011-06-10 21:24:46 +01:00
Vincent Hanquez
8329187394
fill the server hello in the server and check the return value in the client.
2011-06-07 08:28:02 +01:00
Vincent Hanquez
96e6979ed4
misc change and start to trickle through the support for secure renegotiation
2011-06-07 08:13:43 +01:00
Vincent Hanquez
d3de5de4cd
add way to store verified data and to activate/deactivate the feature
2011-06-07 07:41:31 +01:00
Vincent Hanquez
093cd2c9fb
use bytes directly instead of pointlessly unpacking it for extensions and finishedData
2011-06-06 08:16:24 +01:00
Vincent Hanquez
9cd0ed0515
handle exception in handshake and report to the user if the handshake has been successful or not.
2011-05-13 08:39:15 +01:00
Vincent Hanquez
432639688f
properly handle the mvar to put the st back if an exception happens.
2011-05-13 07:12:54 +01:00
Vincent Hanquez
8434cb24e2
use proper protocol error in the server during clienthello
2011-05-13 07:08:27 +01:00
Vincent Hanquez
f7ed7f541a
throw a proper protocol error in case the version is not supported
2011-05-13 07:03:16 +01:00
Vincent Hanquez
f140e1c579
change onRecvCertificate callback to be able to track the reason of rejection, and returns the proper alert to the other side.
2011-05-13 07:02:44 +01:00
Vincent Hanquez
f1222ece5d
add placeholder code to handle alerts during recvData.
2011-05-12 09:13:53 +01:00
Vincent Hanquez
fa384d87c7
raise a proper HandshakeFailure if no cipher works
2011-05-12 09:13:53 +01:00
Vincent Hanquez
3b76a3ed7c
raise a ProtocolVersion error if version negociated is SSL2
2011-05-12 09:13:53 +01:00