11package main
22
33import (
4+ "context"
45 "fmt"
56 "log"
67 "os"
@@ -13,12 +14,13 @@ import (
1314 "github.com/tjblackheart/andcli/v2/internal/input"
1415 "github.com/tjblackheart/andcli/v2/internal/model"
1516 "github.com/tjblackheart/andcli/v2/internal/vaults"
16- "github.com/tjblackheart/andcli/v2/internal/vaults/aegis"
17- "github.com/tjblackheart/andcli/v2/internal/vaults/andotp"
18- "github.com/tjblackheart/andcli/v2/internal/vaults/keepass"
19- "github.com/tjblackheart/andcli/v2/internal/vaults/protonpass"
20- "github.com/tjblackheart/andcli/v2/internal/vaults/stratum"
21- "github.com/tjblackheart/andcli/v2/internal/vaults/twofas"
17+
18+ _ "github.com/tjblackheart/andcli/v2/internal/vaults/aegis"
19+ _ "github.com/tjblackheart/andcli/v2/internal/vaults/andotp"
20+ _ "github.com/tjblackheart/andcli/v2/internal/vaults/keepass"
21+ _ "github.com/tjblackheart/andcli/v2/internal/vaults/protonpass"
22+ _ "github.com/tjblackheart/andcli/v2/internal/vaults/stratum"
23+ _ "github.com/tjblackheart/andcli/v2/internal/vaults/twofas"
2224)
2325
2426func main () {
@@ -70,42 +72,10 @@ func open(cfg *config.Config) (vaults.Vault, error) {
7072 return nil , err
7173 }
7274
73- defer func () {
74- for i := range pw {
75- pw [i ] = 0
76- }
77- }()
78-
79- done := make (chan struct {})
80-
81- var vault vaults.Vault
82- go func () {
83- switch cfg .Type {
84- case vaults .ANDOTP :
85- vault , err = andotp .Open (cfg .File , pw )
86- case vaults .AEGIS :
87- vault , err = aegis .Open (cfg .File , pw )
88- case vaults .TWOFAS :
89- vault , err = twofas .Open (cfg .File , pw )
90- case vaults .STRATUM :
91- vault , err = stratum .Open (cfg .File , pw )
92- case vaults .KEEPASS :
93- vault , err = keepass .Open (cfg .File , pw )
94- case vaults .PROTON :
95- vault , err = protonpass .Open (cfg .File , pw )
96- default :
97- vault , err = nil , fmt .Errorf ("vault type %q: not implemented" , cfg .Type )
98- }
99- done <- struct {}{}
100- }()
101-
102- select {
103- case <- done :
104- case <- time .After (cfg .DecryptionTimeoutD ()):
105- return nil , fmt .Errorf ("decrypt: operation timed out. wrong type?" )
106- }
75+ ctx , cancel := context .WithTimeout (context .Background (), cfg .DecryptionTimeoutD ())
76+ defer cancel ()
10777
108- return vault , err
78+ return vaults . Open ( ctx , cfg . File , pw , cfg . Type )
10979}
11080
11181func password (piped bool ) ([]byte , error ) {
0 commit comments