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:
After https://github.com/facebookincubator/mvfst/issues/35 , the facility to mock fizz::Aead is not required anymore. Either the test depends on fizz's behavior, in which case a mock was never appropriate, or it doesn, in which case a quic::Aead is more appropriate.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/39
Reviewed By: mjoras
Differential Revision: D16785265
Pulled By: yangchi
fbshipit-source-id: ba74155ab7e8ed1c261c58569db0690781d85fe1
Summary:
This introduce the CryptoFactory abstraction that compute keys and AEAD to be used by most of mvfst.
The fizz specific parts are abstracted into a subclass, FizzCryptoFactory, and accessed using virtual methods.
Next step is to introduce QuicFizzFactory 's features into this abstraction.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/30
Reviewed By: JunqiWang
Differential Revision: D16459633
Pulled By: yangchi
fbshipit-source-id: 7fe2d3037ac604bfd5b002e6d25c1763e91e9472