fix: Fixed dysfunctional key-verification (Emoji+manual)
- added snippet from Nico in matrix_keys.dart Fixes #24
This commit is contained in:
parent
f2ab312091
commit
ea93867b94
|
|
@ -2,7 +2,7 @@
|
||||||
*.class
|
*.class
|
||||||
*.log
|
*.log
|
||||||
*.pyc
|
*.pyc
|
||||||
*.swp
|
*.sw*
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.atom/
|
.atom/
|
||||||
.buildlog/
|
.buildlog/
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,25 @@ abstract class MatrixSignableKey {
|
||||||
userId = json['user_id'] as String,
|
userId = json['user_id'] as String,
|
||||||
keys = Map<String, String>.from(json['keys'] as Map<String, dynamic>),
|
keys = Map<String, String>.from(json['keys'] as Map<String, dynamic>),
|
||||||
// we need to manually copy to ensure that our map is Map<String, Map<String, String>>
|
// we need to manually copy to ensure that our map is Map<String, Map<String, String>>
|
||||||
signatures = json.tryGetMap<String, Map<String, String>>('signatures'),
|
signatures = (() {
|
||||||
unsigned = json.tryGetMap<String, dynamic>('unsigned');
|
final orig = json.tryGetMap<String, dynamic>('signatures');
|
||||||
|
final res = <String, Map<String, String>>{};
|
||||||
|
for (final entry
|
||||||
|
in (orig?.entries ?? <MapEntry<String, dynamic>>[])) {
|
||||||
|
final deviceSigs = entry.value;
|
||||||
|
if (deviceSigs is Map<String, dynamic>) {
|
||||||
|
for (final nestedEntry in deviceSigs.entries) {
|
||||||
|
final nestedValue = nestedEntry.value;
|
||||||
|
if (nestedValue is String) {
|
||||||
|
(res[entry.key] ??= <String, String>{})[nestedEntry.key] =
|
||||||
|
nestedValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}()),
|
||||||
|
unsigned = json.tryGetMap<String, dynamic>('unsigned')?.copy();
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final data = _json ?? <String, dynamic>{};
|
final data = _json ?? <String, dynamic>{};
|
||||||
|
|
|
||||||
|
|
@ -1197,7 +1197,7 @@ void main() {
|
||||||
'ed25519:82mAXjsmbTbrE6zyShpR869jnrANO75H8nYY0nDLoJ8':
|
'ed25519:82mAXjsmbTbrE6zyShpR869jnrANO75H8nYY0nDLoJ8':
|
||||||
'82mAXjsmbTbrE6zyShpR869jnrANO75H8nYY0nDLoJ8',
|
'82mAXjsmbTbrE6zyShpR869jnrANO75H8nYY0nDLoJ8',
|
||||||
},
|
},
|
||||||
'signatures': <String, dynamic>{},
|
'signatures': <String, Map<String, String>>{},
|
||||||
});
|
});
|
||||||
final selfSigningKey = MatrixCrossSigningKey.fromJson({
|
final selfSigningKey = MatrixCrossSigningKey.fromJson({
|
||||||
'user_id': '@test:fakeServer.notExisting',
|
'user_id': '@test:fakeServer.notExisting',
|
||||||
|
|
@ -1206,7 +1206,7 @@ void main() {
|
||||||
'ed25519:F9ypFzgbISXCzxQhhSnXMkc1vq12Luna3Nw5rqViOJY':
|
'ed25519:F9ypFzgbISXCzxQhhSnXMkc1vq12Luna3Nw5rqViOJY':
|
||||||
'F9ypFzgbISXCzxQhhSnXMkc1vq12Luna3Nw5rqViOJY',
|
'F9ypFzgbISXCzxQhhSnXMkc1vq12Luna3Nw5rqViOJY',
|
||||||
},
|
},
|
||||||
'signatures': <String, dynamic>{},
|
'signatures': <String, Map<String, String>>{},
|
||||||
});
|
});
|
||||||
final userSigningKey = MatrixCrossSigningKey.fromJson({
|
final userSigningKey = MatrixCrossSigningKey.fromJson({
|
||||||
'user_id': '@test:fakeServer.notExisting',
|
'user_id': '@test:fakeServer.notExisting',
|
||||||
|
|
@ -1215,7 +1215,7 @@ void main() {
|
||||||
'ed25519:0PiwulzJ/RU86LlzSSZ8St80HUMN3dqjKa/orIJoA0g':
|
'ed25519:0PiwulzJ/RU86LlzSSZ8St80HUMN3dqjKa/orIJoA0g':
|
||||||
'0PiwulzJ/RU86LlzSSZ8St80HUMN3dqjKa/orIJoA0g',
|
'0PiwulzJ/RU86LlzSSZ8St80HUMN3dqjKa/orIJoA0g',
|
||||||
},
|
},
|
||||||
'signatures': <String, dynamic>{},
|
'signatures': <String, Map<String, String>>{},
|
||||||
});
|
});
|
||||||
await matrixApi.uploadCrossSigningKeys(
|
await matrixApi.uploadCrossSigningKeys(
|
||||||
masterKey: masterKey,
|
masterKey: masterKey,
|
||||||
|
|
@ -1638,7 +1638,7 @@ void main() {
|
||||||
final algorithm = BackupAlgorithm.mMegolmBackupV1Curve25519AesSha2;
|
final algorithm = BackupAlgorithm.mMegolmBackupV1Curve25519AesSha2;
|
||||||
final authData = <String, dynamic>{
|
final authData = <String, dynamic>{
|
||||||
'public_key': 'GXYaxqhNhUK28zUdxOmEsFRguz+PzBsDlTLlF0O0RkM',
|
'public_key': 'GXYaxqhNhUK28zUdxOmEsFRguz+PzBsDlTLlF0O0RkM',
|
||||||
'signatures': <String, dynamic>{},
|
'signatures': <String, Map<String, String>>{},
|
||||||
};
|
};
|
||||||
final ret = await matrixApi.postRoomKeysVersion(algorithm, authData);
|
final ret = await matrixApi.postRoomKeysVersion(algorithm, authData);
|
||||||
expect(
|
expect(
|
||||||
|
|
@ -1663,7 +1663,7 @@ void main() {
|
||||||
final algorithm = BackupAlgorithm.mMegolmBackupV1Curve25519AesSha2;
|
final algorithm = BackupAlgorithm.mMegolmBackupV1Curve25519AesSha2;
|
||||||
final authData = <String, dynamic>{
|
final authData = <String, dynamic>{
|
||||||
'public_key': 'GXYaxqhNhUK28zUdxOmEsFRguz+PzBsDlTLlF0O0RkM',
|
'public_key': 'GXYaxqhNhUK28zUdxOmEsFRguz+PzBsDlTLlF0O0RkM',
|
||||||
'signatures': <String, dynamic>{},
|
'signatures': <String, Map<String, String>>{},
|
||||||
};
|
};
|
||||||
await matrixApi.putRoomKeysVersion('5', algorithm, authData);
|
await matrixApi.putRoomKeysVersion('5', algorithm, authData);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue