This is a simple wrapper around the PSK functionality exposed by the openssl crate. PR's to make this more generic, useable and informative (in terms of errors) are more than welcome.
PSK Client has one feature which is openssl-vendored
which simply enables the vendored feature on the openssl crate, for further information, see the openssl-rs docs.
```rust use psk_client::{PskClient, error::PskClientError};
fn main() -> Result<(), PskClientError> { let client = PskClient::builder("127.0.0.1:4433") .resetciphers() .cipher("PSK-AES128-CBC-SHA") .cipher("PSK-AES256-CBC-SHA") .identity("Clientidentity") .key("4836525835726d466c743469426c55356e377375436254566d51476937724932") .build()?;
let mut connection = client.connect()?;
if let Err(msg) = connection.write_all(b"Hello, World!") {
eprinln!("Error writing to client: {}", msg);
}
Ok(())
} ```
By default the client will use the following cipher string, this can be cleared by calling reset_ciphers()
on a PskClientBuilder
. You can supply your own ciphers, either after clearing the pre-defined cipers, or in addition to
them by calling cipher("<cipher>")
on a PskClientBuilder
+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL