Presently rustls-ffi takes a dependency on the [`libc`](https://docs.rs/libc/latest/libc/) crate for the following imports: * `size_t` * `c_void` * `c_char` * `c_uint` * `c_int` * `EINVAL` * `EIO` It looks like the [`core::ffi`](https://doc.rust-lang.org/stable/core/ffi/index.html) module has many of these same defines, and could potentially let us drop an external dependency. Blockers: * [ ] [`core::ffi::c_size_t`](https://doc.rust-lang.org/stable/core/ffi/type.c_size_t.html) is unstable ([upstream tracking issue](https://github.com/rust-lang/rust/issues/88345)). * [ ] `EINVAL` and `EIO` aren't present; I think we would need our own platform-gated constants for these. I propose we wait for `c_size_t` to stablize and then replace `libc` with `core::ffi::*` and manually defined `EINVAL`/`EIO`.