Refactor KeyManager and TagRecogniser, implement new key rotation logic.
This patch implements the new key rotation logic for BTP version 2, the new transport protocol (#111).
KeyManager and TagRecogniser have been merged (#55). They no longer need to hold locks while calling each other's methods (#3, #4). TransportKeyManager holds a lock while calling CryptoComponent methods, but those methods don't block or acquire any locks.
The maximum clock difference has been increased from one hour to 24 hours because some people adjust the time rather than the timezone when travelling (#18). This will cause keys to be rotated less frequently.
For the same reason, the key manager no longer throws an Error when the clock moves backwards - keys that belong to future rotation periods are kept until they become current, then rotation resumes (#19).
The new KeyManagerImpl and TransportKeyManager need unit tests. I'm putting this up for review while I write the tests.
TransportKeyManager needs further work before #55 is complete - when a stream context is created, TransportKeyManager should wait for the database write to complete before returning the context, to avoid the risk of key reuse if the write fails. I'll make a separate patch for that as this one's big enough already.
Enjoy!
See merge request !13
Improve Forum Sharing UI when sharing with selected contacts
When sharing only with chosen contacts, checking the contact's checkbox
and pressing Done nothing happens and the forum is not shared. An
additional click on "Share Forum" is necessary to actually share.
This behavior is fixed with this change.
Now, clicking 'Done' immediately shares the forum.
Closes#153
See merge request !20
When sharing only with chosen contacts, checking the contact's checkbox
and pressing Done nothing happens and the forum is not shared. An
additional click on "Share Forum" is necessary to actually share.
This behavior is fixed with this change.
Now, clicking 'Done' immediately shares the forum.
Closes#153
Users were confused by the process of adding a contact for the first time.
This change adds additional explanation and a picture of what is going on.
It also moves part of the UI into XML files.
Closes#87
Remove the Toast that always says 'Message Sent' and show graphical
indicators instead that show either:
* message is waiting to be sent
* message was sent (or requested)
* message was delivered
Create hidden service in a subdirectory. #161
The permissions for the parent directory are too permissive (775) for Tor 0.2.7.5. Store the hidden service hostname and private key in a subdirectory with permissions 700.
See merge request !5
The text of the startup failure notification is unhelpful due to lack of
space. Touching the notification now launches an activity that gives details
of the problem and what can be done about it.
Closes#38
Hide password strength meter when confirming password
Closes#100
I opted to hide the strength meter because:
* more extensive changes would have been required to set the strength meter to 100% red.
* IMHO it would lead to confusion as to the meaning of the strength meter.
* the "passwords do not match" error should eventually become a proper error of the confirm EditText, not a separate label.
See merge request !2