lnrpc+itest: implement MuSig2Cleanup RPC

This commit is contained in:
Oliver Gugger
2022-05-04 18:31:47 +02:00
parent 7e11f64650
commit 52e42fc107
2 changed files with 41 additions and 1 deletions

View File

@@ -92,6 +92,10 @@ var (
Entity: "signer",
Action: "generate",
}},
"/signrpc.Signer/MuSig2Cleanup": {{
Entity: "signer",
Action: "generate",
}},
}
// DefaultSignerMacFilename is the default name of the signer macaroon
@@ -940,6 +944,24 @@ func (s *Server) MuSig2CombineSig(_ context.Context,
}, nil
}
// MuSig2Cleanup removes a session from memory to free up resources.
func (s *Server) MuSig2Cleanup(_ context.Context,
in *MuSig2CleanupRequest) (*MuSig2CleanupResponse, error) {
// Check session ID length.
sessionID, err := parseMuSig2SessionID(in.SessionId)
if err != nil {
return nil, fmt.Errorf("error parsing session ID: %v", err)
}
err = s.cfg.Signer.MuSig2Cleanup(sessionID)
if err != nil {
return nil, fmt.Errorf("error cleaning up session: %v", err)
}
return &MuSig2CleanupResponse{}, nil
}
// parseRawKeyBytes checks that the provided raw public key is valid and returns
// the public key. A nil public key is returned if the length of the rawKeyBytes
// is zero.