Skip to main content

ECPy

ECPy (pronounced ekpy), is a pure python Elliptic Curve library providing ECDSA, EDDSA (Ed25519), ECSchnorr, Borromean signatures as well as Point operations.

Full html documentation is available here.

ECDSA sample

from ecpy.curves     import Curve,Point
from ecpy.keys       import ECPublicKey, ECPrivateKey
from ecpy.ecdsa      import ECDSA

cv   = Curve.get_curve('secp256k1')
pu_key = ECPublicKey(Point(0x65d5b8bf9ab1801c9f168d4815994ad35f1dcb6ae6c7a1a303966b677b813b00,
                       0xe6b865e529b8ecbf71cf966e900477d49ced5846d7662dd2dd11ccd55c0aff7f,
                       cv))
pv_key = ECPrivateKey(0xfb26a4e75eec75544c0f44e937dcf5ee6355c7176600b9688c667e5c283b43c5,
                  cv)


signer = ECDSA()
sig    = signer.sign(b'01234567890123456789012345678912',pv_key)
assert(signer.verify(b'01234567890123456789012345678912',sig,pu_key))

Point sample

from ecpy.curves     import Curve,Point

cv = Curve.get_curve('secp256k1')
P  = Point(0x65d5b8bf9ab1801c9f168d4815994ad35f1dcb6ae6c7a1a303966b677b813b00,
           0xe6b865e529b8ecbf71cf966e900477d49ced5846d7662dd2dd11ccd55c0aff7f,
           cv)
k  = 0xfb26a4e75eec75544c0f44e937dcf5ee6355c7176600b9688c667e5c283b43c5
Q  = k*P
R  = P+Q

Quick Install

From Pypi

$ pip install ECPy

From Github

From tarball dist

Download last dist tarball.

Untar it

$ tar xzvf ECPy-M.m.tar.gz

install it (or use it as is…)

$ python3 setup.py install

From sources

Clone the git repository

Rebuild the tarball

$ python3 setup.py sdist

Continue with the created tarball dist.

Generate the documentation

You can regenerate the doc from git clone

$ cd doc
$ make singlehtml

Documentation is in build dir

Release files for ECPy 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ECPy 1.0.0
File Size Uploaded
ECPy-1.0.0.tar.gz 35.7 kB Details

Release files / ECPy-1.0.0.tar.gz

Download URL ECPy-1.0.0.tar.gz
Size 35.7 kB
Tags Source
SHA-256 checksum
How to use checksums
137c4de065e0ecb4f76543fc2399042d6c90a20fa44fff34d4b53c2ea9ffd91b
BLAKE2b-256 checksum
How to use checksums
a4e758f1fd49cffddbb83b501d507e9e9e53af81944e6ec110534621cdf4b80a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

Release history Release notifications | RSS feed

1.2.5

2 release files

1.2.4

2 release files

1.2.3

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.1

1 release file

This release

1.0.0 This release

1 release file

0.10.0

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page