Migrate cryptography to rust #74
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This comes with many benefits such as:
Speed. In fact, in our testing, backup times are slashed to under a
second for 100 notes in debug mode. This can be improved by reducing
memory copying and enabling hardware AES and SIMD in
rustc
flags.Auditability. We use audited cryptography libraries such as
ring
andaes-gcm
which provide better security.Predictability. Due to the lack of a runtime, boxing and unboxing, the
speed is predictable reducing many attacks which depend on timing
information. The libraries are made to be run in constant-time which
further improves security.
Todo
x86_64-pc-msvc-windows
x86_64-linux-android
aarch64-linux-android
armv7-linux-androideabi
x86_64-apple-ios
x86_64-apple-darwin
aarch64-apple-ios
aarch64-apple-ios-sim
Perform final compatibility testing (some old backups fail to restore,Implementations are 100% compatible. The system errors out withList<int>
toUint8List
issue migration suspected).null
folder
,last_changed
. Need to retain backwards compatibility with old backups @HrX03Signed-off-by: Akshit Garg [email protected]