# Roadmap 1.0 ## Summary Make the program real-world usable and stable. ## Knowledge and Design * understand `encrypt_next_in_place()`'s first argument better * current understanding: * associated data is used for parts of the data that cannot be encrypted but should also be integrity protected by the authentication tag * since there are no parts that cannot be encrypted in the context of `fcry` it is correct to pass an empty slice to the first argument of `encrypt_next_in_place()` * currently `fcry` uses 64 KiB blocks as single AEAD messages * as stated [here](https://pycryptodome.readthedocs.io/en/latest/src/cipher/chacha20_poly1305.html) (limit of 13 billion messages) would imply a maximum file-size of `64 KiB * 13e9 = 832e9 KiB = 774.86 TiB`. While a file this size could be considered a special (and unsupported) use case anyway, performance is also a consideration. Does performance improve noticably with larger message sizes? * unit tests ## Features * password hashing * configurable algorithm (sane default) * configurable nr of rounds (sand default) * a way to enter the password securely in a prompt while still being able to handle `stdin` data * add usage examples to README.md # Roadmap 2.0 * parallel processing: use all available (or configurable) CPU cores # Roadmap later or never * split into `lib` and `bin` * other AEAD algorithms