diff options
author | Simo Sorce <simo@redhat.com> | 2015-04-30 10:25:25 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2015-10-07 21:17:50 -0400 |
commit | a7c65b5ccdc188d739a1e21e89e3863b69449b34 (patch) | |
tree | 43c400d52239fb56e04ef48fb0de102d4146ea71 | |
parent | 7a477d3769c4f201088d539713354fb90446af77 (diff) | |
download | cryptography-a7c65b5ccdc188d739a1e21e89e3863b69449b34.tar.gz cryptography-a7c65b5ccdc188d739a1e21e89e3863b69449b34.tar.bz2 cryptography-a7c65b5ccdc188d739a1e21e89e3863b69449b34.zip |
Introduce Key Exchange Agreements interface
Signed-off-by: Simo Sorce <simo@redhat.com>
-rw-r--r-- | docs/hazmat/primitives/index.rst | 1 | ||||
-rw-r--r-- | docs/hazmat/primitives/key-exchange-agreements.rst | 23 | ||||
-rw-r--r-- | src/cryptography/hazmat/primitives/asymmetric/key_exchange.py | 18 |
3 files changed, 42 insertions, 0 deletions
diff --git a/docs/hazmat/primitives/index.rst b/docs/hazmat/primitives/index.rst index a9ab38a0..675111bb 100644 --- a/docs/hazmat/primitives/index.rst +++ b/docs/hazmat/primitives/index.rst @@ -15,3 +15,4 @@ Primitives constant-time interfaces twofactor + key-exchange-agreements diff --git a/docs/hazmat/primitives/key-exchange-agreements.rst b/docs/hazmat/primitives/key-exchange-agreements.rst new file mode 100644 index 00000000..8d79fbad --- /dev/null +++ b/docs/hazmat/primitives/key-exchange-agreements.rst @@ -0,0 +1,23 @@ +.. hazmat:: + +Key Exchange agreements +======================= + +.. module:: cryptography.hazmat.primitives.asymmetric.key_exchange + +Key exchange agreements are cryptographic operations, like Diffie-Hellman +key exchanges, that allow two parties to use their public-private key pairs +to establish a shared secret key over an insecure channel. Usually the +negotiated key is further derived before using it for symmetric operations. + +Interfaces +~~~~~~~~~~ + +.. class:: KeyExchangeContext + + .. versionadded:: 1.1 + + .. method:: agree(public_key) + + :param public_key: The peer public key, the type depends on the + crypto system used, for example :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey` diff --git a/src/cryptography/hazmat/primitives/asymmetric/key_exchange.py b/src/cryptography/hazmat/primitives/asymmetric/key_exchange.py new file mode 100644 index 00000000..a9846e28 --- /dev/null +++ b/src/cryptography/hazmat/primitives/asymmetric/key_exchange.py @@ -0,0 +1,18 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +from __future__ import absolute_import, division, print_function + +import abc + +import six + + +@six.add_metaclass(abc.ABCMeta) +class KeyExchangeContext(object): + @abc.abstractmethod + def agree(self, public_key): + """ + Returns the agreed key material. + """ |