Vincent Hanquez
c17aa30599
prepare source for NPN.
2012-02-07 21:24:30 +00:00
Vincent Hanquez
08ddc1523c
make recvData use strict bytestring as this more natural to the tls code.
...
also add a recvData' to get the same behavior as before.
2012-02-07 20:45:22 +00:00
Vincent Hanquez
8f706d8a56
only import necessary bits from X509.
2012-02-07 20:39:46 +00:00
Vincent Hanquez
64202c2748
refined wire helper function to support TLS opaque types directly.
...
opaque type are length prefix bytestring and are used everywhere.
the helper simplify their marshalling/unmarshalling and make it less
error prone and semantically better.
2012-02-07 07:48:11 +00:00
Vincent Hanquez
db362230ec
more documentation
2012-02-07 06:26:26 +00:00
Vincent Hanquez
4f450935f5
reorganize sendData slightly
2012-01-25 16:03:31 +00:00
Vincent Hanquez
80998d0bb5
track in the context if the tls pipe is established or not.
...
raise exception ConnectionNotEstablished in sendData and recvData if
trying to use an invalid Context.
2012-01-25 16:01:55 +00:00
Vincent Hanquez
d387959195
documentation correction
2012-01-25 09:32:53 +00:00
Vincent Hanquez
3e7a6c5c17
export the content of HandshakeFailed
2012-01-19 05:31:31 +00:00
Vincent Hanquez
c846d9a360
Switch handshake to exception instead of returning a bool.
...
Bool return value doesn't provide any information on why the handshake failed,
hence remove the Bool value, and return (), and in case of handshake failure,
raise a HandshakeFailed exception with the TLSError associated with it.
2012-01-18 06:29:29 +00:00
Vincent Hanquez
aad62f89a7
catch exception during certificate callback and returns a certificate rejection on exception.
2012-01-16 12:36:45 +00:00
Vincent Hanquez
f3e5603bc8
trivial code movement for decryptRSA
2011-12-20 07:51:12 +00:00
Vincent Hanquez
89ad99004b
properly call/switch things in server when trying to resume session.
2011-12-20 07:51:12 +00:00
Vincent Hanquez
98427b4fae
switch client to process Server hello explicitely.
...
also switch everything properly when receiving a server hello with session.
2011-12-20 07:51:07 +00:00
Vincent Hanquez
8ff0d85a0e
send session if the user says so (through sessionResumeWith) in client.
...
and properly switch to session resuming packet flow if resuming.
2011-12-20 07:43:43 +00:00
Vincent Hanquez
13b3873b82
add an helper to create a new session.
2011-12-20 07:42:13 +00:00
Vincent Hanquez
be3ab515de
rename processServerHello to onServerHello.
2011-12-20 07:41:53 +00:00
Vincent Hanquez
6f02bb8548
generate key block when setting the master secret.
2011-12-20 07:41:15 +00:00
Vincent Hanquez
b3b7051129
callback to user when a session has been successfully established.
...
it's up to the user to store the session id + session data for later recovery.
2011-12-20 07:39:24 +00:00
Vincent Hanquez
53a7b48c15
add new state for session tracking.
2011-12-20 07:38:35 +00:00
Vincent Hanquez
83b860726d
add parameters for session resuming
...
mostly callbacks during the handshake, and a parameter to enable session usage.
2011-12-20 07:34:52 +00:00
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
a3890e959d
add a sessionData type to bundle everything required for a session.
2011-12-12 08:25:45 +00:00
Vincent Hanquez
eb8a00ef67
add a session ID type.
2011-12-12 08:25:21 +00:00
Vincent Hanquez
dace1096cf
remove old comment
2011-12-12 08:24:39 +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
726d301e6f
fix TLS key exchange with version >= 1.0.
2011-12-05 20:10:28 +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
13812b80f5
Merge branch 'measurements'
2011-12-01 08:54:15 +00:00
Vincent Hanquez
a16bdbba86
remove old readPacket.
2011-12-01 08:42:59 +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
2b4db87a7e
cleanup the record layer properly from other layer on top.
...
simplify and make the code much more straighforward.
2011-11-30 21:51:22 +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
7a1c6808b7
add some cases and cleanup a bit the server key exchange message parsing.
2011-11-13 09:16:52 +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
9a0b4e0bd7
update to new cryptocipher and new certificate.
2011-10-31 22:10:32 +00:00