A key agreement protocol is a means by which two parties engage in an exchange of incoming/outgoing messages, at the end of which, both participants would share a common secret. Such a shared secret can then be used to provide different security services such as replay detection, integrity protection, and confidentiality protection.
Four key agreement protocols are implemented in this library. They are:
The following sequence diagram shows a possible use of the key agreement API classes to negotiate a Diffie-Hellman protocol: