fastcrypter 2.3.6__tar.gz → 2.3.9__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.egg-info → fastcrypter-2.3.9}/PKG-INFO +41 -41
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/README.md +40 -40
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/examples/algorithm_test.py +16 -16
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/examples/basic_usage.py +15 -15
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/examples/custom_encoding_test.py +24 -24
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/examples/file_test.py +17 -17
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/examples/native_performance_test.py +27 -27
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/__init__.py +1 -1
- fastcrypter-2.3.9/fastcrypter/core/__init__.py +21 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/core/key_manager.py +2 -2
- {fastcrypter-2.3.6 → fastcrypter-2.3.9/fastcrypter.egg-info}/PKG-INFO +41 -41
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter.egg-info/SOURCES.txt +10 -1
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter.egg-info/top_level.txt +1 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/setup.py +1 -1
- fastcrypter-2.3.9/tests/__init__.py +5 -0
- fastcrypter-2.3.9/tests/conftest.py +23 -0
- fastcrypter-2.3.9/tests/test_compressor.py +124 -0
- fastcrypter-2.3.9/tests/test_custom_encoder.py +91 -0
- fastcrypter-2.3.9/tests/test_encryptor.py +134 -0
- fastcrypter-2.3.9/tests/test_examples.py +236 -0
- fastcrypter-2.3.9/tests/test_file_encryptor.py +68 -0
- fastcrypter-2.3.9/tests/test_key_manager.py +124 -0
- fastcrypter-2.3.9/tests/test_secure_compressor.py +151 -0
- fastcrypter-2.3.6/fastcrypter/core/__init__.py +0 -16
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/.github/workflows/pypi.yml +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/LICENSE +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/MANIFEST.in +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/advanced_encryptor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/algorithms/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/algorithms/compression/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/algorithms/encryption/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/core/compressor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/core/custom_encoder.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/core/encryptor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/core/enhanced_compressor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/exceptions.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/file_encryptor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/secure_compressor.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter/utils/__init__.py +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter.egg-info/dependency_links.txt +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter.egg-info/entry_points.txt +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/fastcrypter.egg-info/requires.txt +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/requirements.txt +0 -0
- {fastcrypter-2.3.6 → fastcrypter-2.3.9}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastcrypter
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.9
|
|
4
4
|
Summary: Professional compression and encryption library with native C/C++ acceleration
|
|
5
5
|
Home-page: https://github.com/Pymmdrza/fastCrypter
|
|
6
6
|
Author: Mmdrza
|
|
@@ -69,65 +69,65 @@ Dynamic: requires-dist
|
|
|
69
69
|
Dynamic: requires-python
|
|
70
70
|
Dynamic: summary
|
|
71
71
|
|
|
72
|
-
#
|
|
72
|
+
# fastCrypter
|
|
73
73
|
|
|
74
74
|
**Professional Compression and Encryption Library with Native C/C++ Acceleration**
|
|
75
75
|
|
|
76
76
|
[](https://python.org)
|
|
77
77
|
[](LICENSE)
|
|
78
|
-
[](https://pypi.org/project/fastcrypter/)
|
|
79
|
+
[](https://pypi.org/project/fastcrypter/)
|
|
80
80
|
|
|
81
81
|
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
82
|
|
|
83
|
-
##
|
|
83
|
+
## Key Features
|
|
84
84
|
|
|
85
|
-
###
|
|
85
|
+
### Advanced Encryption
|
|
86
86
|
- **Multiple Algorithms**: AES-256-GCM, ChaCha20-Poly1305, RSA
|
|
87
87
|
- **Secure Key Management**: PBKDF2, Argon2, secure random generation
|
|
88
88
|
- **Digital Signatures**: RSA and ECC-based signing
|
|
89
89
|
- **Custom Encoding**: User-defined character sets for obfuscation
|
|
90
90
|
|
|
91
|
-
###
|
|
91
|
+
### High-Performance Compression
|
|
92
92
|
- **Multiple Formats**: ZLIB, LZMA, Brotli, custom RLE
|
|
93
93
|
- **Adaptive Algorithms**: Automatic best-fit selection
|
|
94
94
|
- **Native Acceleration**: C/C++ libraries for critical operations
|
|
95
95
|
- **Memory Efficient**: Streaming support for large files
|
|
96
96
|
|
|
97
|
-
###
|
|
97
|
+
### Native Performance
|
|
98
98
|
- **C/C++ Libraries**: Optimized crypto and hash operations
|
|
99
99
|
- **SIMD Instructions**: Vectorized operations where available
|
|
100
100
|
- **Cross-Platform**: Windows (.dll), Linux (.so), macOS (.dylib)
|
|
101
101
|
- **Automatic Fallback**: Pure Python when native libs unavailable
|
|
102
102
|
|
|
103
|
-
###
|
|
103
|
+
### Security Features
|
|
104
104
|
- **Secure Memory**: Protected key storage and cleanup
|
|
105
105
|
- **Entropy Analysis**: Data randomness validation
|
|
106
106
|
- **Side-Channel Protection**: Constant-time operations
|
|
107
107
|
- **Audit Trail**: Comprehensive logging and validation
|
|
108
108
|
|
|
109
|
-
##
|
|
109
|
+
## Quick Start
|
|
110
110
|
|
|
111
111
|
### Installation
|
|
112
112
|
|
|
113
113
|
```bash
|
|
114
114
|
# Install from PyPI
|
|
115
|
-
pip install
|
|
115
|
+
pip install fastcrypter
|
|
116
116
|
|
|
117
117
|
# Install with development dependencies
|
|
118
|
-
pip install
|
|
118
|
+
pip install fastcrypter[dev]
|
|
119
119
|
|
|
120
120
|
# Install with native compilation support
|
|
121
|
-
pip install
|
|
121
|
+
pip install fastcrypter[native]
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
### Basic Usage
|
|
125
125
|
|
|
126
126
|
```python
|
|
127
|
-
import
|
|
127
|
+
import fastcrypter
|
|
128
128
|
|
|
129
129
|
# Get the recommended compressor (automatically uses native acceleration if available)
|
|
130
|
-
compressor =
|
|
130
|
+
compressor = fastcrypter.get_recommended_compressor(password="your_secure_password")
|
|
131
131
|
|
|
132
132
|
# Compress and encrypt data
|
|
133
133
|
data = b"Your sensitive data here"
|
|
@@ -141,7 +141,7 @@ assert data == decrypted
|
|
|
141
141
|
### Custom Encoding Example
|
|
142
142
|
|
|
143
143
|
```python
|
|
144
|
-
from
|
|
144
|
+
from fastcrypter import CustomEncoder
|
|
145
145
|
|
|
146
146
|
# Create custom encoder with your character set
|
|
147
147
|
encoder = CustomEncoder(charset="abcdef98Xvbvii")
|
|
@@ -159,7 +159,7 @@ assert original == decoded
|
|
|
159
159
|
### File Encryption
|
|
160
160
|
|
|
161
161
|
```python
|
|
162
|
-
from
|
|
162
|
+
from fastcrypter import FileEncryptor
|
|
163
163
|
|
|
164
164
|
# Initialize file encryptor
|
|
165
165
|
encryptor = FileEncryptor(password="your_password")
|
|
@@ -171,9 +171,9 @@ encryptor.encrypt_file("document.pdf", "document.pdf.encrypted")
|
|
|
171
171
|
encryptor.decrypt_file("document.pdf.encrypted", "document_restored.pdf")
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
-
##
|
|
174
|
+
## Native Compilation
|
|
175
175
|
|
|
176
|
-
|
|
176
|
+
fastcrypter includes C/C++ libraries for performance-critical operations:
|
|
177
177
|
|
|
178
178
|
### Automatic Compilation
|
|
179
179
|
|
|
@@ -192,11 +192,11 @@ python build_native.py --release
|
|
|
192
192
|
|
|
193
193
|
```bash
|
|
194
194
|
# Using Make (Linux/macOS)
|
|
195
|
-
cd
|
|
195
|
+
cd fastcrypter/native
|
|
196
196
|
make all
|
|
197
197
|
|
|
198
198
|
# Using MinGW (Windows)
|
|
199
|
-
cd
|
|
199
|
+
cd fastcrypter/native
|
|
200
200
|
mingw32-make all
|
|
201
201
|
```
|
|
202
202
|
|
|
@@ -209,11 +209,11 @@ Native libraries provide significant performance improvements:
|
|
|
209
209
|
- **Key Derivation**: 2-4x faster PBKDF2
|
|
210
210
|
- **Compression**: 1.5-2x faster RLE compression
|
|
211
211
|
|
|
212
|
-
##
|
|
212
|
+
## Performance Benchmarks
|
|
213
213
|
|
|
214
214
|
```python
|
|
215
215
|
# Run comprehensive benchmarks
|
|
216
|
-
results =
|
|
216
|
+
results = fastcrypter.benchmark_available_features(data_size=1024*1024)
|
|
217
217
|
print(f"Native acceleration: {results['performance']['native']['available']}")
|
|
218
218
|
print(f"Speedup factor: {results['performance'].get('speedup', 'N/A')}")
|
|
219
219
|
```
|
|
@@ -223,12 +223,12 @@ Example results on modern hardware:
|
|
|
223
223
|
- **Enhanced Mode**: ~150 MB/s with native acceleration
|
|
224
224
|
- **Memory Usage**: <100MB for 1GB files (streaming)
|
|
225
225
|
|
|
226
|
-
##
|
|
226
|
+
## Advanced Features
|
|
227
227
|
|
|
228
228
|
### Enhanced Compressor
|
|
229
229
|
|
|
230
230
|
```python
|
|
231
|
-
from
|
|
231
|
+
from fastcrypter import EnhancedCompressor
|
|
232
232
|
|
|
233
233
|
# Create enhanced compressor with native acceleration
|
|
234
234
|
compressor = EnhancedCompressor(
|
|
@@ -239,13 +239,13 @@ compressor = EnhancedCompressor(
|
|
|
239
239
|
|
|
240
240
|
# Check if native libraries are available
|
|
241
241
|
if compressor.is_native_available():
|
|
242
|
-
print("
|
|
242
|
+
print("Native acceleration enabled!")
|
|
243
243
|
```
|
|
244
244
|
|
|
245
245
|
### Custom Algorithms
|
|
246
246
|
|
|
247
247
|
```python
|
|
248
|
-
from
|
|
248
|
+
from fastcrypter.core import Compressor, CompressionAlgorithmType
|
|
249
249
|
|
|
250
250
|
# Use specific compression algorithm
|
|
251
251
|
compressor = Compressor(
|
|
@@ -257,7 +257,7 @@ compressor = Compressor(
|
|
|
257
257
|
### Secure Key Management
|
|
258
258
|
|
|
259
259
|
```python
|
|
260
|
-
from
|
|
260
|
+
from fastcrypter import KeyManager
|
|
261
261
|
|
|
262
262
|
# Generate secure keys
|
|
263
263
|
key_manager = KeyManager()
|
|
@@ -268,16 +268,16 @@ encryption_key = key_manager.derive_key(master_key, b"encryption", 32)
|
|
|
268
268
|
signing_key = key_manager.derive_key(master_key, b"signing", 32)
|
|
269
269
|
```
|
|
270
270
|
|
|
271
|
-
##
|
|
271
|
+
## Testing
|
|
272
272
|
|
|
273
|
-
|
|
273
|
+
fastcrypter includes comprehensive tests:
|
|
274
274
|
|
|
275
275
|
```bash
|
|
276
276
|
# Run all tests
|
|
277
277
|
python -m pytest tests/ -v
|
|
278
278
|
|
|
279
279
|
# Run with coverage
|
|
280
|
-
python -m pytest tests/ --cov=
|
|
280
|
+
python -m pytest tests/ --cov=fastcrypter --cov-report=html
|
|
281
281
|
|
|
282
282
|
# Run performance tests
|
|
283
283
|
python -m pytest tests/test_performance.py -v
|
|
@@ -286,7 +286,7 @@ python -m pytest tests/test_performance.py -v
|
|
|
286
286
|
python final_test.py
|
|
287
287
|
```
|
|
288
288
|
|
|
289
|
-
##
|
|
289
|
+
## Development
|
|
290
290
|
|
|
291
291
|
### Setting Up Development Environment
|
|
292
292
|
|
|
@@ -309,22 +309,22 @@ python -m pytest
|
|
|
309
309
|
|
|
310
310
|
```bash
|
|
311
311
|
# Format code
|
|
312
|
-
black
|
|
312
|
+
black fastcrypter/ tests/
|
|
313
313
|
|
|
314
314
|
# Lint code
|
|
315
|
-
flake8
|
|
315
|
+
flake8 fastcrypter/ tests/
|
|
316
316
|
|
|
317
317
|
# Type checking
|
|
318
|
-
mypy
|
|
318
|
+
mypy fastcrypter/
|
|
319
319
|
```
|
|
320
320
|
|
|
321
|
-
##
|
|
321
|
+
## Documentation
|
|
322
322
|
|
|
323
323
|
- **API Reference**: [ [Document](https://fastcrypter.readthedocs.io) ]
|
|
324
324
|
- **Examples**: See `examples/` directory [Examples](https://github.com/Pymmdrza/fastCrypter/tree/main/examples)
|
|
325
325
|
- **Performance Guide**: [Performance Optimization](docs/performance.md)
|
|
326
326
|
|
|
327
|
-
##
|
|
327
|
+
## Contributing
|
|
328
328
|
|
|
329
329
|
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
330
330
|
|
|
@@ -337,18 +337,18 @@ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) f
|
|
|
337
337
|
5. Ensure all tests pass
|
|
338
338
|
6. Submit a pull request
|
|
339
339
|
|
|
340
|
-
##
|
|
340
|
+
## License
|
|
341
341
|
|
|
342
342
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
343
343
|
|
|
344
|
-
##
|
|
344
|
+
## Acknowledgments
|
|
345
345
|
|
|
346
346
|
- **Cryptography**: Built on industry-standard libraries
|
|
347
347
|
- **Performance**: Inspired by high-performance computing practices
|
|
348
348
|
- **Security**: Following OWASP and NIST guidelines
|
|
349
349
|
- **Community**: Thanks to all contributors and users
|
|
350
350
|
|
|
351
|
-
##
|
|
351
|
+
## Support
|
|
352
352
|
|
|
353
353
|
- **Issues**: [GitHub Issues](https://github.com/Pymmdrza/fastCrypter/issues)
|
|
354
354
|
- **Discussions**: [GitHub Discussions](https://github.com/Pymmdrza/fastCrypter/discussions)
|
|
@@ -356,4 +356,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
356
356
|
|
|
357
357
|
---
|
|
358
358
|
|
|
359
|
-
|
|
359
|
+
**fastcrypter** - Making encryption fast, secure, and accessible!
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
#
|
|
1
|
+
# fastCrypter
|
|
2
2
|
|
|
3
3
|
**Professional Compression and Encryption Library with Native C/C++ Acceleration**
|
|
4
4
|
|
|
5
5
|
[](https://python.org)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](https://pypi.org/project/fastcrypter/)
|
|
8
|
+
[](https://pypi.org/project/fastcrypter/)
|
|
9
9
|
|
|
10
10
|
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
11
|
|
|
12
|
-
##
|
|
12
|
+
## Key Features
|
|
13
13
|
|
|
14
|
-
###
|
|
14
|
+
### Advanced Encryption
|
|
15
15
|
- **Multiple Algorithms**: AES-256-GCM, ChaCha20-Poly1305, RSA
|
|
16
16
|
- **Secure Key Management**: PBKDF2, Argon2, secure random generation
|
|
17
17
|
- **Digital Signatures**: RSA and ECC-based signing
|
|
18
18
|
- **Custom Encoding**: User-defined character sets for obfuscation
|
|
19
19
|
|
|
20
|
-
###
|
|
20
|
+
### High-Performance Compression
|
|
21
21
|
- **Multiple Formats**: ZLIB, LZMA, Brotli, custom RLE
|
|
22
22
|
- **Adaptive Algorithms**: Automatic best-fit selection
|
|
23
23
|
- **Native Acceleration**: C/C++ libraries for critical operations
|
|
24
24
|
- **Memory Efficient**: Streaming support for large files
|
|
25
25
|
|
|
26
|
-
###
|
|
26
|
+
### Native Performance
|
|
27
27
|
- **C/C++ Libraries**: Optimized crypto and hash operations
|
|
28
28
|
- **SIMD Instructions**: Vectorized operations where available
|
|
29
29
|
- **Cross-Platform**: Windows (.dll), Linux (.so), macOS (.dylib)
|
|
30
30
|
- **Automatic Fallback**: Pure Python when native libs unavailable
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### Security Features
|
|
33
33
|
- **Secure Memory**: Protected key storage and cleanup
|
|
34
34
|
- **Entropy Analysis**: Data randomness validation
|
|
35
35
|
- **Side-Channel Protection**: Constant-time operations
|
|
36
36
|
- **Audit Trail**: Comprehensive logging and validation
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## Quick Start
|
|
39
39
|
|
|
40
40
|
### Installation
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
# Install from PyPI
|
|
44
|
-
pip install
|
|
44
|
+
pip install fastcrypter
|
|
45
45
|
|
|
46
46
|
# Install with development dependencies
|
|
47
|
-
pip install
|
|
47
|
+
pip install fastcrypter[dev]
|
|
48
48
|
|
|
49
49
|
# Install with native compilation support
|
|
50
|
-
pip install
|
|
50
|
+
pip install fastcrypter[native]
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
### Basic Usage
|
|
54
54
|
|
|
55
55
|
```python
|
|
56
|
-
import
|
|
56
|
+
import fastcrypter
|
|
57
57
|
|
|
58
58
|
# Get the recommended compressor (automatically uses native acceleration if available)
|
|
59
|
-
compressor =
|
|
59
|
+
compressor = fastcrypter.get_recommended_compressor(password="your_secure_password")
|
|
60
60
|
|
|
61
61
|
# Compress and encrypt data
|
|
62
62
|
data = b"Your sensitive data here"
|
|
@@ -70,7 +70,7 @@ assert data == decrypted
|
|
|
70
70
|
### Custom Encoding Example
|
|
71
71
|
|
|
72
72
|
```python
|
|
73
|
-
from
|
|
73
|
+
from fastcrypter import CustomEncoder
|
|
74
74
|
|
|
75
75
|
# Create custom encoder with your character set
|
|
76
76
|
encoder = CustomEncoder(charset="abcdef98Xvbvii")
|
|
@@ -88,7 +88,7 @@ assert original == decoded
|
|
|
88
88
|
### File Encryption
|
|
89
89
|
|
|
90
90
|
```python
|
|
91
|
-
from
|
|
91
|
+
from fastcrypter import FileEncryptor
|
|
92
92
|
|
|
93
93
|
# Initialize file encryptor
|
|
94
94
|
encryptor = FileEncryptor(password="your_password")
|
|
@@ -100,9 +100,9 @@ encryptor.encrypt_file("document.pdf", "document.pdf.encrypted")
|
|
|
100
100
|
encryptor.decrypt_file("document.pdf.encrypted", "document_restored.pdf")
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
##
|
|
103
|
+
## Native Compilation
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
fastcrypter includes C/C++ libraries for performance-critical operations:
|
|
106
106
|
|
|
107
107
|
### Automatic Compilation
|
|
108
108
|
|
|
@@ -121,11 +121,11 @@ python build_native.py --release
|
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
123
|
# Using Make (Linux/macOS)
|
|
124
|
-
cd
|
|
124
|
+
cd fastcrypter/native
|
|
125
125
|
make all
|
|
126
126
|
|
|
127
127
|
# Using MinGW (Windows)
|
|
128
|
-
cd
|
|
128
|
+
cd fastcrypter/native
|
|
129
129
|
mingw32-make all
|
|
130
130
|
```
|
|
131
131
|
|
|
@@ -138,11 +138,11 @@ Native libraries provide significant performance improvements:
|
|
|
138
138
|
- **Key Derivation**: 2-4x faster PBKDF2
|
|
139
139
|
- **Compression**: 1.5-2x faster RLE compression
|
|
140
140
|
|
|
141
|
-
##
|
|
141
|
+
## Performance Benchmarks
|
|
142
142
|
|
|
143
143
|
```python
|
|
144
144
|
# Run comprehensive benchmarks
|
|
145
|
-
results =
|
|
145
|
+
results = fastcrypter.benchmark_available_features(data_size=1024*1024)
|
|
146
146
|
print(f"Native acceleration: {results['performance']['native']['available']}")
|
|
147
147
|
print(f"Speedup factor: {results['performance'].get('speedup', 'N/A')}")
|
|
148
148
|
```
|
|
@@ -152,12 +152,12 @@ Example results on modern hardware:
|
|
|
152
152
|
- **Enhanced Mode**: ~150 MB/s with native acceleration
|
|
153
153
|
- **Memory Usage**: <100MB for 1GB files (streaming)
|
|
154
154
|
|
|
155
|
-
##
|
|
155
|
+
## Advanced Features
|
|
156
156
|
|
|
157
157
|
### Enhanced Compressor
|
|
158
158
|
|
|
159
159
|
```python
|
|
160
|
-
from
|
|
160
|
+
from fastcrypter import EnhancedCompressor
|
|
161
161
|
|
|
162
162
|
# Create enhanced compressor with native acceleration
|
|
163
163
|
compressor = EnhancedCompressor(
|
|
@@ -168,13 +168,13 @@ compressor = EnhancedCompressor(
|
|
|
168
168
|
|
|
169
169
|
# Check if native libraries are available
|
|
170
170
|
if compressor.is_native_available():
|
|
171
|
-
print("
|
|
171
|
+
print("Native acceleration enabled!")
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
### Custom Algorithms
|
|
175
175
|
|
|
176
176
|
```python
|
|
177
|
-
from
|
|
177
|
+
from fastcrypter.core import Compressor, CompressionAlgorithmType
|
|
178
178
|
|
|
179
179
|
# Use specific compression algorithm
|
|
180
180
|
compressor = Compressor(
|
|
@@ -186,7 +186,7 @@ compressor = Compressor(
|
|
|
186
186
|
### Secure Key Management
|
|
187
187
|
|
|
188
188
|
```python
|
|
189
|
-
from
|
|
189
|
+
from fastcrypter import KeyManager
|
|
190
190
|
|
|
191
191
|
# Generate secure keys
|
|
192
192
|
key_manager = KeyManager()
|
|
@@ -197,16 +197,16 @@ encryption_key = key_manager.derive_key(master_key, b"encryption", 32)
|
|
|
197
197
|
signing_key = key_manager.derive_key(master_key, b"signing", 32)
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
-
##
|
|
200
|
+
## Testing
|
|
201
201
|
|
|
202
|
-
|
|
202
|
+
fastcrypter includes comprehensive tests:
|
|
203
203
|
|
|
204
204
|
```bash
|
|
205
205
|
# Run all tests
|
|
206
206
|
python -m pytest tests/ -v
|
|
207
207
|
|
|
208
208
|
# Run with coverage
|
|
209
|
-
python -m pytest tests/ --cov=
|
|
209
|
+
python -m pytest tests/ --cov=fastcrypter --cov-report=html
|
|
210
210
|
|
|
211
211
|
# Run performance tests
|
|
212
212
|
python -m pytest tests/test_performance.py -v
|
|
@@ -215,7 +215,7 @@ python -m pytest tests/test_performance.py -v
|
|
|
215
215
|
python final_test.py
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
-
##
|
|
218
|
+
## Development
|
|
219
219
|
|
|
220
220
|
### Setting Up Development Environment
|
|
221
221
|
|
|
@@ -238,22 +238,22 @@ python -m pytest
|
|
|
238
238
|
|
|
239
239
|
```bash
|
|
240
240
|
# Format code
|
|
241
|
-
black
|
|
241
|
+
black fastcrypter/ tests/
|
|
242
242
|
|
|
243
243
|
# Lint code
|
|
244
|
-
flake8
|
|
244
|
+
flake8 fastcrypter/ tests/
|
|
245
245
|
|
|
246
246
|
# Type checking
|
|
247
|
-
mypy
|
|
247
|
+
mypy fastcrypter/
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
##
|
|
250
|
+
## Documentation
|
|
251
251
|
|
|
252
252
|
- **API Reference**: [ [Document](https://fastcrypter.readthedocs.io) ]
|
|
253
253
|
- **Examples**: See `examples/` directory [Examples](https://github.com/Pymmdrza/fastCrypter/tree/main/examples)
|
|
254
254
|
- **Performance Guide**: [Performance Optimization](docs/performance.md)
|
|
255
255
|
|
|
256
|
-
##
|
|
256
|
+
## Contributing
|
|
257
257
|
|
|
258
258
|
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
259
259
|
|
|
@@ -266,18 +266,18 @@ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) f
|
|
|
266
266
|
5. Ensure all tests pass
|
|
267
267
|
6. Submit a pull request
|
|
268
268
|
|
|
269
|
-
##
|
|
269
|
+
## License
|
|
270
270
|
|
|
271
271
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
272
272
|
|
|
273
|
-
##
|
|
273
|
+
## Acknowledgments
|
|
274
274
|
|
|
275
275
|
- **Cryptography**: Built on industry-standard libraries
|
|
276
276
|
- **Performance**: Inspired by high-performance computing practices
|
|
277
277
|
- **Security**: Following OWASP and NIST guidelines
|
|
278
278
|
- **Community**: Thanks to all contributors and users
|
|
279
279
|
|
|
280
|
-
##
|
|
280
|
+
## Support
|
|
281
281
|
|
|
282
282
|
- **Issues**: [GitHub Issues](https://github.com/Pymmdrza/fastCrypter/issues)
|
|
283
283
|
- **Discussions**: [GitHub Discussions](https://github.com/Pymmdrza/fastCrypter/discussions)
|
|
@@ -285,4 +285,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
285
285
|
|
|
286
286
|
---
|
|
287
287
|
|
|
288
|
-
|
|
288
|
+
**fastcrypter** - Making encryption fast, secure, and accessible!
|
|
@@ -9,12 +9,12 @@ import sys
|
|
|
9
9
|
import os
|
|
10
10
|
import time
|
|
11
11
|
|
|
12
|
-
# Add the parent directory to the path so we can import
|
|
12
|
+
# Add the parent directory to the path so we can import fastcrypter
|
|
13
13
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
14
14
|
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
15
|
+
from fastcrypter import SecureCompressor
|
|
16
|
+
from fastcrypter.core.compressor import CompressionAlgorithmType
|
|
17
|
+
from fastcrypter.core.encryptor import EncryptionAlgorithmType
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def test_algorithm_combination(comp_algo, enc_algo, test_data, password):
|
|
@@ -63,7 +63,7 @@ def test_algorithm_combination(comp_algo, enc_algo, test_data, password):
|
|
|
63
63
|
|
|
64
64
|
def main():
|
|
65
65
|
"""Main test function."""
|
|
66
|
-
print("
|
|
66
|
+
print(" Algorithm Testing for Encrypter Package")
|
|
67
67
|
print("=" * 60)
|
|
68
68
|
|
|
69
69
|
# Test data
|
|
@@ -85,7 +85,7 @@ def main():
|
|
|
85
85
|
|
|
86
86
|
password = "TestPassword123!"
|
|
87
87
|
|
|
88
|
-
print(f"
|
|
88
|
+
print(f" Test data size: {len(test_data.encode('utf-8'))} bytes")
|
|
89
89
|
print()
|
|
90
90
|
|
|
91
91
|
# Compression algorithms
|
|
@@ -104,7 +104,7 @@ def main():
|
|
|
104
104
|
|
|
105
105
|
results = []
|
|
106
106
|
|
|
107
|
-
print("
|
|
107
|
+
print(" Testing different combinations...")
|
|
108
108
|
print()
|
|
109
109
|
|
|
110
110
|
for comp_algo in compression_algorithms:
|
|
@@ -119,12 +119,12 @@ def main():
|
|
|
119
119
|
results.append(result)
|
|
120
120
|
|
|
121
121
|
if result['success']:
|
|
122
|
-
print(f"
|
|
122
|
+
print(f" Success ({result['compression_ratio']:.2f}x)")
|
|
123
123
|
else:
|
|
124
|
-
print(f"
|
|
124
|
+
print(f" Failed: {result.get('error', 'Unknown error')}")
|
|
125
125
|
|
|
126
126
|
print()
|
|
127
|
-
print("
|
|
127
|
+
print(" Detailed results:")
|
|
128
128
|
print("-" * 100)
|
|
129
129
|
print(f"{'Combination':<25} {'Ratio':<8} {'Total Time':<10} {'Speed':<12} {'Status':<8}")
|
|
130
130
|
print("-" * 100)
|
|
@@ -136,11 +136,11 @@ def main():
|
|
|
136
136
|
f"{result['compression_ratio']:.2f}x "
|
|
137
137
|
f"{result['total_time']:.3f}s "
|
|
138
138
|
f"{result['throughput']:.1f} KB/s "
|
|
139
|
-
f"{'
|
|
139
|
+
f"{'' if result['success'] else ''}")
|
|
140
140
|
|
|
141
141
|
if successful_results:
|
|
142
142
|
print()
|
|
143
|
-
print("
|
|
143
|
+
print(" Best results:")
|
|
144
144
|
|
|
145
145
|
# Best compression ratio
|
|
146
146
|
best_compression = min(successful_results, key=lambda x: x['compression_ratio'])
|
|
@@ -157,7 +157,7 @@ def main():
|
|
|
157
157
|
print()
|
|
158
158
|
|
|
159
159
|
# Password strength testing
|
|
160
|
-
print("
|
|
160
|
+
print(" Password strength testing:")
|
|
161
161
|
test_passwords = [
|
|
162
162
|
"password",
|
|
163
163
|
"MyPassword123",
|
|
@@ -173,7 +173,7 @@ def main():
|
|
|
173
173
|
strength = compressor.validate_password_strength()
|
|
174
174
|
print(f" '{pwd}': {strength['strength']} ({strength['score']}/{strength['max_score']})")
|
|
175
175
|
except Exception as e:
|
|
176
|
-
print(f" '{pwd}':
|
|
176
|
+
print(f" '{pwd}': {str(e)}")
|
|
177
177
|
|
|
178
178
|
# Test weak passwords
|
|
179
179
|
print("\n Weak password testing:")
|
|
@@ -183,10 +183,10 @@ def main():
|
|
|
183
183
|
compressor.change_password(pwd)
|
|
184
184
|
print(f" '{pwd}': Should not be accepted!")
|
|
185
185
|
except Exception as e:
|
|
186
|
-
print(f" '{pwd}':
|
|
186
|
+
print(f" '{pwd}': Rejected - {str(e)}")
|
|
187
187
|
|
|
188
188
|
print()
|
|
189
|
-
print("
|
|
189
|
+
print(" Tests completed!")
|
|
190
190
|
|
|
191
191
|
return 0
|
|
192
192
|
|