proxygen
|
#include <OpenSSLKeyExchange.h>
Public Member Functions | |
~OpenSSLKeyExchange () override=default | |
void | generateKeyPair () override |
std::unique_ptr< folly::IOBuf > | getKeyShare () const override |
std::unique_ptr< folly::IOBuf > | generateSharedSecret (folly::ByteRange keyShare) const override |
![]() | |
virtual | ~KeyExchange ()=default |
Private Attributes | |
detail::OpenSSLECKeyExchange< T > | keyExchange_ |
Eliptic curve key exchange implementation using OpenSSL.
The template struct requires the following parameters:
Definition at line 25 of file OpenSSLKeyExchange.h.
|
overridedefault |
|
inlineoverridevirtual |
Generates an ephemeral key pair.
Implements fizz::KeyExchange.
Definition at line 29 of file OpenSSLKeyExchange.h.
References fizz::OpenSSLKeyExchange< T >::keyExchange_.
|
inlineoverridevirtual |
Generate a shared secret with our key pair and a peer's public key share.
Performs all necessary validation of the public key share and throws on error.
generateKeyPair() must be called before.
Implements fizz::KeyExchange.
Definition at line 41 of file OpenSSLKeyExchange.h.
References fizz::detail::OpenSSLECKeyDecoder< T >::decode(), and fizz::OpenSSLKeyExchange< T >::keyExchange_.
|
inlineoverridevirtual |
Returns the public key to share with peers.
generateKeyPair() must be called before.
Implements fizz::KeyExchange.
Definition at line 33 of file OpenSSLKeyExchange.h.
References fizz::detail::OpenSSLECKeyEncoder::encode(), and fizz::OpenSSLKeyExchange< T >::keyExchange_.
|
private |
Definition at line 48 of file OpenSSLKeyExchange.h.
Referenced by fizz::OpenSSLKeyExchange< T >::generateKeyPair(), fizz::OpenSSLKeyExchange< T >::generateSharedSecret(), and fizz::OpenSSLKeyExchange< T >::getKeyShare().