Skip to main content

Tls12

Struct Tls12 

Source
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: bool

Implementations§

Source§

impl<T: Read + Write> Tls12<T>

Source

pub fn connect( io: T, host: &str, rng: &mut impl CryptoRngCore, ) -> Result<Self, Tls12Error>

ハンドシェイクまで済ませた接続を返す。

Source

fn write_record(&mut self, ctype: u8, data: &[u8]) -> Result<(), Tls12Error>

平文を(必要なら暗号化して)レコードとして送る。

Source

fn read_record(&mut self) -> Result<(u8, Vec<u8>), Tls12Error>

レコードを 1 個読み、(種別, 平文) を返す。警告は Alert として返す。

Source

fn next_handshake( &mut self, transcript: &mut Vec<u8>, ) -> Result<(u8, Vec<u8>), Tls12Error>

ハンドシェイクメッセージを 1 個取り出す(レコードをまたぐもの・1 レコードに複数あるものに対応)。

Source

pub fn close(&mut self)

close_notify を送る(失敗は無視)。

Trait Implementations§

Source§

impl<T> ErrorType for Tls12<T>

Source§

type Error = Tls12Error

Error type of all the IO operations on this type.
Source§

impl<T: Read + Write> Read for Tls12<T>

Source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Tls12Error>

Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
§

fn read_exact( &mut self, buf: &mut [u8], ) -> Result<(), ReadExactError<Self::Error>>

Read the exact number of bytes required to fill buf. Read more
Source§

impl<T: Read + Write> Write for Tls12<T>

Source§

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>

Flush this output stream, blocking until all intermediately buffered contents reach their destination.
§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>

Write an entire buffer into this writer. Read more
§

fn write_fmt( &mut self, fmt: Arguments<'_>, ) -> Result<(), WriteFmtError<Self::Error>>

Write a formatted string into this writer, returning any error encountered. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.