kmip-protocol 0.4.3

KMIP protocol object (de)serialization
Documentation
use kmip_ttlv::Config as KmipConfig;

use crate::client::{Client, ClientBuilder, ConnectionSettings};

pub(crate) fn create_kmip_client<T>(tls_stream: T, conn_settings: &ConnectionSettings) -> Client<T> {
    let mut client = ClientBuilder::new(tls_stream);

    if let Some(username) = &conn_settings.username {
        client = client.with_credentials(username.clone(), conn_settings.password.clone());
    }

    let mut reader_config = KmipConfig::default().with_read_buf();
    if let Some(max_bytes) = conn_settings.max_response_bytes {
        reader_config = reader_config.with_max_bytes(max_bytes);
    };

    client = client.with_reader_config(reader_config);

    client.build()
}