Skip to main content

Cryptographic recipes and primitives used in IVXV.

Project description

pyivxv

A Python3 library for common IVXV operations. IVXV is the codename for the current Estonian internet voting system.

Usage examples:

from pyivxv.crypto.keys import PublicKey
from pyivxv.encoding.message import decode_from_point

pk = PublicKey.from_public_bytes(b"...")

message = "0000.101"
ct = pk.encode_and_encrypt(message, store_ephemeral=True)

unblinded = ct.unblind(pk.H)
decoded = decode_from_point(unblinded, pk.curve).decode()

print("Message:", message)
print("Encryption randomness:", ct.ephemeral_random)
from pyivxv.crypto.keys import generate_private_key
from pyivxv.crypto.zkp import generate_decryption_proof

sk = generate_private_key()
pk = sk.public_key

message = "0000.101"
ct = pk.encode_and_encrypt(message)
M = sk.decrypt(ct)

proof = generate_decryption_proof(M, ct, sk)
proof.verify(M, ct, pk)

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

pyivxv-0.0.1a2.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyivxv-0.0.1a2-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file pyivxv-0.0.1a2.tar.gz.

File metadata

  • Download URL: pyivxv-0.0.1a2.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyivxv-0.0.1a2.tar.gz
Algorithm Hash digest
SHA256 c0a12d2481e0120f8504f68641eed81b94d5c60b8e34998c9e61872a5f4a4676
MD5 3c72581faaffbfda23e93d8d849dbc62
BLAKE2b-256 7b37e13048503aefab471fb8d829eef3b13f5216c99fcc6302b8fdabbea1d27b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyivxv-0.0.1a2.tar.gz:

Publisher: pypi-publish.yml on takakv/pyivxv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyivxv-0.0.1a2-py3-none-any.whl.

File metadata

  • Download URL: pyivxv-0.0.1a2-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyivxv-0.0.1a2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb0c98888249f462a21be2985d20ac8394044afa68dc3f9b11c023c81103d5a6
MD5 1bc05cf43d59fdd52fc255f3e614510f
BLAKE2b-256 3fd966253a4cb5cf7e44374cce58375e3a7f92a672dbf0503c12d514d3b4a4af

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyivxv-0.0.1a2-py3-none-any.whl:

Publisher: pypi-publish.yml on takakv/pyivxv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page