add remote signer api and e2e test of it (#320)

This commit is contained in:
Boshi Lian 2024-02-11 01:54:55 -08:00 committed by GitHub
parent d8b345eeb7
commit 82ac6a5fff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 72 additions and 4 deletions

View file

@ -8,6 +8,7 @@ import (
"net"
"os"
"github.com/tg123/remotesigner/grpcsigner"
"github.com/tg123/sshpiper/libplugin/ioconn"
"google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
@ -60,6 +61,8 @@ type SshPiperPluginConfig struct {
PipeStartCallback func(conn ConnMetadata)
PipeErrorCallback func(conn ConnMetadata, err error)
GrpcRemoteSignerFactory grpcsigner.SignerFactory
}
type SshPiperPlugin interface {
@ -99,6 +102,14 @@ func NewFromGrpc(config SshPiperPluginConfig, grpc *grpc.Server, listener net.Li
RegisterSshPiperPluginServer(s.grpc, s)
if config.GrpcRemoteSignerFactory != nil {
gs, err := grpcsigner.NewSignerServer(config.GrpcRemoteSignerFactory)
if err != nil {
return nil, err
}
grpcsigner.RegisterSignerServer(s.grpc, gs)
}
return s, nil
}