Size of the output buffer. It needs to be at least
as big as the expected result depending on the operation
After operation it will be updated with the actual size of the
result. In case of error where the dst sgl size was insufficient,
it will be updated to the size required for the operation.

Function invokes the protocol specific function to
store the secret private key along with parameters.
The implementation knows how to decode thie buffer

generate_public_key

Function generate the public key to be sent to the
counterpart. In case of error, where output is not big
enough req->dst_len will be updated to the size
required

compute_shared_secret

Function compute the shared secret as defined by
the algorithm. The result is given back to the user.
In case of error, where output is not big enough,
req->dst_len will be updated to the size required

max_size

Function returns the size of the output buffer

init

Initialize the object. This is called only once at
instantiation time. In case the cryptographic hardware
needs to be initialized. Software fallback should be
put in place here.

Buffer holding the packet representation of the private
key. The structure of the packet key depends on the particular
KPP implementation. Packing and unpacking helpers are provided
for ECDH and DH (see the respective header files for those
implementations).