Jul 20, 2023

ECDSA cryptographic signature library (pure python)

This is an easy-to-use implementation of ECC Elliptic Curve Cryptography with support for ECDSA Elliptic Curve Digital Signature Algorithm and ECDH Elliptic Curve Diffie-Hellman, implemented purely in Python, released under the MIT license. With this library, you can quickly create key pairs signing key and verifying key, sign messages, and verify the signatures. You can also agree on a shared secret key based on exchanged public keys. The keys and signatures are very short, making them easy to handle and incorporate into other protocols.

This library provides key generation, signing, verifying, and shared secret derivation for five popular NIST “Suite B” GFp prime field curves, with key lengths of 192, 224, 256, 384, and 521 bits. The “short names” for these curves, as known by the OpenSSL tool openssl ecparam -list_curves, are prime192v1, secp224r1, prime256v1, secp384r1, and secp521r1. It includes the 256-bit curve secp256k1 used by Bitcoin. There is also support for the regular non-twisted variants of Brainpool curves from 160 to 512 bits. The “short names” of those curves are brainpoolP160r1, brainpoolP192r1, brainpoolP224r1, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1. Few of the small curves from SEC standard are also included mainly to speed-up testing of the library, those are secp112r1, secp112r2, secp128r1, and secp160r1. No other curves are included, but it is not too hard to add support for more curves over prime fields.

Checkout these related ports:
  • Zzuf - Transparent application input fuzzer
  • Zlint - X.509 certificate linter
  • Zeronet - Decentralized websites using Bitcoin crypto and BitTorrent network
  • Zenmap - GUI frontend for the Nmap scanning utility
  • Zeek - System for detecting network intruders in real-time
  • Zaproxy - The OWASP zed attack proxy
  • Yubioath-desktop - GUI for displaying OATH codes with a Yubikey
  • Yubikey-personalization-gui - Graphical YubiKey personalization tool
  • Yubikey-manager-qt - Cross-platform application for configuring any YubiKey
  • Yubikey-agent - Seamless ssh-agent for YubiKeys
  • Yubico-piv-tool - Yubico PIV tool
  • Ylva - Command line password manager and file encryption program
  • Ykpers - Library and tool for personalization of Yubico's YubiKey
  • Ykclient - Yubico C client library
  • Yersinia - Layer 2 vulnerability scanner (switches, spanning tree, 802.1q ...)