Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork212
License
Apache-2.0, MIT licenses found
Licenses found
sfackler/rust-native-tls
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
An abstraction over platform-specific TLS implementations.
Specifically, this crate uses SChannel on Windows (via theschannel
crate),Secure Transport on macOS (via thesecurity-framework
crate), and OpenSSL (viatheopenssl
crate) on all other platforms.
# Cargo.toml[dependencies]native-tls ="0.2"
An example client looks like:
externcrate native_tls;use native_tls::TlsConnector;use std::io::{Read,Write};use std::net::TcpStream;fnmain(){let connector =TlsConnector::new().unwrap();let stream =TcpStream::connect("google.com:443").unwrap();letmut stream = connector.connect("google.com", stream).unwrap(); stream.write_all(b"GET / HTTP/1.0\r\n\r\n").unwrap();letmut res =vec![]; stream.read_to_end(&mut res).unwrap();println!("{}",String::from_utf8_lossy(&res));}
To accept connections as a server from remote clients:
externcrate native_tls;use native_tls::{Identity,TlsAcceptor,TlsStream};use std::fs::File;use std::io::{Read};use std::net::{TcpListener,TcpStream};use std::sync::Arc;use std::thread;fnmain(){letmut file =File::open("identity.pfx").unwrap();letmut identity =vec![]; file.read_to_end(&mut identity).unwrap();let identity =Identity::from_pkcs12(&identity,"hunter2").unwrap();let acceptor =TlsAcceptor::new(identity).unwrap();let acceptor =Arc::new(acceptor);let listener =TcpListener::bind("0.0.0.0:8443").unwrap();fnhandle_client(stream:TlsStream<TcpStream>){// ...}for streamin listener.incoming(){match stream{Ok(stream) =>{let acceptor = acceptor.clone(); thread::spawn(move ||{let stream = acceptor.accept(stream).unwrap();handle_client(stream);});}Err(e) =>{/* connection failed */}}}}
rust-native-tls
is primarily distributed under the terms of both the MITlicense and the Apache License (Version 2.0), with portions covered by variousBSD-like licenses.
See LICENSE-APACHE, and LICENSE-MIT for details.
About
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.