pub struct Client { /* private fields */ }Expand description
A combination of persistent data and HTTP client used for communicating with the API.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(user_agent: String, api_base: Url) -> Result<Self, Box<dyn Error>>
pub fn new(user_agent: String, api_base: Url) -> Result<Self, Box<dyn Error>>
Create a new Client configured with the given User-Agent and API base.
§Errors
This function will return an error if the reqwest Client could not be created.
Sourcepub fn enroll(
&self,
code: &str,
) -> Result<(NebulaConfig, DHPrivateKeyPEM, Credentials, EnrollMeta), Box<dyn Error>>
pub fn enroll( &self, code: &str, ) -> Result<(NebulaConfig, DHPrivateKeyPEM, Credentials, EnrollMeta), Box<dyn Error>>
Issues an enrollment request against the REST API using the given enrollment code, passing along a locally generated DH X25519 Nebula key to be signed by the CA, and an Ed25519 key for future API authentication. On success it returns the Nebula config generated by the server, a Nebula private key PEM, credentials to be used for future DN API requests, and an object containing organization information.
§Errors
This function will return an error in any of the following situations:
- the
server_urlis invalid - the HTTP request fails
- the HTTP response is missing X-Request-ID
- X-Request-ID isn’t valid UTF-8
- the server returns an error
- the server returns invalid JSON
- the
trusted_keysfield is invalid
Sourcepub fn check_for_update(
&self,
creds: &Credentials,
) -> Result<bool, Box<dyn Error>>
pub fn check_for_update( &self, creds: &Credentials, ) -> Result<bool, Box<dyn Error>>
Send a signed message to the DNClient API to learn if there is a new configuration available.
§Errors
This function returns an error if the dnclient request fails, or the server returns invalid data.
Sourcepub fn do_update(
&self,
creds: &Credentials,
) -> Result<(NebulaConfig, DHPrivateKeyPEM, Credentials), Box<dyn Error>>
pub fn do_update( &self, creds: &Credentials, ) -> Result<(NebulaConfig, DHPrivateKeyPEM, Credentials), Box<dyn Error>>
Send a signed message to the DNClient API to fetch the new configuration update. During this call a new
DH X25519 keypair is generated for the new Nebula certificate as well as a new Ed25519 keypair for DNClient API
communication. On success it returns the new config, a Nebula private key PEM to be inserted into the config
and new DNClient API credentials
§Errors
This function returns an error in any of the following scenarios:
- if the message could not be serialized
- if the request fails
- if the response could not be deserialized
- if the signature is invalid
- if the keys are invalid
Sourcepub fn post_dnclient(
&self,
req_type: &str,
value: &[u8],
host_id: &str,
counter: u32,
ed_privkey: &SigningKey,
) -> Result<Vec<u8>, Box<dyn Error>>
pub fn post_dnclient( &self, req_type: &str, value: &[u8], host_id: &str, counter: u32, ed_privkey: &SigningKey, ) -> Result<Vec<u8>, Box<dyn Error>>
Wraps and signs the given req_type and value, and then makes the API call.
On success, returns the response body.
§Errors
This function will return an error if:
- serialization in any step fails
- if the
server_urlis invalid - if the request could not be sent