diff --git a/lib/encryption/ssss.dart b/lib/encryption/ssss.dart index 3a8a380f..fc591522 100644 --- a/lib/encryption/ssss.dart +++ b/lib/encryption/ssss.dart @@ -121,7 +121,7 @@ class SSSS { } static Uint8List decodeRecoveryKey(String recoveryKey) { - final result = base58.decode(recoveryKey.replaceAll(' ', '')); + final result = base58.decode(recoveryKey.replaceAll(RegExp(r'\s'), '')); final parity = result.fold(0, (a, b) => a ^ b); if (parity != 0) { diff --git a/test/encryption/ssss_test.dart b/test/encryption/ssss_test.dart index 13de3af8..093f8ca4 100644 --- a/test/encryption/ssss_test.dart +++ b/test/encryption/ssss_test.dart @@ -126,7 +126,10 @@ void main() { if (!olmEnabled) return; final key = Uint8List.fromList(secureRandomBytes(32)); final encoded = SSSS.encodeRecoveryKey(key); - final decoded = SSSS.decodeRecoveryKey(encoded); + var decoded = SSSS.decodeRecoveryKey(encoded); + expect(key, decoded); + + decoded = SSSS.decodeRecoveryKey(encoded + ' \n\t'); expect(key, decoded); final handle = client.encryption!.ssss.open();