Merge branch 'fix/files-uses-your-flamenet-passphrase' into 'main'
Files asks for your Flamenet passphrase, not a second secret See merge request paulhitt/flamenet-messenger-android!69
This commit was merged in pull request #96.
This commit is contained in:
@@ -773,7 +773,7 @@ fun ColumnScope.AccountScreen(
|
||||
Text("Files", fontWeight = FontWeight.Medium, fontSize = 16.sp)
|
||||
Spacer(Modifier.height(Space.xs))
|
||||
Text(
|
||||
"Files encrypted on this phone, with a passphrase of their own. "
|
||||
"Files encrypted on this phone, opened with your Flamenet passphrase. "
|
||||
+ "Nothing is stored on a server.",
|
||||
fontSize = 13.sp,
|
||||
color = Palette.SecondaryText,
|
||||
|
||||
@@ -118,10 +118,22 @@ private fun ColumnScope.FilesSetUp(
|
||||
var passphrase by remember { mutableStateOf("") }
|
||||
var again by remember { mutableStateOf("") }
|
||||
|
||||
// 🔴 **"A passphrase of their own" told people to invent a second secret,
|
||||
// and iOS never did.** iOS says "your passphrase" and takes whatever is
|
||||
// typed, so a person naturally uses their Flamenet one and it simply
|
||||
// works. Android's copy sent them off to make up something else, then
|
||||
// asked for it again weeks later — and forgetting it is the one-way door
|
||||
// described above this function.
|
||||
//
|
||||
// ⚠️ **Nothing about the derivation changes.** This is still a free-choice
|
||||
// string protecting the identity record, so anyone who already set a
|
||||
// different one keeps opening their files with it. Making the account
|
||||
// passphrase the ACTUAL key would be a migration with permanent data loss
|
||||
// on the far side of any mistake, and it is not what this fixes.
|
||||
Text(
|
||||
"Files on this phone are encrypted with a passphrase of their own. "
|
||||
+ "Flamenet doesn't keep it, so nobody can open them by picking up "
|
||||
+ "your unlocked phone.",
|
||||
"Use your Flamenet passphrase — the one you sign in with. Files on "
|
||||
+ "this phone are encrypted with it, and Flamenet keeps no copy, so "
|
||||
+ "nobody can open them by picking up your unlocked phone.",
|
||||
fontSize = 14.sp, color = Palette.SecondaryText,
|
||||
)
|
||||
Spacer(Modifier.height(Space.sm))
|
||||
@@ -134,7 +146,7 @@ private fun ColumnScope.FilesSetUp(
|
||||
|
||||
OutlinedTextField(
|
||||
value = passphrase, onValueChange = { passphrase = it },
|
||||
label = { Text("Choose a passphrase") },
|
||||
label = { Text("Your Flamenet passphrase") },
|
||||
visualTransformation = PasswordVisualTransformation(),
|
||||
singleLine = true,
|
||||
modifier = Modifier.fillMaxWidth().testTag("files-new-passphrase"),
|
||||
@@ -168,7 +180,10 @@ private fun ColumnScope.FilesUnlock(
|
||||
) {
|
||||
var passphrase by remember { mutableStateOf("") }
|
||||
|
||||
Text("Enter your Files passphrase to open them.",
|
||||
// ⚠️ Not "your Files passphrase". That name implied a second secret even
|
||||
// for somebody who had used their Flamenet one, and left them hunting for
|
||||
// a passphrase they never set.
|
||||
Text("Enter your Flamenet passphrase to open them.",
|
||||
fontSize = 14.sp, color = Palette.SecondaryText)
|
||||
Spacer(Modifier.height(Space.md))
|
||||
OutlinedTextField(
|
||||
|
||||
Reference in New Issue
Block a user