Skip to content

Commit f1be81b

Browse files
committed
agent: stub out the missing proxy functionality
`ssh-add` didn't work through ssh-tpm-agent -A Fixes: #50 Signed-off-by: Morten Linderud <[email protected]>
1 parent 5ba4749 commit f1be81b

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

agent/agent.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,16 +245,43 @@ func (a *Agent) LoadKeys(keyDir string) error {
245245
// Unsupported functions
246246
func (a *Agent) Add(key agent.AddedKey) error {
247247
slog.Debug("called add")
248+
for _, agent := range a.agents {
249+
if err := agent.Add(key); err == nil {
250+
return nil
251+
}
252+
}
248253
return ErrOperationUnsupported
249254
}
250255

251256
func (a *Agent) Remove(key ssh.PublicKey) error {
252257
slog.Debug("called remove")
258+
259+
for _, agent := range a.agents {
260+
lkeys, err := agent.List()
261+
if err != nil {
262+
slog.Debug("agent returned err on List(): %v", err)
263+
continue
264+
}
265+
266+
for _, k := range lkeys {
267+
if !bytes.Equal(k.Marshal(), key.Marshal()) {
268+
continue
269+
}
270+
if err := agent.Remove(key); err != nil {
271+
slog.Debug("agent returned err on Remove(): %v", err)
272+
}
273+
}
274+
}
253275
return ErrOperationUnsupported
254276
}
255277

256278
func (a *Agent) RemoveAll() error {
257279
slog.Debug("called removeall")
280+
for _, agent := range a.agents {
281+
if err := agent.RemoveAll(); err == nil {
282+
return nil
283+
}
284+
}
258285
return a.Close()
259286
}
260287

0 commit comments

Comments
 (0)