Skip to content

Commit 14e2642

Browse files
committed
Update Readme
1 parent 8588232 commit 14e2642

File tree

2 files changed

+52
-21
lines changed

2 files changed

+52
-21
lines changed

README.md

+24-21
Original file line numberDiff line numberDiff line change
@@ -66,25 +66,28 @@ Once those are implemented, you can build a session in this way:
6666
If you wanna send message to a group, send a SenderKeyDistributionMessage to all members of the group.
6767

6868
```dart
69-
final senderAddress = SignalProtocolAddress('+00000000001', 1);
70-
final groupSender =
71-
SenderKeyName('Private group', senderAddress);
72-
final aliceStore = InMemorySenderKeyStore();
73-
final bobStore = InMemorySenderKeyStore();
74-
75-
final aliceSessionBuilder = GroupSessionBuilder(aliceStore);
76-
final bobSessionBuilder = GroupSessionBuilder(bobStore);
77-
78-
final aliceGroupCipher = GroupCipher(aliceStore, groupSender);
79-
final bobGroupCipher = GroupCipher(bobStore, groupSender);
80-
81-
final sentAliceDistributionMessage = aliceSessionBuilder.create(groupSender);
82-
final receivedAliceDistributionMessage =
83-
SenderKeyDistributionMessageWrapper.fromSerialized(
84-
sentAliceDistributionMessage.serialize());
85-
bobSessionBuilder.process(groupSender, receivedAliceDistributionMessage);
86-
87-
final ciphertextFromAlice = aliceGroupCipher
88-
.encrypt(Uint8List.fromList(utf8.encode('Hello Mixin')));
89-
final plaintextFromAlice = bobGroupCipher.decrypt(ciphertextFromAlice);
69+
const alice = SignalProtocolAddress('+00000000001', 1);
70+
const groupSender = SenderKeyName('Private group', alice);
71+
final aliceStore = InMemorySenderKeyStore();
72+
final bobStore = InMemorySenderKeyStore();
73+
74+
final aliceSessionBuilder = GroupSessionBuilder(aliceStore);
75+
final bobSessionBuilder = GroupSessionBuilder(bobStore);
76+
77+
final aliceGroupCipher = GroupCipher(aliceStore, groupSender);
78+
final bobGroupCipher = GroupCipher(bobStore, groupSender);
79+
80+
final sentAliceDistributionMessage =
81+
await aliceSessionBuilder.create(groupSender);
82+
final receivedAliceDistributionMessage =
83+
SenderKeyDistributionMessageWrapper.fromSerialized(
84+
sentAliceDistributionMessage.serialize());
85+
await bobSessionBuilder.process(
86+
groupSender, receivedAliceDistributionMessage);
87+
88+
final ciphertextFromAlice = await aliceGroupCipher
89+
.encrypt(Uint8List.fromList(utf8.encode('Hello Mixin')));
90+
final plaintextFromAlice = await bobGroupCipher.decrypt(ciphertextFromAlice);
91+
// ignore: avoid_print
92+
print(utf8.decode(plaintextFromAlice));
9093
```

example/main.dart

+28
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
55

66
Future<void> main() async {
77
await install();
8+
await groupTest();
89
}
910

1011
Future<void> install() async {
@@ -79,6 +80,33 @@ Future<void> install() async {
7980
}
8081
}
8182

83+
Future<void> groupTest() async {
84+
const alice = SignalProtocolAddress('+00000000001', 1);
85+
const groupSender = SenderKeyName('Private group', alice);
86+
final aliceStore = InMemorySenderKeyStore();
87+
final bobStore = InMemorySenderKeyStore();
88+
89+
final aliceSessionBuilder = GroupSessionBuilder(aliceStore);
90+
final bobSessionBuilder = GroupSessionBuilder(bobStore);
91+
92+
final aliceGroupCipher = GroupCipher(aliceStore, groupSender);
93+
final bobGroupCipher = GroupCipher(bobStore, groupSender);
94+
95+
final sentAliceDistributionMessage =
96+
await aliceSessionBuilder.create(groupSender);
97+
final receivedAliceDistributionMessage =
98+
SenderKeyDistributionMessageWrapper.fromSerialized(
99+
sentAliceDistributionMessage.serialize());
100+
await bobSessionBuilder.process(
101+
groupSender, receivedAliceDistributionMessage);
102+
103+
final ciphertextFromAlice = await aliceGroupCipher
104+
.encrypt(Uint8List.fromList(utf8.encode('Hello Mixin')));
105+
final plaintextFromAlice = await bobGroupCipher.decrypt(ciphertextFromAlice);
106+
// ignore: avoid_print
107+
print(utf8.decode(plaintextFromAlice));
108+
}
109+
82110
Future<void> groupSession() async {
83111
const senderKeyName = SenderKeyName('', SignalProtocolAddress('sender', 1));
84112
final senderKeyStore = InMemorySenderKeyStore();

0 commit comments

Comments
 (0)