Summary: This implements the handshake done signal and also cipher dropping.
Reviewed By: yangchi
Differential Revision: D19584922
fbshipit-source-id: a98bec8f1076393b051ff65a2d8aae7d572b42f5
Summary:
This is a first step in a series of refactoring moving the fizz specific parts of the psk cache management in FizzCientHandshake.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/92
Reviewed By: mjoras
Differential Revision: D19699174
Pulled By: yangchi
fbshipit-source-id: 99c11da4c97e2f19874c1cedb23751c2392296cb
Summary:
The reduce unnecessary exposure of common code to fizz and hopefully gets us one step closer to complete separation.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/83
Reviewed By: sharma95
Differential Revision: D19386615
Pulled By: udippant
fbshipit-source-id: fc00dfb06630be54a42bc51ea4ee2c1d64270229
Summary:
This moves the fizz specific part of the handshake into its own folder and library.
There is a bit of smurf naming going on as a result, not sure it is worth fixing or not at this stage. Maybe this code should be a in namespace named quic::fizz .
This should be doable with the client as well as soon as the key cache situation is figured out.
---
## Proxygen Canary
Reviewed By: yangchi
Differential Revision: D19290919
fbshipit-source-id: 48d7f7c70db42c65f7dffe3256805c268a481198
Summary:
Replace them with home cooked union based variant type to remove boost
dependencies.
Reviewed By: siyengar
Differential Revision: D18445458
fbshipit-source-id: a1804bb2dc316128e36c90e7cb575b690c906409
Summary:
Starting to migrate fizz specific features to the fizz specific handshake class.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/65
Reviewed By: siyengar
Differential Revision: D18575268
Pulled By: mjoras
fbshipit-source-id: dc1a2f1705e28e1a7f857d9b026c8f15d735c455
Summary:
This separate the cipher management - which is generic - from the cipher construction - that is fizz specific.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/58
Reviewed By: sharma95
Differential Revision: D18044353
Pulled By: mjoras
fbshipit-source-id: eb498fa3dac1b1cd1678edbb6e1d250bc875fd2c
Summary:
This is done in order to keep make sure they can be refactored into some fizz specific code, and that fizz independent code can be shared.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/54
Reviewed By: mjoras
Differential Revision: D17898100
Pulled By: lnicco
fbshipit-source-id: e5ee1b0ae6d241bb04763aac3688338d70aaeb0b
Summary:
This is one more step toward isolating fizz specific code from the API. The elements that cannot be moved away can then be extracted into a pluggable component, at least that's the goal.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/47
Reviewed By: mjoras
Differential Revision: D17592394
Pulled By: yangchi
fbshipit-source-id: 7998a6cebea81221942ee9ee1cf49d89da3ebce0
Summary:
They are strongly coupled, which indicate this is probably better to do it as one class.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/44
Reviewed By: mjoras
Differential Revision: D17590918
Pulled By: yangchi
fbshipit-source-id: 2eaca079fd760107eefd2b74fa612d7a0c8b3001
Summary:
It is part of the public API and rely on fizz. Moreover, it is not used and therefore can be removed.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/48
Reviewed By: mjoras
Differential Revision: D17668100
Pulled By: yangchi
fbshipit-source-id: 6dc170ea6de5c0e333ce1c627bc3a272f3fbc2bf
Summary:
The CryptoFactory is extended with makePacketNumberCipher . In order to support that feature, FizzCryptoFactory now explicitly takes a QuicFizzFactory as argument instead of a generic fizz::Factory, which is the only type that is used in practice anyways.
The cypher argument was removed because:
1/ Only one cypher is used at all. Fizz also supports ChaCha20, but using it in mvfst will throw an exception.
2/ it seems like the factory should know what cypher it is dealing with.
If a choice of cypher needs to be supported going forward, it can be done by adding state to FizzCryptoFactory.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/40
Reviewed By: mjoras
Differential Revision: D16785274
Pulled By: yangchi
fbshipit-source-id: a1c490e34c5ddd107e8e068d8b127c1ed00a59ec
Summary:
Wrap the fizz::Aead as soon as fizz and it over to mvfst and use a quic::Aead everywhere else in ClientHandshake.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/34
Reviewed By: yangchi
Differential Revision: D16710812
Pulled By: mjoras
fbshipit-source-id: 9e6e342205367f84fa4dad6847db0207de245f89
Summary: This is the only cipher we support. Ideally we should have a proper list for this based on the existing fizz config, but for now just hardcode it so we aren't advertising ciphers in the handshake we don't support.
Reviewed By: JunqiWang
Differential Revision: D16444438
fbshipit-source-id: c89a8b5dcb85607304ad9e6fcbbad0864d2f5405
Summary:
This ensure a lot of code do not depend on fizz anymore.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/26
Reviewed By: mjoras, JunqiWang
Differential Revision: D16030663
Pulled By: yangchi
fbshipit-source-id: a3cc34905a6afb657da194e2166434425e7e163c
Summary:
This is based on top of https://github.com/facebookincubator/mvfst/issues/15 .
Now that the codebase have been refactored to use Aead/fizz:Aead and MockAead/fizz::test::MockAead in proper places, it is time to ensures the aren't aliases of each others anymore.
This introduces FizzAead as a wrapper for fizz::Aead that implements quic::Aead and forward all calls. Most of the codebase now uses quic::Aead, which a significant step toward being able to swap it for another implementation.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/16
Reviewed By: yangchi
Differential Revision: D15474068
Pulled By: mjoras
fbshipit-source-id: 7cccc9909a45ea538409645644641e39a58bf81d
Summary:
This introduce quic::Aead as a simple typedef to fizz::Aead and update the codebase to use quic::Aead . This should not impact the functionality of the code in any way.
This is a first step toward introducing an interface that is specific for mvfst so that mvfst can swap fizz for something else.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/12
Reviewed By: JunqiWang
Differential Revision: D15335324
Pulled By: mjoras
fbshipit-source-id: fef166a9a5c2cbae08ad9511d0abd749f330c221