LN-Zap / zap-android

Zap Wallet - Native android lightning wallet for node operators focused on user experience and ease of use ⚡️
MIT License
165 stars 49 forks source link

androidx.security library implementation -> Min SDK increased to 23 (Android 6.0) #290

Closed michaelWuensch closed 3 years ago

michaelWuensch commented 3 years ago

Description

This PR replaces the cryptography class with googles official androidx.security library. It also provides automated migration of the encrypted data to keep already existing connections and the pin working. The PIN Hash is now also encrypted making it harder to extract and then crack with something like hashcat. The old cryptography class does still exist, as it is needed for migrating previously encrypted data. It will be removed in a later release.

Motivation and Context

This shift makes the security part of Zap a lot easier to audit and will hopefully also make it easier for new developers to join the project. The official library is also well maintained which ensures that Zap will receive critical security updates in the future.

How Has This Been Tested?

On my S9

Types of changes

Checklist: