LeoVasanko
c2ac2e2790
Use a much faster method to wipe buffers.
2025-11-10 08:38:28 +00:00
LeoVasanko
c6e77cac66
Cleanup.
2025-11-10 08:00:12 +00:00
LeoVasanko
df1acadb1f
Bump version
2025-11-09 21:47:08 +00:00
LeoVasanko
cb0f9956c3
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 21:19:50 +00:00
LeoVasanko
a29405455a
Cleanup benchmark
2025-11-09 20:59:53 +00:00
LeoVasanko
0d63844201
Make Mac class prevent further updates or final after finalisation. Keep cached values for hashlib API.
2025-11-09 20:53:19 +00:00
LeoVasanko
7682d5bc8b
Cleanup
2025-11-09 08:39:41 +00:00
LeoVasanko
26b883ecbc
Simplify implementation: remove bytes_in and bytes_out counters from all classes.
2025-11-09 08:09:26 +00:00
LeoVasanko
87d9a07868
Wipe state structs automatically after use. Simplified aligned allocator and its use via a single handle.
2025-11-09 08:04:00 +00:00
LeoVasanko
eed36e2463
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-09 06:53:27 +00:00
LeoVasanko
46bc05f547
Add human-readable algorithm name as NAME constant.
2025-11-09 04:01:05 +00:00
LeoVasanko
56d304a82e
Constants renamed and values extracted from C code rather than function call at runtime. Documentation update.
2025-11-09 03:43:01 +00:00
LeoVasanko
28ee0e1314
Combine the two generator scripts into one that also reads ALIGNMENT and RATE from C sources.
2025-11-09 01:20:15 +00:00
LeoVasanko
1f506806d4
Bump version
2025-11-08 00:51:40 +00:00
LeoVasanko
17fba3c2f2
README
2025-11-07 22:30:23 +00:00
LeoVasanko
d04c593766
Move the build_backend script to tools folder.
2025-11-07 22:26:03 +00:00
LeoVasanko
fce6324ae5
Documentation updates, added BUILD.md
2025-11-07 22:20:27 +00:00
LeoVasanko
b35dc75513
Use uv in the commands.
2025-11-07 22:00:36 +00:00
LeoVasanko
1da3000a22
README formatting
2025-11-07 21:59:20 +00:00
LeoVasanko
f983cbe4c5
util.nonce_increment and util.wipe functions, also exported by each module for convenience.
2025-11-07 21:53:39 +00:00
LeoVasanko
f0b4373c0e
README updated
2025-11-07 21:52:28 +00:00
LeoVasanko
0efc2595d8
Make random_key and random_nonce return bytearray, and add a nonce_increment utility function.
2025-11-07 19:43:33 +00:00
LeoVasanko
a78f5c4ea3
README
2025-11-07 09:11:38 +00:00
LeoVasanko
fc1025f56d
Do not return True from MAC verify function on success.
2025-11-07 09:11:24 +00:00
LeoVasanko
3d75cc7e55
Add random_key and random_nonce functions to each submodule. Update docstrings to show the correct lengths for keys and nonces.
2025-11-07 08:03:56 +00:00
LeoVasanko
5b49422cb7
Remove examples folder, keep benchmark as pyaegis.benchmark that becomes part of the install.
2025-11-07 07:55:51 +00:00
LeoVasanko
cca78f4224
API cleanup for simplified update/final. Returns bytearrays when into is not used. Allows into buffers larger than needed. Misc other changes.
2025-11-07 07:38:18 +00:00
LeoVasanko
2e460b5796
Cleanup.
2025-11-07 07:36:43 +00:00
LeoVasanko
407cedc7a9
More informative build error message when Zig is not installed.
2025-11-07 05:02:01 +00:00
LeoVasanko
b5b939cffe
Another approach to use zig build with setuptools.
2025-11-07 04:56:39 +00:00
LeoVasanko
5c04940525
Include zig build in the build process.
2025-11-07 04:43:54 +00:00
LeoVasanko
e644f1b2ca
Switch from hatch to setuptools/CFFI build to produce wheels correctly.
2025-11-07 04:34:32 +00:00
LeoVasanko
56b451ac0c
Test cleanup, remove debug.
2025-11-07 04:33:51 +00:00
LeoVasanko
93bdbc26a2
Remove Encryptor.final_detached(), as final() handles both cases identically (only returns MAC).
2025-11-07 04:33:04 +00:00
LeoVasanko
2612dc8187
The update functions of libaegis now return the same number of bytes that went in. Update the binding accordingly.
2025-11-07 04:27:48 +00:00
LeoVasanko
302429b7a4
Add comments to generated files saying how they are generated.
2025-11-07 03:31:29 +00:00
LeoVasanko
b83120187c
Build cleanup, pathname reorganisation, cdef to repository (although generated with gen_cdef.py).
2025-11-07 03:23:30 +00:00
LeoVasanko
e3508025f5
Add .gitignore
2025-11-06 22:52:23 +00:00
LeoVasanko
3767b34e2c
Add libaegis submodule
2025-11-06 22:51:32 +00:00
LeoVasanko
0ae8752666
Rename module to pyaegis, implement build with zig.
2025-11-06 21:34:15 +00:00
LeoVasanko
d51736f5ba
Add pytest dev dependency.
2025-11-06 20:20:23 +00:00
LeoVasanko
df6b1b2832
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 19:56:12 +00:00
LeoVasanko
c16e785203
Precise update output length calculation to allocate exactly sized buffers.
2025-11-06 19:45:15 +00:00
LeoVasanko
2ffe7b6c0e
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-06 03:13:46 +00:00
LeoVasanko
618d9e0967
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-05 08:26:47 +00:00
LeoVasanko
299586e6ee
Cleanup
2025-11-05 06:40:22 +00:00
LeoVasanko
22299a1676
Initial commit
2025-11-05 06:14:07 +00:00