Skip to content

Commit db18318

Browse files
committed
Improve docs
1 parent b6f8af9 commit db18318

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

README.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
# SPAKE2
22

3-
[![GoDoc](https://godoc.org/github.com/backkem/spake2?status.svg)](https://godoc.org/github.com/backkem/spake2)
3+
[![GoDoc](https://godoc.org/github.com/backkem/spake2-go?status.svg)](https://godoc.org/github.com/backkem/spake2-go)
4+
[![Build Status](https://github.com/backkem/spake2-go/actions/workflows/ci.yml/badge.svg)](https://github.com/backkem/spake2-go/actions/workflows/ci.yml)
45

56
A Go implementation of the SPAKE2 password-authenticated key exchange protocol.
67

78
## Overview
89

910
SPAKE2 is a secure, password-authenticated key exchange protocol that allows two parties to establish a shared secret key based on a low-entropy password without revealing the password to an eavesdropper. This implementation provides both client and server components for the SPAKE2 protocol.
1011

12+
⚠️ **Security Warning**: While this implementation has been tested against the official RFC 9382 test vectors for correctness, it has not undergone formal security review or audit for vulnerabilities. Use at your own risk in production environments. Consider having the code reviewed by security experts before deploying in security-critical applications.
13+
1114
## Features
1215

1316
- Implements the SPAKE2 protocol as described in [RFC 9382](https://www.rfc-editor.org/rfc/rfc9382).
@@ -79,6 +82,36 @@ func main() {
7982
}
8083
```
8184

85+
## Protocol Flow
86+
87+
Below is a simplified flow of the SPAKE2 protocol exchange between client and server:
88+
89+
```mermaid
90+
sequenceDiagram
91+
participant C as Client
92+
participant S as Server
93+
C->>S: Start (Client Message)
94+
S->>C: Exchange (Server Message)
95+
C->>S: Finish (Client Confirm)
96+
S->>C: Confirm (Server Confirm)
97+
C->>C: Verify
98+
Note over C,S: Shared Key Established
99+
```
100+
101+
_Note: Render this diagram on GitHub or convert to an image for better visibility._
102+
103+
Alternatively, as a simple ASCII representation:
104+
105+
```
106+
Client Server
107+
| Start Msg ------> |
108+
| <------ Exchange Msg |
109+
| Finish Msg ------> |
110+
| <------ Confirm Msg |
111+
| Verify |
112+
v Shared Key v Shared Key
113+
```
114+
82115
## Documentation
83116

84117
Full documentation is available on [GoDoc](https://godoc.org/github.com/backkem/spake2).

0 commit comments

Comments
 (0)