Commit Graph
53 Commits
Author SHA1 Message Date
Leo Vasanko a644d27b56 Add tools/release.py script for automatic release process. 2025-11-12 11:47:26 -06:00
Leo Vasanko 4445c256b1 Always generate LF line endings (even on broken OS). 2025-11-12 11:43:25 -06:00
Leo Vasanko 04f1c3067c Ruff formatting. 2025-11-12 11:43:04 -06:00
Leo Vasanko 39e5f00f42 Fixed Windows build, cleaned up messages during build, using SCM version numbering, added ruff. 2025-11-12 10:59:21 -06:00
Leo Vasanko 88efc4cabc Update pyproject, bump version. 2025-11-09 20:41:40 -06:00
Leo Vasanko 04b11e9925 README tuning. New benchmark results (a bit slower than initial versions were). 2025-11-09 20:40:04 -06:00
Leo Vasanko d8a9a7ee9d Use a much faster method to wipe buffers. 2025-11-09 20:38:28 -06:00
Leo Vasanko f5430a6ad4 Cleanup. 2025-11-09 20:00:12 -06:00
Leo Vasanko f84ef727d3 Bump version 2025-11-09 09:47:08 -06:00
Leo Vasanko bb9d11842a Convert all input buffers to memoryview before use and use .nbytes, because len() doesn't work correctly with some buffers. Update docs with a Numpy example. 2025-11-09 09:46:21 -06:00
Leo Vasanko 20e0ed8c5f Cleanup benchmark 2025-11-09 08:59:53 -06:00
Leo Vasanko 62fc8fa855 Make Mac class prevent further updates or final after finalisation. Keep cached values for hashlib API. 2025-11-09 08:53:50 -06:00
Leo Vasanko 67c2958384 Cleanup 2025-11-08 20:39:41 -06:00
Leo Vasanko a6faaf9f62 Simplify implementation: remove bytes_in and bytes_out counters from all classes. 2025-11-08 20:09:26 -06:00
Leo Vasanko 75cbc76845 Wipe state structs automatically after use. Simplified aligned allocator and its use via a single handle. 2025-11-08 20:04:39 -06:00
Leo Vasanko 95563a43d1 API updates:
- Mac class follows hashlib API: digest functions added and finalization no longer modifies state.
- Encryptor and Decryptor now raise RuntimeError if still used after final.

Documentation updated with the changes and  further examples.

Tests updated with the changes, new test module for error cases (test_raises).

