1
#pragma once
2

            
3
#include "envoy/network/io_handle.h"
4

            
5
#include "openssl/bio.h"
6

            
7
namespace Envoy {
8
namespace Extensions {
9
namespace TransportSockets {
10
namespace Tls {
11

            
12
/**
13
 * Creates a custom BIO that can read from/write to an IoHandle. It's equivalent to a socket BIO
14
 * but instead of relying on access to an fd, it relies on IoHandle APIs for all interactions. The
15
 * IoHandle must remain valid for the lifetime of the BIO.
16
 */
17
// NOLINTNEXTLINE(readability-identifier-naming)
18
BIO* BIO_new_io_handle(Envoy::Network::IoHandle* io_handle);
19

            
20
} // namespace Tls
21
} // namespace TransportSockets
22
} // namespace Extensions
23
} // namespace Envoy