In preparation for an upcoming commit where litcli commands for the
Status server are added, the `getClientConn` method is updated with a
`noMac` parameter. If true, them the connection will be made without a
macaroon.
In this commit, a `supermacrootkey` helper command is added which lets a
user generate a random root key ID for a super macaroon along with an
`issupermacaroon` command that allows a users to easily confirm if a
macaroon is considered a super macaroon or not. Neither of these
commands require a connection to LiTd.
In this commit, a new Proxy service is added with a StopDaemon method.
This method can be used to stop the Litd service. This will be useful in
remote-mode itests where we want to restart Litd without also restarting
LND. It also provides a nice way of shutting down Litd in remote-mode.
A GetInfo method is also added to the service which for now just returns
the Litd version. The reason for adding this method now is so that
access to the new Proxy service can be tested in the itests withouth
actually shutting down Litd.
In this commit, we remove Lit's dependency on LND's tls cert in
integrated mode. With this commit, even if Lit is started in integrated
mode, it will create its own tls cert to use for serving the webserver.
Remove the use of the UI password from litcl. Use the litd macaroon
instead. Note, this means that in stateless mode, litcli won't have a
macaroon to use on disk and one must be baked specifically.
To avoid the macaroon parsing to fail in session.IsSuperMacaroon(), we
want the dummy macaroon to be formally valid (meaning, it can be parsed)
but not actually valid (meaning, it will fail the signature verification
since we don't have the root key for it anywhere).