Encrypted rich text editor in Qt5 using Crypto++ as the backend. Will implement Botan backend too, when there's time.
The front-end is mainly the QTextEdit widget, which enables rich text editing.
It is useful to block out supersensitive details, such as passwords while you scroll through your document.
The censoring is implemented by setting the text highlight colour to the current text colour.
Onlookers will not be able to read your censored text fragments unless they are selected.
Copying and pasting censored text should work as normal.
The Strikethrough button in the formatting toolbar is used to toggle censoring for the current cursor.
The cryptography toolbar provides easy access to control the encryption scheme.
- Password line edit
- Digest algorithm selection
- Cipher algorithm selection
- Operation mode selection
Qrypted supports reading and writing text files. All files are currently saved using UTF-8 encoding, however it is capable of loading any other codecs. Choose the format from the file filter when opening or saving files:
- .txt Plain Text
- .htm .html HTML
- .xsi Cryptic, which requires password for encryption
Currently serialises into XML data defined in docs/Cryptic-V2.xsd. Will probably change to DER later, but the element hierarchy should remain the same as follows.
- Header provides comprehensive information to setup cryptography
- Digest SHA-1, SHA-256, SHA-512 …
- Salt Hexadecimal
- IterationCount
- KeyLength in bytes
- Cipher AES, Blowfish, Serpent, …
- Method CBC, CTR, GCM, …
- InitialVector Hexadecimal
- Payload data can be split into many chunks using the following:
- Data Base64
- HexData Base16
- Trailer additional data transformation details
- Length
- Authentication HMAC of pre-encrypted data, used for non-authenticating methods
- Compression Identity, GZip, ZLib