ISCC - Crypto
iscc-crypto is the cryptographic signing and verification module for the ISCC
(International Standard Content Code) Framework.
Features
- Ed25519 key generation and management
- JSON canonicalization and signing
- W3C Verifiable Credentials Data Integrity proofs
- Multibase and multikey support
- Cryptographic nonce generation with embedded node identifier
- Command-line interface for key generation and identity management
- Minimal external dependencies for core cryptographic operations
Installation
Use the package manager pip to install iscc-crypto:
pip install iscc-crypto
Quick Start
>>> import json
>>> import iscc_crypto as icr
>>> keypair = icr.key_from_secret("z3u2So9EAtuYVuxGog4F2ksFGws8YT7pBPs4xyRbv3NJgrNA")
>>> # Sign a JSON document
>>> doc = {"title": "My Document", "content": "Important data"}
>>> signed_doc = icr.sign_json(doc, keypair)
>>> # Show the signed document structure
>>> print(json.dumps(signed_doc, indent=2))
{
"title": "My Document",
"content": "Important data",
"signature": {
"version": "ISCC-SIG v1.0",
"pubkey": "z6MkpFpVngrAUTSY6PagXa1x27qZqgdmmy3ZNWSBgyFSvBSx",
"proof": "z5xCgXk6tGJTVcvrcvVok5XgLn5Mefo49ztwwW8QCmjoySH4ZEkri4XoY2JjiyaD7yD4Na7eoGPqmhPoeM2uvBmF8"
}
}
>>> # Verify the signed document
>>> icr.verify_json(signed_doc)
VerificationResult(signature_valid=True, identity_verified=None, message=None)
Documentation
Documentation is published at https://crypto.iscc.codes
Development
Requirements
- Python 3.10 or higher
- UV for dependency management
Development Setup
git clone https://github.com/iscc/iscc-crypto.git
cd iscc-crypto
uv sync
Testing
Run the test suite:
uv run pytest
Maintainers
Contributing
Pull requests are welcome. For significant changes, please open an issue first to discuss your plans. Please make sure to update tests as appropriate.
You may also want to join our developer chat on Telegram at https://t.me/iscc_dev.
License
iscc-crypto is licensed under the Apache License, Version 2.0
Metadata
Release files for iscc-crypto 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| iscc_crypto-0.5.0.tar.gz | 324.3 kB | Without provenance | Details for iscc_crypto-0.5.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| iscc_crypto-0.5.0-py3-none-any.whl | Python 3 | none | any | Details for iscc_crypto-0.5.0-py3-none-any.whl |
Total release size: 348.2 kB
Release files / iscc_crypto-0.5.0.tar.gz
| Download URL | iscc_crypto-0.5.0.tar.gz |
|---|---|
| Size | 324.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
335052e52755a5edd681af59cc995d9d87a6600fa75d16004fa17a696c3d13ed
|
|
BLAKE2b-256 checksum How to use checksums |
20566a09ea5d8abc22d1fe5f63991d35bd64ebbaf0e51d11a538d5758392553f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.9
|
Release files / iscc_crypto-0.5.0-py3-none-any.whl
| Download URL | iscc_crypto-0.5.0-py3-none-any.whl |
|---|---|
| Size | 23.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ac6ce009ab0ad342a964ed397ca40f5e9dd609111db7085d03f6af2e4d6a7dc
|
|
BLAKE2b-256 checksum How to use checksums |
8996417a8ca2e2eb0ca834e057c25e191d32b1e7b122177b2a0aff049b221a51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.9
|
Security for iscc-crypto 0.5.0
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.