You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Go implementation of the SPAKE2 password-authenticated key exchange protocol.
6
7
7
8
## Overview
8
9
9
10
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.
10
11
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
+
11
14
## Features
12
15
13
16
- Implements the SPAKE2 protocol as described in [RFC 9382](https://www.rfc-editor.org/rfc/rfc9382).
@@ -18,7 +21,7 @@ SPAKE2 is a secure, password-authenticated key exchange protocol that allows two
18
21
To use this package in your Go project, you can install it using `go get`:
19
22
20
23
```bash
21
-
go get github.com/backkem/spake2
24
+
go get github.com/backkem/spake2-go
22
25
```
23
26
24
27
## Usage
@@ -30,7 +33,7 @@ package main
30
33
31
34
import (
32
35
"fmt"
33
-
"github.com/backkem/spake2"
36
+
"github.com/backkem/spake2-go"
34
37
)
35
38
36
39
funcmain() {
@@ -79,9 +82,25 @@ func main() {
79
82
}
80
83
```
81
84
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
+
82
101
## Documentation
83
102
84
-
Full documentation is available on [GoDoc](https://godoc.org/github.com/backkem/spake2).
103
+
Full documentation is available on [GoDoc](https://godoc.org/github.com/backkem/spake2-go).
0 commit comments