Skip to content

Commit 9662fb8

Browse files
committed
feat: Update README.md
1 parent b333867 commit 9662fb8

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@ This repository serves as a technical demonstration of Signal Protocol implement
1919

2020
## 📋 Requirements
2121

22-
- Flutter `>=3.7.2`
23-
- Dart `>=3.7.2`
22+
- Flutter `>=3.7.2` (Developed with 3.16.9)
23+
- Dart `>=3.7.2` (Developed with 3.2.6)
2424

2525
## 🛠️ Installation
2626

2727
```bash
2828
# Clone the repository
29-
git clone https://github.com/stdNullPtr/flutter_signal_protocol_client_poc
30-
cd flutter_signal_protocol_client_poc
29+
git clone https://github.com/stdNullPtr/Flutter-Signal-Protocol-PoC.git
30+
cd Flutter-Signal-Protocol-PoC
3131

3232
# Install dependencies
3333
flutter pub get
3434

3535
# Generate Freezed code
36-
dart run build_runner build
36+
flutter pub run build_runner build --delete-conflicting-outputs
3737
```
3838

3939
## 🏗️ Architecture
@@ -168,8 +168,9 @@ flutter test --name "should establish session and exchange messages"
168168
- Validates security against key reuse attacks
169169
- Tests proper key rotation mechanisms
170170

171-
Each test includes comprehensive logging that explains what's happening at each step of the protocol. This can also be seen in the test workflow: https://github.com/stdNullPtr/Flutter-Signal-Protocol-PoC/actions
172-
![image](https://github.com/user-attachments/assets/ebf832f5-aa33-473b-b2c2-25abf8f451d3)
171+
Each test includes comprehensive logging that explains what's happening at each step of the protocol. To see detailed logs while running tests, use the `--reporter expanded` flag. The test output can also be seen in the GitHub Actions workflow: https://github.com/stdNullPtr/Flutter-Signal-Protocol-PoC/actions
172+
173+
![Signal Protocol Test Workflow](https://github.com/user-attachments/assets/ebf832f5-aa33-473b-b2c2-25abf8f451d3)
173174

174175

175176
## 🔍 Key Components Explained
@@ -253,6 +254,8 @@ To understand the Signal Protocol implementation:
253254
The PoC implements proper session acknowledgment, which is crucial for the Double Ratchet algorithm:
254255
- Initial messages use PreKey messages (containing X3DH materials)
255256
- After session establishment, a cryptographic acknowledgment occurs
257+
- When receiving a PreKey message, the receiver creates a session
258+
- The receiver acknowledges the session by clearing unacknowledged PreKey flag
256259
- Subsequent messages use the more efficient "whisper" message type
257260
- This follows the Signal Protocol's security design for session establishment
258261

@@ -275,7 +278,7 @@ Group messaging is implemented using sender keys:
275278
## 🔗 References
276279

277280
- [Signal Protocol Documentation](https://signal.org/docs/)
278-
- [libsignal_protocol_dart](https://pub.dev/packages/libsignal_protocol_dart)
281+
- [libsignal_protocol_dart](https://pub.dev/packages/libsignal_protocol_dart) - The Dart implementation of Signal Protocol used in this project
279282
- [The X3DH Key Agreement Protocol](https://signal.org/docs/specifications/x3dh/)
280283
- [The Double Ratchet Algorithm](https://signal.org/docs/specifications/doubleratchet/)
281284
- [Sender Keys for Group Messaging](https://signal.org/docs/specifications/group-sessions/)

0 commit comments

Comments
 (0)