erste module drin.
zwischenstand: Architektur aktualisiert, TOFU implementiert,
This commit is contained in:
1 parent
9d5789c5d7
commit
c8df9d7651
41 files changed
+6455
-36
No files matched your search
@@ -0,0 +1,29 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestNonceCache(t *testing.T) {
|
||||
now := time.Date(2026, 10, 1, 12, 0, 0, 0, time.UTC)
|
||||
var c nonceCache
|
||||
|
||||
if !c.add("keyA", "n1", now.Add(time.Minute), now) {
|
||||
t.Fatal("erste Verwendung abgelehnt")
|
||||
}
|
||||
if c.add("keyA", "n1", now.Add(time.Minute), now) {
|
||||
t.Error("Wiederholung akzeptiert")
|
||||
}
|
||||
if !c.add("keyB", "n1", now.Add(time.Minute), now) {
|
||||
t.Error("gleiche Nonce eines anderen Schlüssels abgelehnt")
|
||||
}
|
||||
|
||||
// Nach Ablauf wird der Eintrag aufgeräumt; der Zeitstempel-Check
|
||||
// verhindert dann ohnehin jede Wiederverwendung.
|
||||
later := now.Add(2 * time.Minute)
|
||||
c.add("keyA", "n2", later.Add(time.Minute), later)
|
||||
if n := c.len(); n != 1 {
|
||||
t.Errorf("%d Einträge nach Ablauf, erwartet 1", n)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user