Merge branch 'soru/fix-input-recovery-key' into 'main'
fix(ssss): Strip all whitespace characters from recovery keys upon decode See merge request famedly/company/frontend/famedlysdk!921
This commit is contained in:
commit
86f99bdef5
|
|
@ -121,7 +121,7 @@ class SSSS {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Uint8List decodeRecoveryKey(String recoveryKey) {
|
static Uint8List decodeRecoveryKey(String recoveryKey) {
|
||||||
final result = base58.decode(recoveryKey.replaceAll(' ', ''));
|
final result = base58.decode(recoveryKey.replaceAll(RegExp(r'\s'), ''));
|
||||||
|
|
||||||
final parity = result.fold<int>(0, (a, b) => a ^ b);
|
final parity = result.fold<int>(0, (a, b) => a ^ b);
|
||||||
if (parity != 0) {
|
if (parity != 0) {
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,10 @@ void main() {
|
||||||
if (!olmEnabled) return;
|
if (!olmEnabled) return;
|
||||||
final key = Uint8List.fromList(secureRandomBytes(32));
|
final key = Uint8List.fromList(secureRandomBytes(32));
|
||||||
final encoded = SSSS.encodeRecoveryKey(key);
|
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);
|
expect(key, decoded);
|
||||||
|
|
||||||
final handle = client.encryption!.ssss.open();
|
final handle = client.encryption!.ssss.open();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue