Commit Graph

3 Commits (96849e6367947cfbc19c1b6ea390baea0a705bc0)

Author SHA1 Message Date
Dustin 96849e6367 burp: Add client/backup info retrieval methods
The `get_clients`, `get_client`, `get_backup`, `get_backup_log`, and
`get_backup_stats` methods fetch information from the BURP server using
its JSON stats interface.  These will be used to populate the metrics we
want to export to Prometheus.
2022-02-10 19:17:33 -06:00
Dustin cfdb33d4a3 burp: Begin BURP stats client implementation
The `burp` module contains an implementation of a BURP stats client.  It
uses *tokio* for asynchronous network communication with the BURP stats
TCP socket.  The `ClientConnector` struct follows the builder pattern
for specifying connection options, ultimately producing a `Client`
struct that manages communication over the socket.

BURP uses mutual TLS authentication for all its communication.  The
client authenticates the server by verifying its certificate using a
trusted CA certificate.  This certificate is not usually trusted
system-wide, but specifically by BURP clients.  The server also
authenticates the client using a certificate.  The official BURP client
uses a normal PEM-encoded X.509 certificate and PKCS #8 key, however,
the *native-tls* library does not support loading these.  As such, the
certificate and private key must be encapsulated in a PKCS #12
container.
2022-02-08 21:35:00 -06:00
Dustin 727aaa6b8f Initial commit 2022-02-06 12:56:24 -06:00