5.0.2 (2025-06-13)
No significant changes.
5.0.1 (2024-12-24)
- Removed
3.8from the list of supported Python versions.
- Removed
xor-cipher.org.
5.0.0 (2024-06-26)
- The core was rewritten in Rust. (#55)
- Removed
unsafefunctions. (#55)
- Added byte key validation.
- Removed
xor_string,cyclic_xor_stringandcyclic_xor_string_unsafe. DEFAULT_ENCODINGandDEFAULT_ERRORSare not used anymore, therefore they were removed as well.
- Improved typing.
No significant changes.
- Improved typing.
- Dropped Python 3.7 support.
No significant changes.
- Moved
xor_cipher.extensionimports intoxor_cipherprelude instead ofxor_cipher.core. This makes it easy to generate proper documentation and allows to test both python and cython implementations.
- Migrated to using
setuptools.
- Exported in-place functions.
- Transferred the project to the
xor-cipherorganization.
- Fixed the memory leak for functions which created copies of the initial buffer.
- Optimized the process of memory copying (both in performance and memory usage).
- Added
py.typedfile to signify that the library is typed.
No significant changes.
- Added
cyclic_xor_string_unsafeas the part of the unsafe API. - Added
xor_in_place. - Added
cyclic_xor_in_place. - Added
cyclic_xor_in_place_unsafeas the part of the unsafe API.
- Bumped the minimal Python version to
3.7. - Renamed
xor_static -> xor. - Renamed
xor_cyclic -> cyclic_xor. - Renamed
xor_cyclic_unsafe -> cyclic_xor_unsafe. - Renamed
xor_static_str -> xor_string. - Renamed
xor_cyclic_str -> cyclic_xor_string. This function now expectskeyof typestrinstead ofbytes.
- Added
xor_cyclic_unsafe, introducing the unsafe API.
- Added key length check in
xor_cyclic.
- Fixed type annotations.
- Fixed extension builds.
Initial release.