Giter VIP home page Giter VIP logo

ecpy's Introduction

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

History

1.2.5

Fix issue 19

1.2.4

Fix ECDSA when mesaage hash length is greater than domain order length

Move from distutils to setuptools

1.2.3

Fix ECSchnorr when r is greater than order. Main use case is when using a hash function with bitlength greater than curve size.

1.2.2

Fix ECDSA with rfc6979. Field was used instead of order for max random.

1.2.1

Missing README update

1.2.0

Fix rfc6979. Now conform to RFC and fully compat with python-ecdsa (https://github.com/warner/python-ecdsa).

1.1.0

Fix DER encoding for length greater than 128

Declare ONE infinity point per curve. Consider global (non attached to a curve) infinity point as deprecated

Fix infinity point management in ECDSA

Fix issue #13

1.0.1beta

Merge PR11, fixing an overflow with secp521k1

1.0.0beta

Initial 1.x series (Beta)

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

ecpy's People

Contributors

cslashm avatar goodieshq avatar lucaspenido avatar ubinity avatar lochotzke avatar ledhed2222 avatar xenithorb avatar rgeslain-ledger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.