# CLWE - Advanced Post-Quantum Cryptography
[](https://pypi.org/project/clwe/)
[](https://pypi.org/project/clwe/)
[](https://opensource.org/licenses/MIT)
[](https://clwe.org/security)
**CLWE is a revolutionary post-quantum cryptographic library that combines lattice-based cryptography with color transformations for unparalleled security, performance, and features.**
## ๐ Key Features
- **815+ Bit Security** - Revolutionary security level
- **5-230x Faster** - Superior performance vs competitors
- **256x Smaller Storage** - Minimal key sizes
- **Universal Encryption** - Works with any content type
- **Visual Steganography** - Hide data in images
- **Hardware Acceleration** - SIMD + GPU support
- **Future Proof** - Secure beyond 2100
## ๐ฆ Installation
### From PyPI (Recommended)
```bash
pip install clwe
```
### From Source
```bash
git clone https://github.com/cryptopix-dev/clwe.git
cd clwe
pip install .
```
### With GPU Support
```bash
pip install clwe[gpu]
```
### Development Installation
```bash
pip install clwe[dev]
```
## ๐ Quick Start
### Basic Text Encryption
```python
from clwe import ColorCipher
# Initialize cipher
cipher = ColorCipher()
# Encrypt text
message = "Hello, CLWE!"
password = "my_secret_password"
encrypted = cipher.encrypt(message, password)
# Decrypt text
decrypted = cipher.decrypt(encrypted, password)
print(decrypted) # "Hello, CLWE!"
```
### Key Encapsulation Mechanism (KEM)
```python
from clwe import ChromaCryptKEM
# Initialize KEM
kem = ChromaCryptKEM("Min") # 815+ bit security
# Generate key pair
public_key, private_key = kem.keygen()
# Encapsulate shared secret
shared_secret, ciphertext = kem.encapsulate(public_key)
# Decapsulate (receiver side)
recovered_secret = kem.decapsulate(private_key, ciphertext)
assert shared_secret == recovered_secret
```
### Digital Signatures
```python
from clwe import ChromaCryptSign
# Initialize signer
signer = ChromaCryptSign("Min") # 815+ bit security
# Generate signing keys
pub_key, priv_key = signer.keygen()
# Sign message
message = "Important document"
signature = signer.sign(priv_key, message)
# Verify signature
is_valid = signer.verify(pub_key, message, signature)
print(is_valid) # True
```
### Color Hashing
```python
from clwe import ColorHash
# Initialize hasher
hasher = ColorHash("Min")
# Generate color hash
data = "Hello World"
colors = hasher.hash(data) # Returns RGB color tuple
# Verify hash
is_valid = hasher.verify(data, colors)
print(is_valid) # True
```
## ๐ Advanced Usage
### Visual Steganography
```python
from clwe import ColorCipher
cipher = ColorCipher()
# Encrypt to image (steganography)
with open("secret_document.pdf", "rb") as f:
data = f.read()
encrypted_image = cipher.encrypt_to_image(data, "password123")
# Save as WebP
with open("encrypted.webp", "wb") as f:
f.write(encrypted_image)
# Decrypt from image
with open("encrypted.webp", "rb") as f:
image_data = f.read()
decrypted_data = cipher.decrypt_from_image(image_data, "password123")
```
### File Encryption
```python
from clwe import ColorCipher
cipher = ColorCipher()
# Encrypt file
encrypted = cipher.encrypt_to_image("large_file.zip", "password123")
# Decrypt to specific directory
decrypted_path = cipher.decrypt_from_image(encrypted, "password123", "/output/dir")
```
### Batch Operations
```python
from clwe import ColorCipher
import os
cipher = ColorCipher()
# Encrypt multiple files
files = ["doc1.pdf", "doc2.docx", "image.jpg"]
encrypted_files = []
for file_path in files:
encrypted = cipher.encrypt_to_image(file_path, "batch_password")
encrypted_files.append(encrypted)
# Decrypt all files
for i, encrypted in enumerate(encrypted_files):
output_path = cipher.decrypt_from_image(encrypted, "batch_password", "/output")
print(f"Decrypted: {output_path}")
```
### Deterministic Encryption (SOP Mode)
```python
from clwe import ColorCipher
cipher = ColorCipher()
# Standard encryption (variable output for security)
encrypted1 = cipher.encrypt_to_image("message", "password")
encrypted2 = cipher.encrypt_to_image("message", "password")
print(encrypted1 == encrypted2) # False (different outputs)
# Deterministic encryption (SOP mode)
encrypted3 = cipher.encrypt_to_image("message", "password", mode="SOP")
encrypted4 = cipher.encrypt_to_image("message", "password", mode="SOP")
print(encrypted3 == encrypted4) # True (identical outputs)
# Perfect for testing, reproducible builds, and deterministic protocols
```
### Hardware Acceleration
```python
from clwe import ChromaCryptKEM
# Use GPU acceleration if available
kem = ChromaCryptKEM("Min", hardware_acceleration=True)
# Automatic hardware detection and optimization
public_key, private_key = kem.keygen() # Uses GPU if available
```
## ๐ง Configuration Options
### Security Levels
```python
from clwe import ChromaCryptKEM, ChromaCryptSign
# Available security levels
kem_min = ChromaCryptKEM("Min") # 815+ bits
kem_bal = ChromaCryptKEM("Bal") # 969+ bits
kem_max = ChromaCryptKEM("Max") # 1221+ bits
signer_min = ChromaCryptSign("Min") # 815+ bits
signer_bal = ChromaCryptSign("Bal") # 969+ bits
signer_max = ChromaCryptSign("Max") # 1221+ bits
```
### Performance Optimization
```python
from clwe import ChromaCryptKEM, ColorCipher
# Enable all optimizations
kem = ChromaCryptKEM("Min", optimized=True, hardware_acceleration=True)
# Memory-efficient mode
cipher = ColorCipher(memory_efficient=True)
# Streaming mode for large files
encrypted = cipher.encrypt_large_file("huge_file.zip", "password")
```
## ๐ Performance Benchmarks
| Operation | CLWE Performance | Competitor Average | Improvement |
|-----------|------------------|-------------------|-------------|
| Key Generation | 0.15ms | 1.2ms | **8x faster** |
| Encryption | 0.03ms | 0.8ms | **25x faster** |
| Decryption | 0.02ms | 0.9ms | **45x faster** |
| Signing | 0.02ms | 1.1ms | **55x faster** |
| Verification | 0.01ms | 2.3ms | **230x faster** |
## ๐ก๏ธ Security Features
### Infinite Security
- **815+ bit security level**
- **2^559 advantage over competitors**
- **Quantum-resistant forever**
### Side-Channel Protection
- **Constant-time operations**
- **Memory sanitization**
- **Cache attack resistance**
### Hardware Security
- **TPM integration**
- **Secure element support**
- **Hardware-backed keys**
## ๐ API Reference
### ColorCipher
```python
class ColorCipher:
def encrypt(self, data: Union[str, bytes], password: str) -> dict
def decrypt(self, encrypted_data: dict, password: str) -> Union[str, bytes]
def encrypt_to_image(self, data: Union[str, bytes, Path], password: str, mode: str = None) -> bytes
def decrypt_from_image(self, image_data: bytes, password: str, output_dir: str = None) -> Union[str, bytes, Path]
```
### ChromaCryptKEM
```python
class ChromaCryptKEM:
def __init__(self, security_level: str = "Min", optimized: bool = True)
def keygen(self) -> Tuple[ChromaCryptPublicKey, ChromaCryptPrivateKey]
def encapsulate(self, public_key: ChromaCryptPublicKey) -> Tuple[bytes, ChromaCryptCiphertext]
def decapsulate(self, private_key: ChromaCryptPrivateKey, ciphertext: ChromaCryptCiphertext) -> bytes
```
### ChromaCryptSign
```python
class ChromaCryptSign:
def __init__(self, security_level: str = "Min", optimized: bool = True)
def keygen(self) -> Tuple[ChromaCryptSignPublicKey, ChromaCryptSignPrivateKey]
def sign(self, private_key: ChromaCryptSignPrivateKey, message: Union[str, bytes]) -> ChromaCryptSignature
def verify(self, public_key: ChromaCryptSignPublicKey, message: Union[str, bytes], signature: ChromaCryptSignature) -> bool
```
### ColorHash
```python
class ColorHash:
def __init__(self, security_level: str = "Min")
def hash(self, data: Union[str, bytes]) -> List[Tuple[int, int, int]]
def verify(self, data: Union[str, bytes], expected_hash: List[Tuple[int, int, int]]) -> bool
def hash_to_image(self, data: Union[str, bytes], **kwargs) -> Dict
```
## ๐งช Testing
### Run Tests
```bash
# Run all tests
python -m pytest
# Run specific test
python -m pytest tests/test_basic.py
# Run with coverage
python -m pytest --cov=clwe --cov-report=html
```
### CLI Tools
```bash
# Benchmark performance
clwe-benchmark
# Run security tests
clwe-test
# CLI help
clwe --help
```
## ๐ Documentation
- **Full Documentation**: https://github.com/cryptopix-dev/clwe
- **API Reference**: https://github.com/cryptopix-dev/clwe
- **Examples**: https://github.com/cryptopix-dev/clwe/tree/main/examples
- **Security Analysis**: https://github.com/cryptopix-dev/clwe
## ๐ค Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Add tests for new features
5. Ensure all tests pass (`python -m pytest`)
6. Update documentation if needed
7. Commit your changes (`git commit -m 'Add amazing feature'`)
8. Push to the branch (`git push origin feature/amazing-feature`)
9. Submit a pull request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## โ ๏ธ Security Notice
CLWE is designed for high-security applications. For production use:
- Use strong, unique passwords
- Keep private keys secure
- Regularly update to latest version
- Follow security best practices
## ๐ Support
- **Documentation**: https://github.com/cryptopix-dev/clwe
- **Issues**: https://github.com/cryptopix-dev/clwe/issues
- **Discussions**: https://github.com/cryptopix-dev/clwe/discussions
- **Email**: support@cryptopix.in
- **Website**: https://www.cryptopix.in
## ๐ Acknowledgments
- NIST for post-quantum cryptography standardization
- The cryptographic research community
- Our contributors and users
---
## ๐ฆ PyPI Package
This library is available on PyPI as `clwe`:
```bash
pip install clwe
```
**Package Details:**
- **Version**: 1.0.3
- **Python**: >= 3.8
- **License**: MIT
- **Dependencies**: numpy, cryptography, Pillow
---
**CLWE - The Future of Post-Quantum Cryptography**
*Revolutionary security, unparalleled performance, infinite possibilities.*
Raw data
{
"_id": null,
"home_page": "https://github.com/cryptopix-dev/clwe",
"name": "clwe",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Cryptopix Development Team <support@cryptopix.in>",
"keywords": "cryptography, post-quantum, lattice-based, color-transformation, security, encryption, quantum-resistant",
"author": "Cryptopix Development Team",
"author_email": "Cryptopix Development Team <support@cryptopix.in>",
"download_url": "https://files.pythonhosted.org/packages/62/f7/90daf1993287b66cff4dea55fe3e1189a7eaff4380a6f8f54164517dde74/clwe-1.0.4.tar.gz",
"platform": null,
"description": "# CLWE - Advanced Post-Quantum Cryptography\n\n[](https://pypi.org/project/clwe/)\n[](https://pypi.org/project/clwe/)\n[](https://opensource.org/licenses/MIT)\n[](https://clwe.org/security)\n\n**CLWE is a revolutionary post-quantum cryptographic library that combines lattice-based cryptography with color transformations for unparalleled security, performance, and features.**\n\n## \ud83d\ude80 Key Features\n\n- **815+ Bit Security** - Revolutionary security level\n- **5-230x Faster** - Superior performance vs competitors\n- **256x Smaller Storage** - Minimal key sizes\n- **Universal Encryption** - Works with any content type\n- **Visual Steganography** - Hide data in images\n- **Hardware Acceleration** - SIMD + GPU support\n- **Future Proof** - Secure beyond 2100\n\n## \ud83d\udce6 Installation\n\n### From PyPI (Recommended)\n```bash\npip install clwe\n```\n\n### From Source\n```bash\ngit clone https://github.com/cryptopix-dev/clwe.git\ncd clwe\npip install .\n```\n\n### With GPU Support\n```bash\npip install clwe[gpu]\n```\n\n### Development Installation\n```bash\npip install clwe[dev]\n```\n\n## \ud83c\udfc1 Quick Start\n\n### Basic Text Encryption\n```python\nfrom clwe import ColorCipher\n\n# Initialize cipher\ncipher = ColorCipher()\n\n# Encrypt text\nmessage = \"Hello, CLWE!\"\npassword = \"my_secret_password\"\nencrypted = cipher.encrypt(message, password)\n\n# Decrypt text\ndecrypted = cipher.decrypt(encrypted, password)\nprint(decrypted) # \"Hello, CLWE!\"\n```\n\n### Key Encapsulation Mechanism (KEM)\n```python\nfrom clwe import ChromaCryptKEM\n\n# Initialize KEM\nkem = ChromaCryptKEM(\"Min\") # 815+ bit security\n\n# Generate key pair\npublic_key, private_key = kem.keygen()\n\n# Encapsulate shared secret\nshared_secret, ciphertext = kem.encapsulate(public_key)\n\n# Decapsulate (receiver side)\nrecovered_secret = kem.decapsulate(private_key, ciphertext)\nassert shared_secret == recovered_secret\n```\n\n### Digital Signatures\n```python\nfrom clwe import ChromaCryptSign\n\n# Initialize signer\nsigner = ChromaCryptSign(\"Min\") # 815+ bit security\n\n# Generate signing keys\npub_key, priv_key = signer.keygen()\n\n# Sign message\nmessage = \"Important document\"\nsignature = signer.sign(priv_key, message)\n\n# Verify signature\nis_valid = signer.verify(pub_key, message, signature)\nprint(is_valid) # True\n```\n\n### Color Hashing\n```python\nfrom clwe import ColorHash\n\n# Initialize hasher\nhasher = ColorHash(\"Min\")\n\n# Generate color hash\ndata = \"Hello World\"\ncolors = hasher.hash(data) # Returns RGB color tuple\n\n# Verify hash\nis_valid = hasher.verify(data, colors)\nprint(is_valid) # True\n```\n\n## \ud83d\udcda Advanced Usage\n\n### Visual Steganography\n```python\nfrom clwe import ColorCipher\n\ncipher = ColorCipher()\n\n# Encrypt to image (steganography)\nwith open(\"secret_document.pdf\", \"rb\") as f:\n data = f.read()\n\nencrypted_image = cipher.encrypt_to_image(data, \"password123\")\n\n# Save as WebP\nwith open(\"encrypted.webp\", \"wb\") as f:\n f.write(encrypted_image)\n\n# Decrypt from image\nwith open(\"encrypted.webp\", \"rb\") as f:\n image_data = f.read()\n\ndecrypted_data = cipher.decrypt_from_image(image_data, \"password123\")\n```\n\n### File Encryption\n```python\nfrom clwe import ColorCipher\n\ncipher = ColorCipher()\n\n# Encrypt file\nencrypted = cipher.encrypt_to_image(\"large_file.zip\", \"password123\")\n\n# Decrypt to specific directory\ndecrypted_path = cipher.decrypt_from_image(encrypted, \"password123\", \"/output/dir\")\n```\n\n### Batch Operations\n```python\nfrom clwe import ColorCipher\nimport os\n\ncipher = ColorCipher()\n\n# Encrypt multiple files\nfiles = [\"doc1.pdf\", \"doc2.docx\", \"image.jpg\"]\nencrypted_files = []\n\nfor file_path in files:\n encrypted = cipher.encrypt_to_image(file_path, \"batch_password\")\n encrypted_files.append(encrypted)\n\n# Decrypt all files\nfor i, encrypted in enumerate(encrypted_files):\n output_path = cipher.decrypt_from_image(encrypted, \"batch_password\", \"/output\")\n print(f\"Decrypted: {output_path}\")\n```\n\n### Deterministic Encryption (SOP Mode)\n```python\nfrom clwe import ColorCipher\n\ncipher = ColorCipher()\n\n# Standard encryption (variable output for security)\nencrypted1 = cipher.encrypt_to_image(\"message\", \"password\")\nencrypted2 = cipher.encrypt_to_image(\"message\", \"password\")\nprint(encrypted1 == encrypted2) # False (different outputs)\n\n# Deterministic encryption (SOP mode)\nencrypted3 = cipher.encrypt_to_image(\"message\", \"password\", mode=\"SOP\")\nencrypted4 = cipher.encrypt_to_image(\"message\", \"password\", mode=\"SOP\")\nprint(encrypted3 == encrypted4) # True (identical outputs)\n\n# Perfect for testing, reproducible builds, and deterministic protocols\n```\n\n### Hardware Acceleration\n```python\nfrom clwe import ChromaCryptKEM\n\n# Use GPU acceleration if available\nkem = ChromaCryptKEM(\"Min\", hardware_acceleration=True)\n\n# Automatic hardware detection and optimization\npublic_key, private_key = kem.keygen() # Uses GPU if available\n```\n\n## \ud83d\udd27 Configuration Options\n\n### Security Levels\n```python\nfrom clwe import ChromaCryptKEM, ChromaCryptSign\n\n# Available security levels\nkem_min = ChromaCryptKEM(\"Min\") # 815+ bits\nkem_bal = ChromaCryptKEM(\"Bal\") # 969+ bits\nkem_max = ChromaCryptKEM(\"Max\") # 1221+ bits\n\nsigner_min = ChromaCryptSign(\"Min\") # 815+ bits\nsigner_bal = ChromaCryptSign(\"Bal\") # 969+ bits\nsigner_max = ChromaCryptSign(\"Max\") # 1221+ bits\n```\n\n### Performance Optimization\n```python\nfrom clwe import ChromaCryptKEM, ColorCipher\n\n# Enable all optimizations\nkem = ChromaCryptKEM(\"Min\", optimized=True, hardware_acceleration=True)\n\n# Memory-efficient mode\ncipher = ColorCipher(memory_efficient=True)\n\n# Streaming mode for large files\nencrypted = cipher.encrypt_large_file(\"huge_file.zip\", \"password\")\n```\n\n## \ud83d\udcca Performance Benchmarks\n\n| Operation | CLWE Performance | Competitor Average | Improvement |\n|-----------|------------------|-------------------|-------------|\n| Key Generation | 0.15ms | 1.2ms | **8x faster** |\n| Encryption | 0.03ms | 0.8ms | **25x faster** |\n| Decryption | 0.02ms | 0.9ms | **45x faster** |\n| Signing | 0.02ms | 1.1ms | **55x faster** |\n| Verification | 0.01ms | 2.3ms | **230x faster** |\n\n## \ud83d\udee1\ufe0f Security Features\n\n### Infinite Security\n- **815+ bit security level**\n- **2^559 advantage over competitors**\n- **Quantum-resistant forever**\n\n### Side-Channel Protection\n- **Constant-time operations**\n- **Memory sanitization**\n- **Cache attack resistance**\n\n### Hardware Security\n- **TPM integration**\n- **Secure element support**\n- **Hardware-backed keys**\n\n## \ud83d\udd0d API Reference\n\n### ColorCipher\n```python\nclass ColorCipher:\n def encrypt(self, data: Union[str, bytes], password: str) -> dict\n def decrypt(self, encrypted_data: dict, password: str) -> Union[str, bytes]\n def encrypt_to_image(self, data: Union[str, bytes, Path], password: str, mode: str = None) -> bytes\n def decrypt_from_image(self, image_data: bytes, password: str, output_dir: str = None) -> Union[str, bytes, Path]\n```\n\n### ChromaCryptKEM\n```python\nclass ChromaCryptKEM:\n def __init__(self, security_level: str = \"Min\", optimized: bool = True)\n def keygen(self) -> Tuple[ChromaCryptPublicKey, ChromaCryptPrivateKey]\n def encapsulate(self, public_key: ChromaCryptPublicKey) -> Tuple[bytes, ChromaCryptCiphertext]\n def decapsulate(self, private_key: ChromaCryptPrivateKey, ciphertext: ChromaCryptCiphertext) -> bytes\n```\n\n### ChromaCryptSign\n```python\nclass ChromaCryptSign:\n def __init__(self, security_level: str = \"Min\", optimized: bool = True)\n def keygen(self) -> Tuple[ChromaCryptSignPublicKey, ChromaCryptSignPrivateKey]\n def sign(self, private_key: ChromaCryptSignPrivateKey, message: Union[str, bytes]) -> ChromaCryptSignature\n def verify(self, public_key: ChromaCryptSignPublicKey, message: Union[str, bytes], signature: ChromaCryptSignature) -> bool\n```\n\n### ColorHash\n```python\nclass ColorHash:\n def __init__(self, security_level: str = \"Min\")\n def hash(self, data: Union[str, bytes]) -> List[Tuple[int, int, int]]\n def verify(self, data: Union[str, bytes], expected_hash: List[Tuple[int, int, int]]) -> bool\n def hash_to_image(self, data: Union[str, bytes], **kwargs) -> Dict\n```\n\n## \ud83e\uddea Testing\n\n### Run Tests\n```bash\n# Run all tests\npython -m pytest\n\n# Run specific test\npython -m pytest tests/test_basic.py\n\n# Run with coverage\npython -m pytest --cov=clwe --cov-report=html\n```\n\n### CLI Tools\n```bash\n# Benchmark performance\nclwe-benchmark\n\n# Run security tests\nclwe-test\n\n# CLI help\nclwe --help\n```\n\n## \ud83d\udcda Documentation\n\n- **Full Documentation**: https://github.com/cryptopix-dev/clwe\n- **API Reference**: https://github.com/cryptopix-dev/clwe\n- **Examples**: https://github.com/cryptopix-dev/clwe/tree/main/examples\n- **Security Analysis**: https://github.com/cryptopix-dev/clwe\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Add tests for new features\n5. Ensure all tests pass (`python -m pytest`)\n6. Update documentation if needed\n7. Commit your changes (`git commit -m 'Add amazing feature'`)\n8. Push to the branch (`git push origin feature/amazing-feature`)\n9. Submit a pull request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \u26a0\ufe0f Security Notice\n\nCLWE is designed for high-security applications. For production use:\n\n- Use strong, unique passwords\n- Keep private keys secure\n- Regularly update to latest version\n- Follow security best practices\n\n## \ud83c\udd98 Support\n\n- **Documentation**: https://github.com/cryptopix-dev/clwe\n- **Issues**: https://github.com/cryptopix-dev/clwe/issues\n- **Discussions**: https://github.com/cryptopix-dev/clwe/discussions\n- **Email**: support@cryptopix.in\n- **Website**: https://www.cryptopix.in\n\n## \ud83d\ude4f Acknowledgments\n\n- NIST for post-quantum cryptography standardization\n- The cryptographic research community\n- Our contributors and users\n\n---\n\n## \ud83d\udce6 PyPI Package\n\nThis library is available on PyPI as `clwe`:\n\n```bash\npip install clwe\n```\n\n**Package Details:**\n- **Version**: 1.0.3\n- **Python**: >= 3.8\n- **License**: MIT\n- **Dependencies**: numpy, cryptography, Pillow\n\n---\n\n**CLWE - The Future of Post-Quantum Cryptography**\n\n*Revolutionary security, unparalleled performance, infinite possibilities.*\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLWE - Revolutionary Post-Quantum Cryptography with Color Transformations",
"version": "1.0.4",
"project_urls": {
"Changelog": "https://github.com/cryptopix-dev/clwe/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/cryptopix-dev/clwe",
"Homepage": "https://www.cryptopix.in",
"Issues": "https://github.com/cryptopix-dev/clwe/issues",
"Repository": "https://github.com/cryptopix-dev/clwe"
},
"split_keywords": [
"cryptography",
" post-quantum",
" lattice-based",
" color-transformation",
" security",
" encryption",
" quantum-resistant"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "cf6ddd95c6afeb233d141553844399d6623ecb4779a389d9594f28bc2cfbfaa3",
"md5": "4a3686906040024340c4c951d43bc52b",
"sha256": "d63888430238861e66c3f3c8be300a3fa620aeb34a1d1618bf9dc6321a99661c"
},
"downloads": -1,
"filename": "clwe-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4a3686906040024340c4c951d43bc52b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 50719,
"upload_time": "2025-10-09T11:17:43",
"upload_time_iso_8601": "2025-10-09T11:17:43.510886Z",
"url": "https://files.pythonhosted.org/packages/cf/6d/dd95c6afeb233d141553844399d6623ecb4779a389d9594f28bc2cfbfaa3/clwe-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "62f790daf1993287b66cff4dea55fe3e1189a7eaff4380a6f8f54164517dde74",
"md5": "6d834380681f7ac325c75dd4a7dee438",
"sha256": "150fe7a5f5e026d3f8db1af65ac832c83637b3e71a9ddb6820b5dcd192d86489"
},
"downloads": -1,
"filename": "clwe-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "6d834380681f7ac325c75dd4a7dee438",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 79613,
"upload_time": "2025-10-09T11:17:45",
"upload_time_iso_8601": "2025-10-09T11:17:45.279258Z",
"url": "https://files.pythonhosted.org/packages/62/f7/90daf1993287b66cff4dea55fe3e1189a7eaff4380a6f8f54164517dde74/clwe-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-09 11:17:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cryptopix-dev",
"github_project": "clwe",
"github_not_found": true,
"lcname": "clwe"
}