diff --git a/lib/onboarding/view/setup_enter_secret_key_page.dart b/lib/onboarding/view/setup_enter_secret_key_page.dart index 4d0aab9ec..5a72f9cb4 100644 --- a/lib/onboarding/view/setup_enter_secret_key_page.dart +++ b/lib/onboarding/view/setup_enter_secret_key_page.dart @@ -23,12 +23,12 @@ class _SetupEnterSecretKeyPageState extends State { void initState() { _issuerController = TextEditingController( text: widget.code != null - ? Uri.decodeFull(widget.code!.issuer).trim() + ? safeDecode(widget.code!.issuer).trim() : null, ); _accountController = TextEditingController( text: widget.code != null - ? Uri.decodeFull(widget.code!.account).trim() + ? safeDecode(widget.code!.account).trim() : null, ); _secretController = TextEditingController( diff --git a/lib/ui/code_widget.dart b/lib/ui/code_widget.dart index 09b81f559..85f78b05b 100644 --- a/lib/ui/code_widget.dart +++ b/lib/ui/code_widget.dart @@ -306,15 +306,6 @@ class _CodeWidgetState extends State { ); } - String safeDecode(String value) { - try { - return Uri.decodeComponent(value); - } catch (e) { - // note: don't log the value, it might contain sensitive information - logger.severe("Failed to decode", e); - return value; - } - } String _getCurrentOTP() { try { diff --git a/lib/utils/totp_util.dart b/lib/utils/totp_util.dart index d76318280..a49448524 100644 --- a/lib/utils/totp_util.dart +++ b/lib/utils/totp_util.dart @@ -1,4 +1,5 @@ import 'package:ente_auth/models/code.dart'; +import 'package:flutter/foundation.dart'; import 'package:otp/otp.dart' as otp; String getOTP(Code code) { @@ -50,3 +51,13 @@ otp.Algorithm _getAlgorithm(Code code) { String getSanitizedSecret(String secret) { return secret.toUpperCase().trim().replaceAll(' ', ''); } + +String safeDecode(String value) { + try { + return Uri.decodeComponent(value); + } catch (e) { + // note: don't log the value, it might contain sensitive information + debugPrint("Failed to decode $e"); + return value; + } +} \ No newline at end of file