group-telegram.com/rareilly/166
Create:
Last Update:
Last Update:
Есть у меня традиция раз в год делать большое обновление библиотеки шифрования DataStore'ов.
В этот раз в версии 1.0.0 упростил создание зашифрованных сторов за счёт использования делегата:
// Before
val dataStore = DataStoreFactory.createEncrypted(serializer) {
EncryptedFile.Builder(
context.dataStoreFile("filename"),
context,
MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC),
EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
).build()
}
// After
val Context.dataStore by encryptedDataStore(
"filename",
serializer,
)
А в версии 1.1.1-beta01 смигрировал либу на новенький
datastore:1.1.1
.В общем-то на этом можно было бы считать долг мейнтейнера выполненным на год вперёд, если бы не приколы от Google.
🪦 security-crypto всё.
Да. Внезапно выяснилось, что security-crypto теперь deprecated.
Никаких анонсов с объяснениями этого решения я не нашёл, да и узнать об этом изменении можно только из одной строчки в документации по криптографии или если посмотреть на последний коммит в пакете security-crypto, где всё содержимое библиотеки просто помечается как deprecated.
Что дальше?
Для encrypted-datastore это не критично, так как security-crypto была нужна только для удобства. Всегда можно вернуться к получению
StreamingAead
через Tink. Конечно, это повлечёт за собой очередную миграцию 🙈 но я попробую сделать это максимально безболезненным процессом.А вот что делать тем кто использует
EncryptedSharedPreferences
? В сообщении депрекейта написано "Use SharedPreferences instead". Так себе альтернатива. Точно не лишним будет начать искать куда переносить данные из шифрованных префов.Есть и плюс. Это была единственная Android-специфичная библиотека, которая мешала сделать encrypted-datastore мультиплатформенной библиотекой. Если от неё избавиться, останется только собрать KMP-либу из разных реализаций Tink.
#datastore #security
BY Ra'Reilly - Заметки про Android и не только
Share with your friend now:
group-telegram.com/rareilly/166