pub struct Tls12<T> {
io: T,
rx: Vec<u8>,
read_cipher: Option<RecordCipher>,
write_cipher: Option<RecordCipher>,
hs_buf: Vec<u8>,
app: Vec<u8>,
app_pos: usize,
eof: bool,
}Expand description
TLS 1.2 の接続。ハンドシェイク後は embedded_io の Read/Write として使う。
Fields§
§io: T§rx: Vec<u8>§read_cipher: Option<RecordCipher>§write_cipher: Option<RecordCipher>§hs_buf: Vec<u8>§app: Vec<u8>§app_pos: usize§eof: boolImplementations§
Source§impl<T: Read + Write> Tls12<T>
impl<T: Read + Write> Tls12<T>
Sourcepub fn connect(
io: T,
host: &str,
rng: &mut impl CryptoRngCore,
) -> Result<Self, Tls12Error>
pub fn connect( io: T, host: &str, rng: &mut impl CryptoRngCore, ) -> Result<Self, Tls12Error>
ハンドシェイクまで済ませた接続を返す。
Sourcefn write_record(&mut self, ctype: u8, data: &[u8]) -> Result<(), Tls12Error>
fn write_record(&mut self, ctype: u8, data: &[u8]) -> Result<(), Tls12Error>
平文を(必要なら暗号化して)レコードとして送る。
Sourcefn read_record(&mut self) -> Result<(u8, Vec<u8>), Tls12Error>
fn read_record(&mut self) -> Result<(u8, Vec<u8>), Tls12Error>
レコードを 1 個読み、(種別, 平文) を返す。警告は Alert として返す。
Sourcefn next_handshake(
&mut self,
transcript: &mut Vec<u8>,
) -> Result<(u8, Vec<u8>), Tls12Error>
fn next_handshake( &mut self, transcript: &mut Vec<u8>, ) -> Result<(u8, Vec<u8>), Tls12Error>
ハンドシェイクメッセージを 1 個取り出す(レコードをまたぐもの・1 レコードに複数あるものに対応)。
Trait Implementations§
Source§impl<T> ErrorType for Tls12<T>
impl<T> ErrorType for Tls12<T>
Source§type Error = Tls12Error
type Error = Tls12Error
Error type of all the IO operations on this type.
Source§impl<T: Read + Write> Read for Tls12<T>
impl<T: Read + Write> Read for Tls12<T>
Source§impl<T: Read + Write> Write for Tls12<T>
impl<T: Read + Write> Write for Tls12<T>
Source§fn write(&mut self, buf: &[u8]) -> Result<usize, Tls12Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Tls12Error>
Write a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<(), Tls12Error>
fn flush(&mut self) -> Result<(), Tls12Error>
Flush this output stream, blocking until all intermediately buffered contents reach their destination.
Auto Trait Implementations§
impl<T> Freeze for Tls12<T>where
T: Freeze,
impl<T> RefUnwindSafe for Tls12<T>where
T: RefUnwindSafe,
impl<T> Send for Tls12<T>where
T: Send,
impl<T> Sync for Tls12<T>where
T: Sync,
impl<T> Unpin for Tls12<T>where
T: Unpin,
impl<T> UnsafeUnpin for Tls12<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for Tls12<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more