Commit Graph

  • cb602de2a6 Pass in key type when decoding packets Dirkjan Ochtman 2018-04-25 14:08:09 +02:00
  • 06b5191d00 Move client code into new client module Dirkjan Ochtman 2018-04-25 13:47:42 +02:00
  • 8634105ac9 Rebuild client connect as a future Dirkjan Ochtman 2018-04-25 13:42:14 +02:00
  • 63655d1032 Add intermediate certificates to example server chain Dirkjan Ochtman 2018-04-25 14:55:15 +02:00
  • 59876386ab Fold PersistentState into ListenConfig Benjamin Saunders 2018-04-25 01:02:54 -07:00
  • 96db2f4d20 Trivial request processing server Benjamin Saunders 2018-04-24 23:27:07 -07:00
  • cdacfccfb9 API tweak Benjamin Saunders 2018-04-24 23:26:56 -07:00
  • 14061422ec Fix spurious finishing of blocked streams Benjamin Saunders 2018-04-24 23:26:33 -07:00
  • bc6fc09446 Fix initial remotely initiated send stream max data Benjamin Saunders 2018-04-24 23:20:08 -07:00
  • c14c59dc7e Rearrange names Benjamin Saunders 2018-04-24 22:44:40 -07:00
  • 94f3c63959 examples: support fetching arbitrary URLs Benjamin Saunders 2018-04-24 22:21:01 -07:00
  • 3d30b104b4 tokio: separate send/recv stream types Benjamin Saunders 2018-04-24 22:08:17 -07:00
  • 5dd7ac1359 Factor connection out of event enum Benjamin Saunders 2018-04-24 21:52:46 -07:00
  • 71927fb81d Draft tokio bindings Benjamin Saunders 2018-04-24 21:39:38 -07:00
  • 4cf122ade6 Expose stream finish state Benjamin Saunders 2018-04-24 21:05:42 -07:00
  • 3d8261e1f6 Explicitly stop idle timer on close timeout Benjamin Saunders 2018-04-24 21:04:44 -07:00
  • 5b81b6a5de Endpoint::get_side Benjamin Saunders 2018-04-24 21:04:16 -07:00
  • 3b9acb937f OpenSSL draft 28 Benjamin Saunders 2018-04-24 18:28:55 -07:00
  • f0e55aa3fe Cleanup Benjamin Saunders 2018-04-24 18:28:38 -07:00
  • 62a16fe62c Fix spurious loss detection timer starts Benjamin Saunders 2018-04-24 18:26:59 -07:00
  • f4065576d4 Fix inconsistent timer state tracking in handshake retransmit Benjamin Saunders 2018-04-24 18:26:19 -07:00
  • 1ee8915c0f Acknowledge Initial packet Benjamin Saunders 2018-04-24 18:25:47 -07:00
  • 1a7962dce7 More specific Endpoint::new error type Benjamin Saunders 2018-04-24 18:25:29 -07:00
  • b06e735529 Propagate address of new connections Benjamin Saunders 2018-04-24 18:24:39 -07:00
  • f32beaac69 Start to organize the client code Dirkjan Ochtman 2018-04-24 17:37:53 +02:00
  • 8680848708 Remove unused type NegotiationPacket Dirkjan Ochtman 2018-04-24 16:47:11 +02:00
  • 1cfec456f4 Add ACK frame to initial server response Dirkjan Ochtman 2018-04-24 16:43:50 +02:00
  • abca4337d1 Remove unused FrameType type Dirkjan Ochtman 2018-04-24 16:34:39 +02:00
  • ce19e15a30 Add data structure for ACK frames Dirkjan Ochtman 2018-04-24 16:33:04 +02:00
  • eea7191cc6 Derive PartialEq for Frame types Dirkjan Ochtman 2018-04-24 16:32:48 +02:00
  • 63da55fda5 Use new rustls APIs to send ServerHello Dirkjan Ochtman 2018-04-24 15:48:17 +02:00
  • 442987b8d5 Adapt to changes rustls API for client handshakes Dirkjan Ochtman 2018-04-24 14:00:19 +02:00
  • ac00a89c92 Add README Dirkjan Ochtman 2018-04-24 13:33:19 +02:00
  • 00e1e1443c Stream ID flow control, expose SNI and ALPN Benjamin Saunders 2018-04-23 17:58:32 -07:00
  • 8af45e0955 Increase buffer sizes to accomodate all non-jumbogram packets Dirkjan Ochtman 2018-04-23 16:42:10 +02:00
  • 79b566ed9f Move server code into a new server module Dirkjan Ochtman 2018-04-23 16:23:49 +02:00
  • 6d1b88d874 Resize buffer after decoding packets Dirkjan Ochtman 2018-04-23 16:18:05 +02:00
  • 470b27971d Rework public Packet interface Dirkjan Ochtman 2018-04-23 16:03:43 +02:00
  • 7c15e6a91a Rename proto module to packet Dirkjan Ochtman 2018-04-23 15:57:58 +02:00
  • 97348eb8d8 Improve formatting Dirkjan Ochtman 2018-04-23 15:56:43 +02:00
  • ad476345bc Ignore keys and certificates Dirkjan Ochtman 2018-04-23 15:55:43 +02:00
  • c0af9397a1 Implement server side of handshake Dirkjan Ochtman 2018-04-23 15:55:02 +02:00
  • 9413d265ea wip Dirkjan Ochtman 2018-04-23 15:53:54 +02:00
  • ffc02a142f Only add padding frames for Initial packets Dirkjan Ochtman 2018-04-23 15:47:42 +02:00
  • 00768125d4 Add method to create server handshake key Dirkjan Ochtman 2018-04-23 15:45:04 +02:00
  • c73b5d07b6 Store ALPN protocol string in a constant Dirkjan Ochtman 2018-04-23 15:44:17 +02:00
  • fbe1486e7b Refactor creation of handshake keys Dirkjan Ochtman 2018-04-23 14:07:52 +02:00
  • 49a51d2562 Use packet number in encryption and decryption Dirkjan Ochtman 2018-04-19 12:45:39 +02:00
  • df5be20eaf Add helper method Header::number() Dirkjan Ochtman 2018-04-19 12:45:26 +02:00
  • 3507c5bf04 Correct formatting with cargo fmt Dirkjan Ochtman 2018-04-19 11:56:34 +02:00
  • d30953a800 Change VarLen to be a tuple type Dirkjan Ochtman 2018-04-19 11:55:04 +02:00
  • 6654a2baa4 Show packet contents when sending Dirkjan Ochtman 2018-04-19 11:54:56 +02:00
  • ec70d59e00 Remove unused code for Tokio codec Dirkjan Ochtman 2018-04-19 11:47:04 +02:00
  • ad059dc6e5 Print Packet contents on receival Dirkjan Ochtman 2018-04-19 11:45:43 +02:00
  • 789d6daede Add tests for VarLen::decode() Dirkjan Ochtman 2018-04-19 11:45:28 +02:00
  • a41c7b71fa Add decode() method to Codec trait Dirkjan Ochtman 2018-04-19 11:45:14 +02:00
  • f2f5fc6faf Add PacketKey::decrypt() method Dirkjan Ochtman 2018-04-19 11:43:34 +02:00
  • 6a1e74c063 Implement helper method Header::conn_id() Dirkjan Ochtman 2018-04-19 11:42:51 +02:00
  • 93c9b00dcf Make VarLen::val field public Dirkjan Ochtman 2018-04-19 11:42:11 +02:00
  • 7da45ee332 Derive Debug for Packet Dirkjan Ochtman 2018-04-19 11:41:02 +02:00
  • 067f4a1f5e Change type for StreamFrame::offset Dirkjan Ochtman 2018-04-19 11:40:05 +02:00
  • b26ed5abec Derive Debug for Header Dirkjan Ochtman 2018-04-19 09:30:57 +02:00
  • de8e934109 Increase use of coding extension methods Benjamin Saunders 2018-04-18 22:35:57 -07:00
  • 6ef424009e Retransmit RST_STREAM and STOP_SENDING Benjamin Saunders 2018-04-18 22:25:35 -07:00
  • f2fa9d47c3 Stream/flow control fixes Benjamin Saunders 2018-04-18 21:51:54 -07:00
  • 07f47a9f8d Improvements for crypto API Dirkjan Ochtman 2018-04-18 16:47:58 +02:00
  • 19906addb3 Rename hkdf module to crypto Dirkjan Ochtman 2018-04-18 16:26:43 +02:00
  • ac9b78d161 Implement packet protection for handshake packets Dirkjan Ochtman 2018-04-18 16:25:27 +02:00
  • 4afb21c434 Match key phase in stateless reset Benjamin Saunders 2018-04-18 00:46:42 -07:00
  • cff5825810 Draft flow control Benjamin Saunders 2018-04-17 23:52:16 -07:00
  • bb2bc79582 Cleanup Benjamin Saunders 2018-04-17 21:53:13 -07:00
  • 6881f19d84 Encapsulate AEAD interface and minimize allocations Dirkjan Ochtman 2018-04-17 11:28:28 +02:00
  • f84c5e4405 Implement support for QHKDF (for client handshake) Dirkjan Ochtman 2018-04-17 10:59:39 +02:00
  • 138e8d093c Update long header, Arc<Config> Benjamin Saunders 2018-04-16 18:42:49 -07:00
  • 676f250fff Expose Server API from library Dirkjan Ochtman 2018-04-16 12:12:38 +02:00
  • 544e8fab33 Keep server running after serving response Dirkjan Ochtman 2018-04-16 11:28:46 +02:00
  • 7ce9a21e53 Move packet number into the header Dirkjan Ochtman 2018-04-16 10:52:45 +02:00
  • 1a68ee6c07 Let the server send some random bytes in response Dirkjan Ochtman 2018-04-12 12:30:16 +02:00
  • 7debd7e10f Update for packet coalescion Benjamin Saunders 2018-04-14 16:21:15 -07:00
  • 474f5e9e46 Fix connection lifetime Benjamin Saunders 2018-04-14 16:06:26 -07:00
  • f7a7825522 Fix example Benjamin Saunders 2018-04-14 14:44:32 -07:00
  • 7985d4df1d Fix missing cleanup Benjamin Saunders 2018-04-14 12:30:21 -07:00
  • 11563856f0 Additional documentation Benjamin Saunders 2018-04-14 12:29:21 -07:00
  • 89d0a7faea Properly size the response buffer Dirkjan Ochtman 2018-04-12 12:30:55 +02:00
  • 5bc0b8664e Send ALPN protocol identifier Dirkjan Ochtman 2018-04-11 13:33:11 +02:00
  • 6c94b3af38 Add initial implementation of server side Dirkjan Ochtman 2018-04-12 12:11:05 +02:00
  • 5c9839086c Don't ignore result in test Benjamin Saunders 2018-04-12 00:00:06 -07:00
  • 4e5083865b Simplify blocking events Benjamin Saunders 2018-04-11 23:59:55 -07:00
  • 1c460de39b Additional documentation Benjamin Saunders 2018-04-11 23:25:00 -07:00
  • 9ccb503b91 Towards flow control and a usable API Benjamin Saunders 2018-04-10 22:53:14 -07:00
  • 38552bbfac Take server host name as an argument Dirkjan Ochtman 2018-04-10 11:03:58 +02:00
  • e02263761d Fix frame length calculation for Stream frames Dirkjan Ochtman 2018-04-10 10:59:19 +02:00
  • 4f8d773f3e Fix header length calculation for long headers Dirkjan Ochtman 2018-04-10 10:58:53 +02:00
  • 8aec2d8f4e Encode the Stream ID for Stream frames Dirkjan Ochtman 2018-04-10 10:41:46 +02:00
  • bc428af22b Silence some warnings Dirkjan Ochtman 2018-04-10 10:35:46 +02:00
  • b76c299aaf Move codec types into codec module Dirkjan Ochtman 2018-04-10 10:32:06 +02:00
  • 67a57b698a Move Frame and related types into frame module Dirkjan Ochtman 2018-04-10 10:25:42 +02:00
  • 9fd0379637 Correctly set version to draft 10 Dirkjan Ochtman 2018-04-10 10:19:15 +02:00
  • 5cd86ad770 Start sending and receiving datagrams Dirkjan Ochtman 2018-04-10 10:18:30 +02:00
  • 33d34c93a5 Separate send/recv stream states Benjamin Saunders 2018-04-09 19:00:23 -07:00