Commit Graph

  • c9ae37a03d Validate LF line endings in release builds main v0.10.6 LeoVasanko 2026-10-04 18:30:28 +00:00
  • e29035f768 Release builds must not write tracked files; validate instead LeoVasanko 2026-10-04 18:26:49 +00:00
  • 3ff145a0f0 Fix release versioning: keep tree ruff-clean, fail fast on dirty tag builds LeoVasanko 2026-10-04 18:15:07 +00:00
  • 503ce8e491 Fix FileStorage on Windows: open fd with O_BINARY, UTF-8 release logs LeoVasanko 2026-10-04 17:48:34 +00:00
  • 59dd4d922f README LeoVasanko 2026-10-04 17:35:09 +00:00
  • 9583a1f9a8 Fix cdef size_t size on Win64 (LLP64), require 64-bit builds LeoVasanko 2026-10-04 17:32:52 +00:00
  • c3c4d66ea8 README LeoVasanko 2026-10-04 17:31:11 +00:00
  • f7f3a450c9 CI: build Windows wheels outside %WINDIR% LeoVasanko 2026-10-04 17:08:26 +00:00
  • 696b35eb6f CI fixes: patchelf dev dep for auditwheel, absolute paths in setup.py LeoVasanko 2026-10-04 17:01:03 +00:00
  • 276b2faa0b benchmark.py: uv run shebang, executable bit, stdlib-random shadowing guard LeoVasanko 2026-10-04 16:50:37 +00:00
  • b4404b42e6 Fix ruff 0.16 findings; bump dependency minimums to match LeoVasanko 2026-10-04 16:24:40 +00:00
  • 1eb0b6e8c0 Add stream_xor(); deprecate encrypt/decrypt_unauthenticated LeoVasanko 2026-10-04 15:57:28 +00:00
  • 9d36d3b81b random(): per-thread singleton; random_key/random_nonce use it LeoVasanko 2026-10-04 15:42:02 +00:00
  • 32954c4eba aeg.raf: StreamStorage adapter; accept io.BytesIO directly LeoVasanko 2026-10-04 14:30:59 +00:00
  • f2a21856b3 README: brief docs for aeg.random, aeg.raf and SecureBuffer LeoVasanko 2026-10-04 05:44:45 +00:00
  • faa24cf22e Add aeg.securebuf.SecureBuffer: locked, wipe-on-close memory LeoVasanko 2026-10-04 05:43:58 +00:00
  • 972c3053d9 Require Python 3.12+; drop PyPy and 3.10/3.11 wheel builds LeoVasanko 2026-10-04 05:42:22 +00:00
  • 199dfe7bd9 generate.py: run ruff format on generated files LeoVasanko 2026-10-04 05:41:14 +00:00
  • e01d84a560 Add RAF (random-access encrypted file) support and aeg.random CSPRNG LeoVasanko 2026-10-04 04:25:59 +00:00
  • e70c7a37d2 Update libaegis submodule 0.9.0 -> 0.10.6 LeoVasanko 2026-10-04 02:58:47 +00:00
  • 0cb7faf698 Add Gitea release workflow: per-platform wheel builds, then publish to PyPI LeoVasanko 2026-10-04 02:54:30 +00:00
  • a1bfeb2434 Build updated for upstream libaegis 0.9.0 simplified API with matching changes on Python side. Set lower MacOS build target (11.0). Build abi3 version for all supported Python versions, reducing the number of wheels. Other build cleanup. v0.9.0 LeoVasanko 2026-01-10 20:23:37 +00:00
  • a26ce6a9fb Considered stable from here onwards. LeoVasanko 2026-01-10 20:22:44 +00:00
  • 7e6a5bf52a Allow the cipher() function also work without prefix aegis LeoVasanko 2026-01-04 14:25:39 +00:00
  • 8018e68274 Add nonce_increment and wipe functions on typing. LeoVasanko 2026-01-04 14:19:01 +00:00
  • ccccfd7918 README: Add the new aeg.cipher() function for fetching variants. LeoVasanko 2025-12-31 22:51:19 +00:00
  • 4de66b6bc6 [packaging] Release script: Fix further problems with freethreaded wheels and a variable name overlap. LeoVasanko 2025-12-31 22:30:28 +00:00
  • 66338ef416 [packaging] Fix wheel curing for pypy-linux. v0.4.3 LeoVasanko 2025-12-31 21:59:37 +00:00
  • 509898ac73 Make tool scripts executable. v0.4.2 LeoVasanko 2025-12-31 21:43:25 +00:00
  • 67ec091bc5 Add aeg.cipher(alg) for loading modules by name in str. Added aeg.CIPHERS mapping of the nominal names to module names and Cipher for typing literals. LeoVasanko 2025-12-31 21:38:30 +00:00
  • 4977a7e79d Added free-threaded non-GIL Python and PyPy wheels, up to 3.15 now. LeoVasanko 2025-12-31 21:24:56 +00:00
  • d7acf7a315 [release script] Auditwheel only on Linux. v0.4.1 LeoVasanko 2025-12-23 19:38:59 +00:00
  • 7f01de8327 Add README for PyPI. LeoVasanko 2025-12-23 19:33:00 +00:00
  • 9294fba86d Make manylinux wheels. LeoVasanko 2025-12-23 19:20:17 +00:00
  • 348812e750 Clean up for release. v0.4.0 LeoVasanko 2025-12-23 19:09:59 +00:00
  • 22dff32b22 Clean up for release. LeoVasanko 2025-12-23 19:08:10 +00:00
  • 178b689a35 Clean up for release. LeoVasanko 2025-12-23 18:54:03 +00:00
  • bd8b183e32 Project renamed to aeg, preparing for PyPI release. LeoVasanko 2025-12-23 18:25:03 +00:00
  • daba717ebb Add tools/release.py script for automatic release process. v0.3.2 LeoVasanko 2025-11-12 23:47:26 +00:00
  • 5b74bcb683 Always generate LF line endings (even on broken OS). LeoVasanko 2025-11-12 23:43:25 +00:00
  • d9a18f43d5 Ruff formatting. LeoVasanko 2025-11-12 23:43:04 +00:00
  • 98ee4ab7b3 Fixed Windows build, cleaned up messages during build, using SCM version numbering, added ruff. LeoVasanko 2025-11-12 22:59:21 +00:00
  • c6148806dd Update pyproject, bump version. v0.3.1 LeoVasanko 2025-11-10 08:41:40 +00:00
  • 6e6bc49466 README tuning. New benchmark results (a bit slower than initial versions were). LeoVasanko 2025-11-10 08:40:04 +00:00
  • c2ac2e2790 Use a much faster method to wipe buffers. LeoVasanko 2025-11-10 08:38:28 +00:00
  • c6e77cac66 Cleanup. LeoVasanko 2025-11-10 08:00:12 +00:00
  • df1acadb1f Bump version v0.3.0 LeoVasanko 2025-11-09 21:47:08 +00:00
  • 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. LeoVasanko 2025-11-09 21:19:50 +00:00
  • a29405455a Cleanup benchmark LeoVasanko 2025-11-09 20:59:53 +00:00
  • 0d63844201 Make Mac class prevent further updates or final after finalisation. Keep cached values for hashlib API. LeoVasanko 2025-11-09 20:53:19 +00:00
  • 7682d5bc8b Cleanup LeoVasanko 2025-11-09 08:39:41 +00:00
  • 26b883ecbc Simplify implementation: remove bytes_in and bytes_out counters from all classes. LeoVasanko 2025-11-09 08:09:26 +00:00
  • 87d9a07868 Wipe state structs automatically after use. Simplified aligned allocator and its use via a single handle. LeoVasanko 2025-11-09 08:04:00 +00:00
  • 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. LeoVasanko 2025-11-09 06:53:27 +00:00
  • 46bc05f547 Add human-readable algorithm name as NAME constant. LeoVasanko 2025-11-09 04:01:05 +00:00
  • 56d304a82e Constants renamed and values extracted from C code rather than function call at runtime. Documentation update. LeoVasanko 2025-11-09 03:43:01 +00:00
  • 28ee0e1314 Combine the two generator scripts into one that also reads ALIGNMENT and RATE from C sources. LeoVasanko 2025-11-09 01:20:15 +00:00
  • 1f506806d4 Bump version v0.2.0 LeoVasanko 2025-11-08 00:51:40 +00:00
  • 17fba3c2f2 README LeoVasanko 2025-11-07 22:30:23 +00:00
  • d04c593766 Move the build_backend script to tools folder. LeoVasanko 2025-11-07 22:26:03 +00:00
  • fce6324ae5 Documentation updates, added BUILD.md LeoVasanko 2025-11-07 22:20:27 +00:00
  • b35dc75513 Use uv in the commands. LeoVasanko 2025-11-07 22:00:36 +00:00
  • 1da3000a22 README formatting LeoVasanko 2025-11-07 21:59:20 +00:00
  • f983cbe4c5 util.nonce_increment and util.wipe functions, also exported by each module for convenience. LeoVasanko 2025-11-07 21:53:39 +00:00
  • f0b4373c0e README updated LeoVasanko 2025-11-07 21:52:28 +00:00
  • 0efc2595d8 Make random_key and random_nonce return bytearray, and add a nonce_increment utility function. LeoVasanko 2025-11-07 19:43:33 +00:00
  • a78f5c4ea3 README LeoVasanko 2025-11-07 09:11:38 +00:00
  • fc1025f56d Do not return True from MAC verify function on success. LeoVasanko 2025-11-07 09:11:24 +00:00
  • 3d75cc7e55 Add random_key and random_nonce functions to each submodule. Update docstrings to show the correct lengths for keys and nonces. LeoVasanko 2025-11-07 08:03:56 +00:00
  • 5b49422cb7 Remove examples folder, keep benchmark as pyaegis.benchmark that becomes part of the install. LeoVasanko 2025-11-07 07:55:51 +00:00
  • cca78f4224 API cleanup for simplified update/final. Returns bytearrays when into is not used. Allows into buffers larger than needed. Misc other changes. LeoVasanko 2025-11-07 07:38:18 +00:00
  • 2e460b5796 Cleanup. LeoVasanko 2025-11-07 07:36:43 +00:00
  • 407cedc7a9 More informative build error message when Zig is not installed. LeoVasanko 2025-11-07 05:02:01 +00:00
  • b5b939cffe Another approach to use zig build with setuptools. LeoVasanko 2025-11-07 04:56:39 +00:00
  • 5c04940525 Include zig build in the build process. LeoVasanko 2025-11-07 04:43:54 +00:00
  • e644f1b2ca Switch from hatch to setuptools/CFFI build to produce wheels correctly. LeoVasanko 2025-11-07 04:34:32 +00:00
  • 56b451ac0c Test cleanup, remove debug. LeoVasanko 2025-11-07 04:33:51 +00:00
  • 93bdbc26a2 Remove Encryptor.final_detached(), as final() handles both cases identically (only returns MAC). LeoVasanko 2025-11-07 04:33:04 +00:00
  • 2612dc8187 The update functions of libaegis now return the same number of bytes that went in. Update the binding accordingly. LeoVasanko 2025-11-07 04:27:48 +00:00
  • 302429b7a4 Add comments to generated files saying how they are generated. LeoVasanko 2025-11-07 03:31:29 +00:00
  • b83120187c Build cleanup, pathname reorganisation, cdef to repository (although generated with gen_cdef.py). LeoVasanko 2025-11-07 03:23:30 +00:00
  • e3508025f5 Add .gitignore LeoVasanko 2025-11-06 22:52:23 +00:00
  • 3767b34e2c Add libaegis submodule LeoVasanko 2025-11-06 22:51:32 +00:00
  • 0ae8752666 Rename module to pyaegis, implement build with zig. LeoVasanko 2025-11-06 21:34:15 +00:00
  • d51736f5ba Add pytest dev dependency. LeoVasanko 2025-11-06 20:20:23 +00:00
  • 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. LeoVasanko 2025-11-06 19:56:12 +00:00
  • c16e785203 Precise update output length calculation to allocate exactly sized buffers. LeoVasanko 2025-11-06 19:45:15 +00:00
  • 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. LeoVasanko 2025-11-06 03:13:46 +00:00
  • 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. LeoVasanko 2025-11-05 08:26:47 +00:00
  • 299586e6ee Cleanup LeoVasanko 2025-11-05 06:40:22 +00:00
  • 22299a1676 Initial commit LeoVasanko 2025-11-05 06:14:07 +00:00