v0.4.0 harden jwt, scram, credential handling, remove legacy adapters
test / test (push) Canceled after 0s
test / test (push) Canceled after 0s
This commit is contained in:
1 parent
b28e30ee2e
commit
2bf8715e93
21 files changed
+1562
-687
No files matched your search
@@ -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
|
||||
}
|
||||
Reference in new issue
Block a user