Docstrings improved.
2025-11-08 18:53:27 -06:00
Leo Vasanko e58990a1c2 Add human-readable algorithm name as NAME constant. 2025-11-08 16:01:05 -06:00
Leo Vasanko 13445887e9 Constants renamed and values extracted from C code rather than function call at runtime. Documentation update. 2025-11-08 15:43:01 -06:00
Leo Vasanko 751a929836 Combine the two generator scripts into one that also reads ALIGNMENT and RATE from C sources. 2025-11-08 13:20:15 -06:00
Leo Vasanko d4f8be69ed Bump version 2025-11-07 12:51:40 -06:00
Leo Vasanko 77601d7f57 README 2025-11-07 10:30:23 -06:00
Leo Vasanko 4356e57ace Move the build_backend script to tools folder. 2025-11-07 10:26:03 -06:00
Leo Vasanko 5e19bd980e Documentation updates, added BUILD.md 2025-11-07 10:20:27 -06:00
Leo Vasanko 63ccef577d Use uv in the commands. 2025-11-07 10:00:36 -06:00
Leo Vasanko 555bbcf2a5 README formatting 2025-11-07 09:59:20 -06:00
Leo Vasanko 1dcdafa008 util.nonce_increment and util.wipe functions, also exported by each module for convenience. 2025-11-07 09:53:39 -06:00
Leo Vasanko 96ce7867de README updated 2025-11-07 09:52:28 -06:00
Leo Vasanko b15174af8b Make random_key and random_nonce return bytearray, and add a nonce_increment utility function. 2025-11-07 07:43:33 -06:00
Leo Vasanko 02eb4d7718 README 2025-11-06 21:11:38 -06:00
Leo Vasanko 1b4d43a448 Do not return True from MAC verify function on success. 2025-11-06 21:11:24 -06:00
Leo Vasanko a8947c23b3 Add random_key and random_nonce functions to each submodule. Update docstrings to show the correct lengths for keys and nonces. 2025-11-06 20:03:56 -06:00
Leo Vasanko 2677df3bde Remove examples folder, keep benchmark as pyaegis.benchmark that becomes part of the install. 2025-11-06 19:55:51 -06:00
Leo Vasanko 7175654b27 API cleanup for simplified update/final. Returns bytearrays when into is not used. Allows into buffers larger than needed. Misc other changes. 2025-11-06 19:38:18 -06:00
Leo Vasanko 46dff56e28 Cleanup. 2025-11-06 19:36:43 -06:00
Leo Vasanko fc76bc4280 More informative build error message when Zig is not installed. 2025-11-06 17:04:03 -06:00
Leo Vasanko 9f2b931a0b Another approach to use zig build with setuptools. 2025-11-06 16:56:39 -06:00
Leo Vasanko fbf9c944e6 Include zig build in the build process. 2025-11-06 16:43:54 -06:00
Leo Vasanko f8cc02eb41 Switch from hatch to setuptools/CFFI build to produce wheels correctly. 2025-11-06 16:34:32 -06:00
Leo Vasanko fd24bb02f8 Test cleanup, remove debug. 2025-11-06 16:33:51 -06:00
Leo Vasanko 285f11299e Remove Encryptor.final_detached(), as final() handles both cases identically (only returns MAC). 2025-11-06 16:33:04 -06:00
Leo Vasanko 3248fccbac The update functions of libaegis now return the same number of bytes that went in. Update the binding accordingly. 2025-11-06 16:27:48 -06:00
Leo Vasanko 17a5f45394 Add comments to generated files saying how they are generated. 2025-11-06 15:31:29 -06:00
Leo Vasanko d43a22bc6c Build cleanup, pathname reorganisation, cdef to repository (although generated with gen_cdef.py). 2025-11-06 15:23:30 -06:00
Leo Vasanko c8fe16d21f Add .gitignore 2025-11-06 10:52:23 -06:00
Leo Vasanko ea066e101d Add libaegis submodule 2025-11-06 10:51:32 -06:00
Leo Vasanko 42ddaac6bc Rename module to pyaegis, implement build with zig. 2025-11-06 10:47:54 -06:00
Leo Vasanko 8898cec50f Add pytest dev dependency. 2025-11-06 08:20:23 -06:00
Leo Vasanko 3579b94e83 Add tests for all functions of each algorithm against AEGIS test vectors (JSON). Incremental updates are tested with randomized splits to catch a variety of errors. 2025-11-06 07:56:12 -06:00
Leo Vasanko bcf4655f64 Precise update output length calculation to allocate exactly sized buffers. 2025-11-06 07:45:15 -06:00
Leo Vasanko 438627e0db Add helper function for calculating the incremental update output buffer size. Add bytes_in and bytes_out counters on the incremental classes. Avoid ERANGE errors caused by too small output buffer. 2025-11-05 15:13:46 -06:00
Leo Vasanko 02310675b7 Make key, nonce the first arguments (in this order), require kwargs past the initial few positional arguments. Add ALIGNMENT constant to each module. Add a script to generate all other modules from aegis256x4.py. 2025-11-04 21:02:29 -06:00
Leo Vasanko 6ceb2971fa Cleanup 2025-11-04 18:40:22 -06:00
Leo Vasanko 7541d9d837 Initial commit 2025-11-04 18:14:07 -06:00