Skip to main content

Ephemeral Diffie-Hellman Over COSE (EDHOC)

Project description

py-edhoc:snake: -- Ephemeral Diffie-Hellman Over COSE

Python package Python 3.6+

This project provides a Python implementation of the EDHOC key exchange protocol for constrained devices. Currently the protocol is still in draft status at the IETF.

The repository provides an implementation of:


$ pip install edhoc

Running the test suite

The py-edhoc test suite is based on the official test vectors provided by the LAKE working group.

To run the test suite you'll need pytest:

$ pip install pytest

When you move to the root of the py-edhoc project you can run the test by simply typing:

$ pytest

Supported Cipher Suites

Cipher Suites COSE algorithms Support
SUITE 0 (AES-CCM-16-64-128, SHA-256, X25519, EdDSA, Ed25519, AES-CCM-16-64-128, SHA-256) :heavy_check_mark:
SUITE 1 (AES-CCM-16-128-128, SHA-256, X25519, EdDSA, Ed25519, AES-CCM-16-64-128, SHA-256) :heavy_check_mark:
SUITE 2 (AES-CCM-16-64-128, SHA-256, P-256, ES256, P-256, AES-CCM-16-64-128, SHA-256) :x:
SUITE 3 (AES-CCM-16-128-128, SHA-256, P-256, ES256, P-256, AES-CCM-16-64-128, SHA-256) :x:

Authentication Methods

Method Support
SIGN-SIGN :heavy_check_mark:
STATIC-SIGN :heavy_check_mark:
SIGN-STATIC :heavy_check_mark:
STATIC-STATIC :heavy_check_mark:


The project depends on the python cose package. cose uses pyca/cryptography for all cryptographic operations, except the deterministic ECDSA algorithm. For deterministic ECDSA cose uses python-ecdsa.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edhoc-0.2.dev3.tar.gz (12.1 kB view hashes)

Uploaded source

Built Distribution

edhoc-0.2.dev3-py3-none-any.whl (18.5 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page