fastcrypter 2.3.6__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/MANIFEST.in +5 -6
- {fastcrypter-2.3.6/fastcrypter.egg-info → fastcrypter-2.4.0}/PKG-INFO +55 -73
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/README.md +46 -45
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/examples/algorithm_test.py +16 -16
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/examples/basic_usage.py +15 -15
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/examples/custom_encoding_test.py +24 -24
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/examples/file_test.py +17 -17
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/examples/native_performance_test.py +27 -27
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/__init__.py +2 -2
- fastcrypter-2.4.0/fastcrypter/core/__init__.py +21 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/core/custom_encoder.py +104 -85
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/core/key_manager.py +2 -2
- fastcrypter-2.4.0/fastcrypter/native/Makefile +152 -0
- fastcrypter-2.4.0/fastcrypter/native/crypto_core.c +289 -0
- fastcrypter-2.4.0/fastcrypter/native/hash_algorithms.cpp +427 -0
- fastcrypter-2.4.0/fastcrypter/native/native_loader.py +486 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0/fastcrypter.egg-info}/PKG-INFO +55 -73
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter.egg-info/SOURCES.txt +15 -2
- fastcrypter-2.4.0/fastcrypter.egg-info/entry_points.txt +2 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter.egg-info/requires.txt +0 -13
- fastcrypter-2.4.0/pyproject.toml +79 -0
- fastcrypter-2.4.0/requirements.txt +9 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/setup.py +19 -37
- fastcrypter-2.4.0/tests/__init__.py +5 -0
- fastcrypter-2.4.0/tests/conftest.py +23 -0
- fastcrypter-2.4.0/tests/test_compressor.py +124 -0
- fastcrypter-2.4.0/tests/test_custom_encoder.py +101 -0
- fastcrypter-2.4.0/tests/test_encryptor.py +134 -0
- fastcrypter-2.4.0/tests/test_examples.py +236 -0
- fastcrypter-2.4.0/tests/test_file_encryptor.py +68 -0
- fastcrypter-2.4.0/tests/test_key_manager.py +124 -0
- fastcrypter-2.4.0/tests/test_secure_compressor.py +151 -0
- fastcrypter-2.3.6/.github/workflows/pypi.yml +0 -156
- fastcrypter-2.3.6/fastcrypter/core/__init__.py +0 -16
- fastcrypter-2.3.6/fastcrypter.egg-info/entry_points.txt +0 -2
- fastcrypter-2.3.6/requirements.txt +0 -36
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/LICENSE +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/advanced_encryptor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/algorithms/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/algorithms/compression/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/algorithms/encryption/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/core/compressor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/core/encryptor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/core/enhanced_compressor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/exceptions.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/file_encryptor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/secure_compressor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter/utils/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter.egg-info/dependency_links.txt +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/fastcrypter.egg-info/top_level.txt +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.4.0}/setup.cfg +0 -0
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
# Include documentation files
|
|
2
2
|
include README.md
|
|
3
3
|
include LICENSE
|
|
4
|
-
include TASK.md
|
|
5
4
|
|
|
6
5
|
# Include requirements
|
|
7
6
|
include requirements.txt
|
|
8
7
|
|
|
9
8
|
# Include native library source files
|
|
10
|
-
recursive-include
|
|
11
|
-
include
|
|
9
|
+
recursive-include fastcrypter/native *.c *.cpp *.h *.hpp
|
|
10
|
+
include fastcrypter/native/Makefile
|
|
12
11
|
|
|
13
12
|
# Include compiled native libraries (if they exist)
|
|
14
|
-
recursive-include
|
|
13
|
+
recursive-include fastcrypter/native/libs *.so *.dll *.dylib
|
|
15
14
|
|
|
16
15
|
# Include examples
|
|
17
16
|
recursive-include examples *.py *.md
|
|
@@ -22,8 +21,8 @@ recursive-include tests *.py
|
|
|
22
21
|
# Include documentation
|
|
23
22
|
recursive-include docs *.md *.rst *.txt
|
|
24
23
|
|
|
25
|
-
# Include
|
|
26
|
-
|
|
24
|
+
# Include GitLab CI configuration
|
|
25
|
+
include .gitlab-ci.yml
|
|
27
26
|
|
|
28
27
|
# Exclude unnecessary files
|
|
29
28
|
global-exclude *.pyc
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastcrypter
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Professional compression and encryption library with native C/C++ acceleration
|
|
5
|
-
Home-page: https://
|
|
5
|
+
Home-page: https://gitlab.com/Pymmdrza/fastCrypter
|
|
6
6
|
Author: Mmdrza
|
|
7
|
-
Author-email: pymmdrza@gmail.com
|
|
8
|
-
|
|
9
|
-
Project-URL:
|
|
10
|
-
Project-URL:
|
|
7
|
+
Author-email: Mmdrza <pymmdrza@gmail.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://gitlab.com/Pymmdrza/fastCrypter
|
|
10
|
+
Project-URL: Bug Reports, https://gitlab.com/Pymmdrza/fastCrypter/-/issues
|
|
11
|
+
Project-URL: Source, https://gitlab.com/Pymmdrza/fastCrypter
|
|
12
|
+
Project-URL: Documentation, https://fastcrypter.readthedocs.io/
|
|
11
13
|
Keywords: encryption,compression,security,cryptography,aes,chacha20,rsa,zlib,lzma,brotli,native,performance,c++,custom-encoding,fast
|
|
12
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
13
15
|
Classifier: Intended Audience :: Developers
|
|
@@ -19,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
19
21
|
Classifier: Programming Language :: Python :: 3.10
|
|
20
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
25
|
Classifier: Topic :: Security :: Cryptography
|
|
23
26
|
Classifier: Topic :: System :: Archiving :: Compression
|
|
24
27
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
@@ -29,19 +32,6 @@ Requires-Dist: cryptography
|
|
|
29
32
|
Requires-Dist: pycryptodome
|
|
30
33
|
Requires-Dist: brotli
|
|
31
34
|
Requires-Dist: argon2-cffi
|
|
32
|
-
Requires-Dist: bcrypt
|
|
33
|
-
Requires-Dist: numpy
|
|
34
|
-
Requires-Dist: cython
|
|
35
|
-
Requires-Dist: pytest
|
|
36
|
-
Requires-Dist: pytest-cov
|
|
37
|
-
Requires-Dist: pytest-benchmark
|
|
38
|
-
Requires-Dist: black
|
|
39
|
-
Requires-Dist: flake8
|
|
40
|
-
Requires-Dist: mypy
|
|
41
|
-
Requires-Dist: sphinx
|
|
42
|
-
Requires-Dist: sphinx-rtd-theme
|
|
43
|
-
Requires-Dist: psutil
|
|
44
|
-
Requires-Dist: tqdm
|
|
45
35
|
Provides-Extra: dev
|
|
46
36
|
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
47
37
|
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
@@ -56,78 +46,70 @@ Provides-Extra: native
|
|
|
56
46
|
Requires-Dist: numpy>=1.24.0; extra == "native"
|
|
57
47
|
Requires-Dist: cython>=3.0.0; extra == "native"
|
|
58
48
|
Dynamic: author
|
|
59
|
-
Dynamic: author-email
|
|
60
|
-
Dynamic: classifier
|
|
61
|
-
Dynamic: description
|
|
62
|
-
Dynamic: description-content-type
|
|
63
49
|
Dynamic: home-page
|
|
64
|
-
Dynamic: keywords
|
|
65
50
|
Dynamic: license-file
|
|
66
|
-
Dynamic: project-url
|
|
67
|
-
Dynamic: provides-extra
|
|
68
|
-
Dynamic: requires-dist
|
|
69
51
|
Dynamic: requires-python
|
|
70
|
-
Dynamic: summary
|
|
71
52
|
|
|
72
|
-
#
|
|
53
|
+
# fastCrypter
|
|
73
54
|
|
|
74
55
|
**Professional Compression and Encryption Library with Native C/C++ Acceleration**
|
|
75
56
|
|
|
57
|
+
[](https://gitlab.com/Pymmdrza/fastCrypter/-/pipelines)
|
|
76
58
|
[](https://python.org)
|
|
77
59
|
[](LICENSE)
|
|
78
|
-
[](https://pypi.org/project/fastcrypter/)
|
|
61
|
+
[](https://pypi.org/project/fastcrypter/)
|
|
80
62
|
|
|
81
63
|
fastCrypter is a powerful Python library that combines advanced compression and encryption techniques with native C/C++ acceleration for maximum performance. It provides a comprehensive suite of tools for secure data handling, from simple file encryption to complex custom encoding schemes.
|
|
82
64
|
|
|
83
|
-
##
|
|
65
|
+
## Key Features
|
|
84
66
|
|
|
85
|
-
###
|
|
67
|
+
### Advanced Encryption
|
|
86
68
|
- **Multiple Algorithms**: AES-256-GCM, ChaCha20-Poly1305, RSA
|
|
87
69
|
- **Secure Key Management**: PBKDF2, Argon2, secure random generation
|
|
88
70
|
- **Digital Signatures**: RSA and ECC-based signing
|
|
89
71
|
- **Custom Encoding**: User-defined character sets for obfuscation
|
|
90
72
|
|
|
91
|
-
###
|
|
73
|
+
### High-Performance Compression
|
|
92
74
|
- **Multiple Formats**: ZLIB, LZMA, Brotli, custom RLE
|
|
93
75
|
- **Adaptive Algorithms**: Automatic best-fit selection
|
|
94
76
|
- **Native Acceleration**: C/C++ libraries for critical operations
|
|
95
77
|
- **Memory Efficient**: Streaming support for large files
|
|
96
78
|
|
|
97
|
-
###
|
|
79
|
+
### Native Performance
|
|
98
80
|
- **C/C++ Libraries**: Optimized crypto and hash operations
|
|
99
81
|
- **SIMD Instructions**: Vectorized operations where available
|
|
100
82
|
- **Cross-Platform**: Windows (.dll), Linux (.so), macOS (.dylib)
|
|
101
83
|
- **Automatic Fallback**: Pure Python when native libs unavailable
|
|
102
84
|
|
|
103
|
-
###
|
|
85
|
+
### Security Features
|
|
104
86
|
- **Secure Memory**: Protected key storage and cleanup
|
|
105
87
|
- **Entropy Analysis**: Data randomness validation
|
|
106
88
|
- **Side-Channel Protection**: Constant-time operations
|
|
107
89
|
- **Audit Trail**: Comprehensive logging and validation
|
|
108
90
|
|
|
109
|
-
##
|
|
91
|
+
## Quick Start
|
|
110
92
|
|
|
111
93
|
### Installation
|
|
112
94
|
|
|
113
95
|
```bash
|
|
114
96
|
# Install from PyPI
|
|
115
|
-
pip install
|
|
97
|
+
pip install fastcrypter
|
|
116
98
|
|
|
117
99
|
# Install with development dependencies
|
|
118
|
-
pip install
|
|
100
|
+
pip install fastcrypter[dev]
|
|
119
101
|
|
|
120
102
|
# Install with native compilation support
|
|
121
|
-
pip install
|
|
103
|
+
pip install fastcrypter[native]
|
|
122
104
|
```
|
|
123
105
|
|
|
124
106
|
### Basic Usage
|
|
125
107
|
|
|
126
108
|
```python
|
|
127
|
-
import
|
|
109
|
+
import fastcrypter
|
|
128
110
|
|
|
129
111
|
# Get the recommended compressor (automatically uses native acceleration if available)
|
|
130
|
-
compressor =
|
|
112
|
+
compressor = fastcrypter.get_recommended_compressor(password="your_secure_password")
|
|
131
113
|
|
|
132
114
|
# Compress and encrypt data
|
|
133
115
|
data = b"Your sensitive data here"
|
|
@@ -141,7 +123,7 @@ assert data == decrypted
|
|
|
141
123
|
### Custom Encoding Example
|
|
142
124
|
|
|
143
125
|
```python
|
|
144
|
-
from
|
|
126
|
+
from fastcrypter import CustomEncoder
|
|
145
127
|
|
|
146
128
|
# Create custom encoder with your character set
|
|
147
129
|
encoder = CustomEncoder(charset="abcdef98Xvbvii")
|
|
@@ -159,7 +141,7 @@ assert original == decoded
|
|
|
159
141
|
### File Encryption
|
|
160
142
|
|
|
161
143
|
```python
|
|
162
|
-
from
|
|
144
|
+
from fastcrypter import FileEncryptor
|
|
163
145
|
|
|
164
146
|
# Initialize file encryptor
|
|
165
147
|
encryptor = FileEncryptor(password="your_password")
|
|
@@ -171,9 +153,9 @@ encryptor.encrypt_file("document.pdf", "document.pdf.encrypted")
|
|
|
171
153
|
encryptor.decrypt_file("document.pdf.encrypted", "document_restored.pdf")
|
|
172
154
|
```
|
|
173
155
|
|
|
174
|
-
##
|
|
156
|
+
## Native Compilation
|
|
175
157
|
|
|
176
|
-
|
|
158
|
+
fastcrypter includes C/C++ libraries for performance-critical operations:
|
|
177
159
|
|
|
178
160
|
### Automatic Compilation
|
|
179
161
|
|
|
@@ -192,11 +174,11 @@ python build_native.py --release
|
|
|
192
174
|
|
|
193
175
|
```bash
|
|
194
176
|
# Using Make (Linux/macOS)
|
|
195
|
-
cd
|
|
177
|
+
cd fastcrypter/native
|
|
196
178
|
make all
|
|
197
179
|
|
|
198
180
|
# Using MinGW (Windows)
|
|
199
|
-
cd
|
|
181
|
+
cd fastcrypter/native
|
|
200
182
|
mingw32-make all
|
|
201
183
|
```
|
|
202
184
|
|
|
@@ -209,11 +191,11 @@ Native libraries provide significant performance improvements:
|
|
|
209
191
|
- **Key Derivation**: 2-4x faster PBKDF2
|
|
210
192
|
- **Compression**: 1.5-2x faster RLE compression
|
|
211
193
|
|
|
212
|
-
##
|
|
194
|
+
## Performance Benchmarks
|
|
213
195
|
|
|
214
196
|
```python
|
|
215
197
|
# Run comprehensive benchmarks
|
|
216
|
-
results =
|
|
198
|
+
results = fastcrypter.benchmark_available_features(data_size=1024*1024)
|
|
217
199
|
print(f"Native acceleration: {results['performance']['native']['available']}")
|
|
218
200
|
print(f"Speedup factor: {results['performance'].get('speedup', 'N/A')}")
|
|
219
201
|
```
|
|
@@ -223,12 +205,12 @@ Example results on modern hardware:
|
|
|
223
205
|
- **Enhanced Mode**: ~150 MB/s with native acceleration
|
|
224
206
|
- **Memory Usage**: <100MB for 1GB files (streaming)
|
|
225
207
|
|
|
226
|
-
##
|
|
208
|
+
## Advanced Features
|
|
227
209
|
|
|
228
210
|
### Enhanced Compressor
|
|
229
211
|
|
|
230
212
|
```python
|
|
231
|
-
from
|
|
213
|
+
from fastcrypter import EnhancedCompressor
|
|
232
214
|
|
|
233
215
|
# Create enhanced compressor with native acceleration
|
|
234
216
|
compressor = EnhancedCompressor(
|
|
@@ -239,13 +221,13 @@ compressor = EnhancedCompressor(
|
|
|
239
221
|
|
|
240
222
|
# Check if native libraries are available
|
|
241
223
|
if compressor.is_native_available():
|
|
242
|
-
print("
|
|
224
|
+
print("Native acceleration enabled!")
|
|
243
225
|
```
|
|
244
226
|
|
|
245
227
|
### Custom Algorithms
|
|
246
228
|
|
|
247
229
|
```python
|
|
248
|
-
from
|
|
230
|
+
from fastcrypter.core import Compressor, CompressionAlgorithmType
|
|
249
231
|
|
|
250
232
|
# Use specific compression algorithm
|
|
251
233
|
compressor = Compressor(
|
|
@@ -257,7 +239,7 @@ compressor = Compressor(
|
|
|
257
239
|
### Secure Key Management
|
|
258
240
|
|
|
259
241
|
```python
|
|
260
|
-
from
|
|
242
|
+
from fastcrypter import KeyManager
|
|
261
243
|
|
|
262
244
|
# Generate secure keys
|
|
263
245
|
key_manager = KeyManager()
|
|
@@ -268,16 +250,16 @@ encryption_key = key_manager.derive_key(master_key, b"encryption", 32)
|
|
|
268
250
|
signing_key = key_manager.derive_key(master_key, b"signing", 32)
|
|
269
251
|
```
|
|
270
252
|
|
|
271
|
-
##
|
|
253
|
+
## Testing
|
|
272
254
|
|
|
273
|
-
|
|
255
|
+
fastcrypter includes comprehensive tests:
|
|
274
256
|
|
|
275
257
|
```bash
|
|
276
258
|
# Run all tests
|
|
277
259
|
python -m pytest tests/ -v
|
|
278
260
|
|
|
279
261
|
# Run with coverage
|
|
280
|
-
python -m pytest tests/ --cov=
|
|
262
|
+
python -m pytest tests/ --cov=fastcrypter --cov-report=html
|
|
281
263
|
|
|
282
264
|
# Run performance tests
|
|
283
265
|
python -m pytest tests/test_performance.py -v
|
|
@@ -286,13 +268,13 @@ python -m pytest tests/test_performance.py -v
|
|
|
286
268
|
python final_test.py
|
|
287
269
|
```
|
|
288
270
|
|
|
289
|
-
##
|
|
271
|
+
## Development
|
|
290
272
|
|
|
291
273
|
### Setting Up Development Environment
|
|
292
274
|
|
|
293
275
|
```bash
|
|
294
276
|
# Clone repository
|
|
295
|
-
git clone https://
|
|
277
|
+
git clone https://gitlab.com/Pymmdrza/fastCrypter.git
|
|
296
278
|
cd fastCrypter
|
|
297
279
|
|
|
298
280
|
# Install in development mode
|
|
@@ -309,22 +291,22 @@ python -m pytest
|
|
|
309
291
|
|
|
310
292
|
```bash
|
|
311
293
|
# Format code
|
|
312
|
-
black
|
|
294
|
+
black fastcrypter/ tests/
|
|
313
295
|
|
|
314
296
|
# Lint code
|
|
315
|
-
flake8
|
|
297
|
+
flake8 fastcrypter/ tests/
|
|
316
298
|
|
|
317
299
|
# Type checking
|
|
318
|
-
mypy
|
|
300
|
+
mypy fastcrypter/
|
|
319
301
|
```
|
|
320
302
|
|
|
321
|
-
##
|
|
303
|
+
## Documentation
|
|
322
304
|
|
|
323
305
|
- **API Reference**: [ [Document](https://fastcrypter.readthedocs.io) ]
|
|
324
|
-
- **Examples**: See `examples/` directory [Examples](https://
|
|
306
|
+
- **Examples**: See `examples/` directory [Examples](https://gitlab.com/Pymmdrza/fastCrypter/-/tree/main/examples)
|
|
325
307
|
- **Performance Guide**: [Performance Optimization](docs/performance.md)
|
|
326
308
|
|
|
327
|
-
##
|
|
309
|
+
## Contributing
|
|
328
310
|
|
|
329
311
|
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
330
312
|
|
|
@@ -335,25 +317,25 @@ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) f
|
|
|
335
317
|
3. Make your changes
|
|
336
318
|
4. Add tests for new functionality
|
|
337
319
|
5. Ensure all tests pass
|
|
338
|
-
6. Submit a
|
|
320
|
+
6. Submit a merge request
|
|
339
321
|
|
|
340
|
-
##
|
|
322
|
+
## License
|
|
341
323
|
|
|
342
324
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
343
325
|
|
|
344
|
-
##
|
|
326
|
+
## Acknowledgments
|
|
345
327
|
|
|
346
328
|
- **Cryptography**: Built on industry-standard libraries
|
|
347
329
|
- **Performance**: Inspired by high-performance computing practices
|
|
348
330
|
- **Security**: Following OWASP and NIST guidelines
|
|
349
331
|
- **Community**: Thanks to all contributors and users
|
|
350
332
|
|
|
351
|
-
##
|
|
333
|
+
## Support
|
|
352
334
|
|
|
353
|
-
- **Issues**: [
|
|
354
|
-
- **Discussions**: [
|
|
335
|
+
- **Issues**: [GitLab Issues](https://gitlab.com/Pymmdrza/fastCrypter/-/issues)
|
|
336
|
+
- **Discussions**: [GitLab Discussions](https://gitlab.com/Pymmdrza/fastCrypter/-/discussions)
|
|
355
337
|
- **Email**: pymmdrza@gmail.com
|
|
356
338
|
|
|
357
339
|
---
|
|
358
340
|
|
|
359
|
-
|
|
341
|
+
**fastcrypter** - Making encryption fast, secure, and accessible!
|
|
@@ -1,62 +1,63 @@
|
|
|
1
|
-
#
|
|
1
|
+
# fastCrypter
|
|
2
2
|
|
|
3
3
|
**Professional Compression and Encryption Library with Native C/C++ Acceleration**
|
|
4
4
|
|
|
5
|
+
[](https://gitlab.com/Pymmdrza/fastCrypter/-/pipelines)
|
|
5
6
|
[](https://python.org)
|
|
6
7
|
[](LICENSE)
|
|
7
|
-
[](https://pypi.org/project/fastcrypter/)
|
|
9
|
+
[](https://pypi.org/project/fastcrypter/)
|
|
9
10
|
|
|
10
11
|
fastCrypter is a powerful Python library that combines advanced compression and encryption techniques with native C/C++ acceleration for maximum performance. It provides a comprehensive suite of tools for secure data handling, from simple file encryption to complex custom encoding schemes.
|
|
11
12
|
|
|
12
|
-
##
|
|
13
|
+
## Key Features
|
|
13
14
|
|
|
14
|
-
###
|
|
15
|
+
### Advanced Encryption
|
|
15
16
|
- **Multiple Algorithms**: AES-256-GCM, ChaCha20-Poly1305, RSA
|
|
16
17
|
- **Secure Key Management**: PBKDF2, Argon2, secure random generation
|
|
17
18
|
- **Digital Signatures**: RSA and ECC-based signing
|
|
18
19
|
- **Custom Encoding**: User-defined character sets for obfuscation
|
|
19
20
|
|
|
20
|
-
###
|
|
21
|
+
### High-Performance Compression
|
|
21
22
|
- **Multiple Formats**: ZLIB, LZMA, Brotli, custom RLE
|
|
22
23
|
- **Adaptive Algorithms**: Automatic best-fit selection
|
|
23
24
|
- **Native Acceleration**: C/C++ libraries for critical operations
|
|
24
25
|
- **Memory Efficient**: Streaming support for large files
|
|
25
26
|
|
|
26
|
-
###
|
|
27
|
+
### Native Performance
|
|
27
28
|
- **C/C++ Libraries**: Optimized crypto and hash operations
|
|
28
29
|
- **SIMD Instructions**: Vectorized operations where available
|
|
29
30
|
- **Cross-Platform**: Windows (.dll), Linux (.so), macOS (.dylib)
|
|
30
31
|
- **Automatic Fallback**: Pure Python when native libs unavailable
|
|
31
32
|
|
|
32
|
-
###
|
|
33
|
+
### Security Features
|
|
33
34
|
- **Secure Memory**: Protected key storage and cleanup
|
|
34
35
|
- **Entropy Analysis**: Data randomness validation
|
|
35
36
|
- **Side-Channel Protection**: Constant-time operations
|
|
36
37
|
- **Audit Trail**: Comprehensive logging and validation
|
|
37
38
|
|
|
38
|
-
##
|
|
39
|
+
## Quick Start
|
|
39
40
|
|
|
40
41
|
### Installation
|
|
41
42
|
|
|
42
43
|
```bash
|
|
43
44
|
# Install from PyPI
|
|
44
|
-
pip install
|
|
45
|
+
pip install fastcrypter
|
|
45
46
|
|
|
46
47
|
# Install with development dependencies
|
|
47
|
-
pip install
|
|
48
|
+
pip install fastcrypter[dev]
|
|
48
49
|
|
|
49
50
|
# Install with native compilation support
|
|
50
|
-
pip install
|
|
51
|
+
pip install fastcrypter[native]
|
|
51
52
|
```
|
|
52
53
|
|
|
53
54
|
### Basic Usage
|
|
54
55
|
|
|
55
56
|
```python
|
|
56
|
-
import
|
|
57
|
+
import fastcrypter
|
|
57
58
|
|
|
58
59
|
# Get the recommended compressor (automatically uses native acceleration if available)
|
|
59
|
-
compressor =
|
|
60
|
+
compressor = fastcrypter.get_recommended_compressor(password="your_secure_password")
|
|
60
61
|
|
|
61
62
|
# Compress and encrypt data
|
|
62
63
|
data = b"Your sensitive data here"
|
|
@@ -70,7 +71,7 @@ assert data == decrypted
|
|
|
70
71
|
### Custom Encoding Example
|
|
71
72
|
|
|
72
73
|
```python
|
|
73
|
-
from
|
|
74
|
+
from fastcrypter import CustomEncoder
|
|
74
75
|
|
|
75
76
|
# Create custom encoder with your character set
|
|
76
77
|
encoder = CustomEncoder(charset="abcdef98Xvbvii")
|
|
@@ -88,7 +89,7 @@ assert original == decoded
|
|
|
88
89
|
### File Encryption
|
|
89
90
|
|
|
90
91
|
```python
|
|
91
|
-
from
|
|
92
|
+
from fastcrypter import FileEncryptor
|
|
92
93
|
|
|
93
94
|
# Initialize file encryptor
|
|
94
95
|
encryptor = FileEncryptor(password="your_password")
|
|
@@ -100,9 +101,9 @@ encryptor.encrypt_file("document.pdf", "document.pdf.encrypted")
|
|
|
100
101
|
encryptor.decrypt_file("document.pdf.encrypted", "document_restored.pdf")
|
|
101
102
|
```
|
|
102
103
|
|
|
103
|
-
##
|
|
104
|
+
## Native Compilation
|
|
104
105
|
|
|
105
|
-
|
|
106
|
+
fastcrypter includes C/C++ libraries for performance-critical operations:
|
|
106
107
|
|
|
107
108
|
### Automatic Compilation
|
|
108
109
|
|
|
@@ -121,11 +122,11 @@ python build_native.py --release
|
|
|
121
122
|
|
|
122
123
|
```bash
|
|
123
124
|
# Using Make (Linux/macOS)
|
|
124
|
-
cd
|
|
125
|
+
cd fastcrypter/native
|
|
125
126
|
make all
|
|
126
127
|
|
|
127
128
|
# Using MinGW (Windows)
|
|
128
|
-
cd
|
|
129
|
+
cd fastcrypter/native
|
|
129
130
|
mingw32-make all
|
|
130
131
|
```
|
|
131
132
|
|
|
@@ -138,11 +139,11 @@ Native libraries provide significant performance improvements:
|
|
|
138
139
|
- **Key Derivation**: 2-4x faster PBKDF2
|
|
139
140
|
- **Compression**: 1.5-2x faster RLE compression
|
|
140
141
|
|
|
141
|
-
##
|
|
142
|
+
## Performance Benchmarks
|
|
142
143
|
|
|
143
144
|
```python
|
|
144
145
|
# Run comprehensive benchmarks
|
|
145
|
-
results =
|
|
146
|
+
results = fastcrypter.benchmark_available_features(data_size=1024*1024)
|
|
146
147
|
print(f"Native acceleration: {results['performance']['native']['available']}")
|
|
147
148
|
print(f"Speedup factor: {results['performance'].get('speedup', 'N/A')}")
|
|
148
149
|
```
|
|
@@ -152,12 +153,12 @@ Example results on modern hardware:
|
|
|
152
153
|
- **Enhanced Mode**: ~150 MB/s with native acceleration
|
|
153
154
|
- **Memory Usage**: <100MB for 1GB files (streaming)
|
|
154
155
|
|
|
155
|
-
##
|
|
156
|
+
## Advanced Features
|
|
156
157
|
|
|
157
158
|
### Enhanced Compressor
|
|
158
159
|
|
|
159
160
|
```python
|
|
160
|
-
from
|
|
161
|
+
from fastcrypter import EnhancedCompressor
|
|
161
162
|
|
|
162
163
|
# Create enhanced compressor with native acceleration
|
|
163
164
|
compressor = EnhancedCompressor(
|
|
@@ -168,13 +169,13 @@ compressor = EnhancedCompressor(
|
|
|
168
169
|
|
|
169
170
|
# Check if native libraries are available
|
|
170
171
|
if compressor.is_native_available():
|
|
171
|
-
print("
|
|
172
|
+
print("Native acceleration enabled!")
|
|
172
173
|
```
|
|
173
174
|
|
|
174
175
|
### Custom Algorithms
|
|
175
176
|
|
|
176
177
|
```python
|
|
177
|
-
from
|
|
178
|
+
from fastcrypter.core import Compressor, CompressionAlgorithmType
|
|
178
179
|
|
|
179
180
|
# Use specific compression algorithm
|
|
180
181
|
compressor = Compressor(
|
|
@@ -186,7 +187,7 @@ compressor = Compressor(
|
|
|
186
187
|
### Secure Key Management
|
|
187
188
|
|
|
188
189
|
```python
|
|
189
|
-
from
|
|
190
|
+
from fastcrypter import KeyManager
|
|
190
191
|
|
|
191
192
|
# Generate secure keys
|
|
192
193
|
key_manager = KeyManager()
|
|
@@ -197,16 +198,16 @@ encryption_key = key_manager.derive_key(master_key, b"encryption", 32)
|
|
|
197
198
|
signing_key = key_manager.derive_key(master_key, b"signing", 32)
|
|
198
199
|
```
|
|
199
200
|
|
|
200
|
-
##
|
|
201
|
+
## Testing
|
|
201
202
|
|
|
202
|
-
|
|
203
|
+
fastcrypter includes comprehensive tests:
|
|
203
204
|
|
|
204
205
|
```bash
|
|
205
206
|
# Run all tests
|
|
206
207
|
python -m pytest tests/ -v
|
|
207
208
|
|
|
208
209
|
# Run with coverage
|
|
209
|
-
python -m pytest tests/ --cov=
|
|
210
|
+
python -m pytest tests/ --cov=fastcrypter --cov-report=html
|
|
210
211
|
|
|
211
212
|
# Run performance tests
|
|
212
213
|
python -m pytest tests/test_performance.py -v
|
|
@@ -215,13 +216,13 @@ python -m pytest tests/test_performance.py -v
|
|
|
215
216
|
python final_test.py
|
|
216
217
|
```
|
|
217
218
|
|
|
218
|
-
##
|
|
219
|
+
## Development
|
|
219
220
|
|
|
220
221
|
### Setting Up Development Environment
|
|
221
222
|
|
|
222
223
|
```bash
|
|
223
224
|
# Clone repository
|
|
224
|
-
git clone https://
|
|
225
|
+
git clone https://gitlab.com/Pymmdrza/fastCrypter.git
|
|
225
226
|
cd fastCrypter
|
|
226
227
|
|
|
227
228
|
# Install in development mode
|
|
@@ -238,22 +239,22 @@ python -m pytest
|
|
|
238
239
|
|
|
239
240
|
```bash
|
|
240
241
|
# Format code
|
|
241
|
-
black
|
|
242
|
+
black fastcrypter/ tests/
|
|
242
243
|
|
|
243
244
|
# Lint code
|
|
244
|
-
flake8
|
|
245
|
+
flake8 fastcrypter/ tests/
|
|
245
246
|
|
|
246
247
|
# Type checking
|
|
247
|
-
mypy
|
|
248
|
+
mypy fastcrypter/
|
|
248
249
|
```
|
|
249
250
|
|
|
250
|
-
##
|
|
251
|
+
## Documentation
|
|
251
252
|
|
|
252
253
|
- **API Reference**: [ [Document](https://fastcrypter.readthedocs.io) ]
|
|
253
|
-
- **Examples**: See `examples/` directory [Examples](https://
|
|
254
|
+
- **Examples**: See `examples/` directory [Examples](https://gitlab.com/Pymmdrza/fastCrypter/-/tree/main/examples)
|
|
254
255
|
- **Performance Guide**: [Performance Optimization](docs/performance.md)
|
|
255
256
|
|
|
256
|
-
##
|
|
257
|
+
## Contributing
|
|
257
258
|
|
|
258
259
|
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
259
260
|
|
|
@@ -264,25 +265,25 @@ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) f
|
|
|
264
265
|
3. Make your changes
|
|
265
266
|
4. Add tests for new functionality
|
|
266
267
|
5. Ensure all tests pass
|
|
267
|
-
6. Submit a
|
|
268
|
+
6. Submit a merge request
|
|
268
269
|
|
|
269
|
-
##
|
|
270
|
+
## License
|
|
270
271
|
|
|
271
272
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
272
273
|
|
|
273
|
-
##
|
|
274
|
+
## Acknowledgments
|
|
274
275
|
|
|
275
276
|
- **Cryptography**: Built on industry-standard libraries
|
|
276
277
|
- **Performance**: Inspired by high-performance computing practices
|
|
277
278
|
- **Security**: Following OWASP and NIST guidelines
|
|
278
279
|
- **Community**: Thanks to all contributors and users
|
|
279
280
|
|
|
280
|
-
##
|
|
281
|
+
## Support
|
|
281
282
|
|
|
282
|
-
- **Issues**: [
|
|
283
|
-
- **Discussions**: [
|
|
283
|
+
- **Issues**: [GitLab Issues](https://gitlab.com/Pymmdrza/fastCrypter/-/issues)
|
|
284
|
+
- **Discussions**: [GitLab Discussions](https://gitlab.com/Pymmdrza/fastCrypter/-/discussions)
|
|
284
285
|
- **Email**: pymmdrza@gmail.com
|
|
285
286
|
|
|
286
287
|
---
|
|
287
288
|
|
|
288
|
-
|
|
289
|
+
**fastcrypter** - Making encryption fast, secure, and accessible!
|