@@ -16,36 +16,22 @@ import (
16
16
func TestAPIKeyEncryption (t * testing.T ) {
17
17
t .Parallel ()
18
18
19
- generateAPIKey := func (t * testing.T , db database.Store ) (keyID , keySecret string , hashedSecret []byte , data encryptedAPIKeyPayload ) {
20
- keyID , keySecret , err := GenerateAPIKeyIDSecret ( )
21
- require . NoError ( t , err )
19
+ generateAPIKey := func (t * testing.T , db database.Store ) (keyID , keyToken string , hashedSecret []byte , data encryptedAPIKeyPayload ) {
20
+ gen := databasefake . NewGenerator ( t , db )
21
+ key , token := gen . APIKey ( context . Background (), database. APIKey {} )
22
22
23
- hashedSecretArray := sha256 .Sum256 ([]byte (keySecret ))
24
23
data = encryptedAPIKeyPayload {
25
- APIKey : keyID + "-" + keySecret ,
24
+ APIKey : token ,
26
25
ExpiresAt : database .Now ().Add (24 * time .Hour ),
27
26
}
28
27
29
- return keyID , keySecret , hashedSecretArray [:], data
30
- }
31
- insertAPIKey := func (t * testing.T , db database.Store , keyID string , hashedSecret []byte ) {
32
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
33
- defer cancel ()
34
-
35
- _ , err := db .InsertAPIKey (ctx , database.InsertAPIKeyParams {
36
- ID : keyID ,
37
- HashedSecret : hashedSecret ,
38
- LoginType : database .LoginTypePassword ,
39
- Scope : database .APIKeyScopeAll ,
40
- })
41
- require .NoError (t , err )
28
+ return key .ID , token , key .HashedSecret [:], data
42
29
}
43
30
44
31
t .Run ("OK" , func (t * testing.T ) {
45
32
t .Parallel ()
46
33
db := databasefake .New ()
47
34
keyID , _ , hashedSecret , data := generateAPIKey (t , db )
48
- insertAPIKey (t , db , keyID , hashedSecret )
49
35
50
36
encrypted , err := encryptAPIKey (data )
51
37
require .NoError (t , err )
@@ -66,8 +52,7 @@ func TestAPIKeyEncryption(t *testing.T) {
66
52
t .Run ("Expiry" , func (t * testing.T ) {
67
53
t .Parallel ()
68
54
db := databasefake .New ()
69
- keyID , _ , hashedSecret , data := generateAPIKey (t , db )
70
- insertAPIKey (t , db , keyID , hashedSecret )
55
+ _ , _ , _ , data := generateAPIKey (t , db )
71
56
72
57
data .ExpiresAt = database .Now ().Add (- 1 * time .Hour )
73
58
encrypted , err := encryptAPIKey (data )
@@ -84,9 +69,18 @@ func TestAPIKeyEncryption(t *testing.T) {
84
69
t .Run ("KeyMatches" , func (t * testing.T ) {
85
70
t .Parallel ()
86
71
db := databasefake .New ()
87
- keyID , _ , _ , data := generateAPIKey (t , db )
72
+
73
+ gen := databasefake .NewGenerator (t , db )
88
74
hashedSecret := sha256 .Sum256 ([]byte ("wrong" ))
89
- insertAPIKey (t , db , keyID , hashedSecret [:])
75
+ // Insert a token with a mismatched hashed secret.
76
+ _ , token := gen .APIKey (context .Background (), database.APIKey {
77
+ HashedSecret : hashedSecret [:],
78
+ })
79
+
80
+ data := encryptedAPIKeyPayload {
81
+ APIKey : token ,
82
+ ExpiresAt : database .Now ().Add (24 * time .Hour ),
83
+ }
90
84
91
85
encrypted , err := encryptAPIKey (data )
92
86
require .NoError (t , err )
0 commit comments