NEO3VM
C++ implementations of cryptographic functions used in the NEO3 Blockchain with bindings for Python 3.13 & 3.14.
The current version supports mmh3 and EllipticCurve functions by wrapping (part of smhasher and micro-ecc) and exposing helper classes. SECP256R1 (a.k.a NIST256P) and SECP256K1 are the only curves exposed, but others can easily be enabled if needed.
Installation
pip install neo3crypto
Or download the wheels from the Github releases page.
Windows users
If installing fails with the error No Matching distribution found then upgrade your Python installation to use the latest post release version (i.e. 3.10.8 instead of 3.10.0)
Usage
import hashlib
import os
from neo3crypto import ECCCurve, ECPoint, sign, verify, mmh3_hash_bytes, mmh3_hash
curve = ECCCurve.SECP256R1
private_key = os.urandom(32)
public_key = ECPoint(private_key, curve)
signature = sign(private_key, b'message', curve, hashlib.sha256)
assert verify(signature, b'message', public_key, hashlib.sha256) == True
assert mmh3_hash("foo", signed=False) == 4138058784
assert bytes.fromhex("0bc59d0ad25fde2982ed65af61227a0e") == mmh3_hash_bytes("hello", 123)
Any hashlib hashing function can be used. Further documentation on the classes can be queried from the extension module using help(neo3crypto).
Building wheels
Make sure to have wheel and CMake installed. Then call python setup.py bdist_wheel.
Metadata
Release files for neo3crypto 0.4.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 5.9 MB
Release files / neo3crypto-0.4.5-cp314-cp314-win_amd64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 121.1 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6781220e8f12b907f714103c8e77aaf8e99e585e99649322b62183ac3febdbc6
|
|
BLAKE2b-256 checksum How to use checksums |
bd1c55566fbf1370bb0d13f5b4e3d84df44ac971e7f6c3f88b392391bb28af10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
8326279ff74fb1830f180c8b7a97004206b10392dd5690415f6e74346ae69cac
|
|
BLAKE2b-256 checksum How to use checksums |
856bca551a689d75dd3b85bfd822c87b7f3dfa539332f2e762dedbf0937f1e8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
6f9399b958b20597fced9205477111ea6969785a8ff10c392bdaa9ae69d894c4
|
|
BLAKE2b-256 checksum How to use checksums |
9eb54e807c9246b23a47b8bb7e129b50fdba7ab702e09bb640b876b2bd0c9364
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 145.5 kB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
37a0798bdbde789ed96521ed5028c7912d91edef17d93318d7f0bdc8fd1791b4
|
|
BLAKE2b-256 checksum How to use checksums |
68b2272c9b4840e11cc7163f677707319c1d39b5d1435af319ca4574d4843f77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 136.5 kB |
| Tags | CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
bc8766585cbd2675fa4fee6d5739a39f0e2f826b0d94eceed20f3c61570cde24
|
|
BLAKE2b-256 checksum How to use checksums |
504ae20d2f5cd77db3bebcc0d4422ab83f74467781cf4ee0598f03c2478d7c9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 115.4 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
86160d70b168219b3e7b5e622ba5338e9af10dac7a6148a2df9eaf28c6e3b5fb
|
|
BLAKE2b-256 checksum How to use checksums |
e676ab8ce19d200ab0baac74281838173ebe66c6f280d498d767cf7a70d76735
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | neo3crypto-0.4.5-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 135.1 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
e2ef60a3003dbbb31927b373711c0d30ba7ee8a8288baa4a9d08ea356a981a0c
|
|
BLAKE2b-256 checksum How to use checksums |
bb0a10d80e56314ac17e6a5e670441c4ece3b394fe13a58dd923a79be686187e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-win_amd64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 118.4 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ef5f0e3db3d19fa99578de0eb2fea48cd6a99b0e3c420ec8be2c70ff2a893bda
|
|
BLAKE2b-256 checksum How to use checksums |
8cc16914c3c51d6e5288b40c801cd8a163d0c99706783225863770f16e7478df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
2c010571c4758be2721e0a5d83f173c2cb1336883539b6aa9583faac5b513e6c
|
|
BLAKE2b-256 checksum How to use checksums |
ebfdc0d41a01215398363f3ed9931ac69500c2f9840d470814bb10de6fe5ece4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
7a072ce57bf1b56f2afbb2734c99b96d6a48372288365722c069f6741a6e46c1
|
|
BLAKE2b-256 checksum How to use checksums |
9738b756553b5a85c070a7c53247004bd8b7e1eff0b964a594da8638b806336c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 145.4 kB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e7065f2fa09a4ccf5a8edb9934afc33c9ce7c8f8365bcce79bbeef0ceb089287
|
|
BLAKE2b-256 checksum How to use checksums |
1e27a4d6050865917576d7c1f1f95fd322a70391db8626e1e88cc9f3effe6ff2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 135.8 kB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
38b0d4faea20a2b4af61a31cf73b9afc0de520bc24201a1f13dd09b23074f764
|
|
BLAKE2b-256 checksum How to use checksums |
11d9e6306cc460df4ef35f6e4dc4ca501c6511dbb6a2d19239c01e5c9439ad66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 114.9 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dc027f42b7aabc2edd5bac6c1395d9101779ba96733a12427ed8e3100b35e1c9
|
|
BLAKE2b-256 checksum How to use checksums |
15c9f89c9d33eb3ca8bd048124c02d5ba983163a21d32e0b4996a57a6fbf6280
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / neo3crypto-0.4.5-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | neo3crypto-0.4.5-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 135.0 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
ed6a82656fea2fc044791718594cc93b192531362a5290f2ae2101bc7b09a154
|
|
BLAKE2b-256 checksum How to use checksums |
d83f4bfa22924160621fbe47fa7b207077cfa102e584cfe8494149f39327fe66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for neo3crypto 0.4.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.