v0.4.0 harden jwt, scram, credential handling, remove legacy adapters
test / test (push) Canceled after 0s

This commit is contained in:
lixen committed 2026-09-26 20:42:42 -04:00
1 parent b28e30ee2e
commit 2bf8715e93
21 files changed
+1562 -687

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
package auth_test
import (
"fmt"
"log"
"github.com/lixenwraith/auth"
)
func ExampleNewCredential() {
credential, err := auth.NewCredential("alice", "a-long-example-password")
if err != nil {
log.Fatal(err)
}
// For this local example only. Services should persist a random decoy key
// and use NewScramServerWithDecoyKey, plus authenticated TLS for transport.
server := auth.NewScramServer()
defer server.Stop()
if err := server.AddCredential(credential); err != nil {
log.Fatal(err)
}
client := auth.NewScramClient("alice", "a-long-example-password")
first, err := client.StartAuthentication()
if err != nil {
log.Fatal(err)
}
challenge, err := server.ProcessClientFirstMessage(first.Username, first.ClientNonce)
if err != nil {
log.Fatal(err)
}
proof, err := client.ProcessServerFirstMessage(challenge)
if err != nil {
log.Fatal(err)
}
final, err := server.ProcessClientFinalMessage(proof.FullNonce, proof.ClientProof)
if err != nil {
log.Fatal(err)
}
if err := client.VerifyServerFinalMessage(final); err != nil {
log.Fatal(err)
}
fmt.Println(final.Username)
// Output: alice
}