aboutsummaryrefslogtreecommitdiff
path: root/networking/tls.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/tls.c')
-rw-r--r--networking/tls.c38
1 files changed, 20 insertions, 18 deletions
diff --git a/networking/tls.c b/networking/tls.c
index 8fa532947..b111e4bb4 100644
--- a/networking/tls.c
+++ b/networking/tls.c
@@ -226,24 +226,28 @@ struct record_hdr {
226}; 226};
227 227
228typedef struct tls_state { 228typedef struct tls_state {
229 int fd; 229 int fd;
230
231 int min_encrypted_len_on_read;
232 uint8_t encrypt_on_write;
233
234 uint8_t *outbuf;
235 int outbuf_size;
236
237 int inbuf_size;
238 int ofs_to_buffered;
239 int buffered_size;
240 uint8_t *inbuf;
230 241
231//TODO: store just the DER key here, parse/use/delete it when sending client key 242//TODO: store just the DER key here, parse/use/delete it when sending client key
232//this way it will stay key type agnostic here. 243//this way it will stay key type agnostic here.
233 psRsaKey_t server_rsa_pub_key; 244 psRsaKey_t server_rsa_pub_key;
234 245// this is also unused after client key is sent
235 sha256_ctx_t handshake_sha256_ctx;
236
237 uint8_t client_and_server_rand32[2 * 32]; 246 uint8_t client_and_server_rand32[2 * 32];
247// these two are unused after finished messages are exchanged:
248 sha256_ctx_t handshake_sha256_ctx;
238 uint8_t master_secret[48]; 249 uint8_t master_secret[48];
239 250
240 uint8_t encrypt_on_write;
241 int min_encrypted_len_on_read;
242 uint8_t client_write_MAC_key[SHA256_OUTSIZE];
243 uint8_t server_write_MAC_key[SHA256_OUTSIZE];
244 uint8_t client_write_key[AES256_KEYSIZE];
245 uint8_t server_write_key[AES256_KEYSIZE];
246
247 // RFC 5246 251 // RFC 5246
248 // sequence number 252 // sequence number
249 // Each connection state contains a sequence number, which is 253 // Each connection state contains a sequence number, which is
@@ -251,15 +255,13 @@ typedef struct tls_state {
251 // number MUST be set to zero whenever a connection state is made the 255 // number MUST be set to zero whenever a connection state is made the
252 // active state. Sequence numbers are of type uint64 and may not 256 // active state. Sequence numbers are of type uint64 and may not
253 // exceed 2^64-1. 257 // exceed 2^64-1.
258 /*uint64_t read_seq64_be;*/
254 uint64_t write_seq64_be; 259 uint64_t write_seq64_be;
255 260
256 int outbuf_size; 261 uint8_t client_write_MAC_key[SHA256_OUTSIZE];
257 uint8_t *outbuf; 262 uint8_t server_write_MAC_key[SHA256_OUTSIZE];
258 263 uint8_t client_write_key[AES256_KEYSIZE];
259 int inbuf_size; 264 uint8_t server_write_key[AES256_KEYSIZE];
260 int ofs_to_buffered;
261 int buffered_size;
262 uint8_t *inbuf;
263} tls_state_t; 265} tls_state_t;
264 266
265 267